Fugly test for myapp_test.pl. If someone fancies rewriting the IO redirection to...
Tomas Doran [Fri, 20 Nov 2009 01:01:47 +0000 (01:01 +0000)]
t/aggregate/unit_core_script_test.t [new file with mode: 0644]

diff --git a/t/aggregate/unit_core_script_test.t b/t/aggregate/unit_core_script_test.t
new file mode 100644 (file)
index 0000000..cc91a3a
--- /dev/null
@@ -0,0 +1,48 @@
+use strict;
+use warnings;
+
+use FindBin qw/$Bin/;
+use lib "$Bin/../lib";
+
+use Test::More;
+use Test::Exception;
+
+use Catalyst::Script::Test;
+use File::Temp qw/tempfile/;
+use IO::Handle;
+
+my ($fh, $fn) = tempfile();
+
+binmode( $fh );
+binmode( STDOUT );
+
+{
+    local @ARGV = ('/');
+    my $i;
+    lives_ok {
+        $i = Catalyst::Script::Test->new_with_options(application_name => 'TestApp');
+    } "new_with_options";
+    ok $i;
+    my $saved;
+    open( $saved, '<&'. STDIN->fileno )
+          or croak("Can't dup stdin: $!");
+    open( STDOUT, '>&='. $fh->fileno )
+        or croak("Can't open stdout: $!");
+    eval { $i->run };
+    ok !$@, 'Ran ok';
+
+    STDOUT->flush
+        or croak("Can't flush stdout: $!");
+
+    open( STDOUT, '>&'. fileno($saved) )
+        or croak("Can't restore stdout: $!");
+}
+
+my $data = do { my $fh; open($fh, '<', $fn) or die $!; local $/; <$fh>; };
+$fh = undef;
+unlink $fn if -r $fn;
+
+is $data, "root index\n", 'correct content printed';
+
+done_testing;
+