use Test::More 'no_plan'; use strict; BEGIN { chdir 't' if -d 't'; use File::Spec; use lib File::Spec->catdir( qw[.. lib] ); } my $Class = 'Term::UI::History'; my $Func = 'history'; my $Verbose = 0; # print to STDOUT? ### test load & exports { use_ok( $Class ); for my $pkg ( $Class, __PACKAGE__ ) { can_ok( $pkg, $Func ); } } ### test string recording { history( $$, $Verbose ); my $str = $Class->history_as_string; ok( $str, "Message recorded" ); is( $str, $$, " With appropriate content" ); $Class->flush; ok( !$Class->history_as_string, " Stack flushed" ); } ### test filehandle printing SKIP: { my $file = "$$.tmp"; { open my $fh, ">$file" or skip "Could not open $file: $!", 6; ### declare twice for 'used only once' warning local $Term::UI::History::HISTORY_FH = $fh; local $Term::UI::History::HISTORY_FH = $fh; history( $$ ); close $fh; } my $str = $Class->history_as_string; ok( $str, "Message recorded" ); is( $str, $$, " With appropriate content" ); ### check file contents { ok( -e $file, "File $file exists" ); ok( -s $file, " File has size" ); open my $fh, $file or skip "Could not open $file: $!", 2; my $cont = do { local $/; <$fh> }; chomp $cont; is( $cont, $str, " File has same content" ); } $Class->flush; ### for VMS etc 1 while unlink $file; ok( ! -e $file, " File $file removed" ); }