Commit | Line | Data |
aee7cdcc |
1 | use strict; |
2 | use warnings; |
3 | use Test::More; |
4 | use FindBin qw/$Bin/; |
5 | use IO::Handle; |
6 | use Try::Tiny; |
7 | use File::Temp qw/ tempfile /; |
8 | use lib "$Bin/../lib"; |
9 | |
10 | use_ok('Catalyst::ScriptRunner'); |
11 | use_ok('ScriptTestApp'); |
12 | |
13 | is ScriptTestApp->run_options, undef; |
14 | |
15 | my ($fh, $fn) = tempfile(); |
16 | |
17 | binmode( $fh ); |
18 | binmode( STDOUT ); |
19 | |
20 | local @ARGV = (); |
21 | local %ENV; |
22 | |
23 | my $saved; |
24 | open( $saved, '>&'. STDOUT->fileno ) |
25 | or croak("Can't dup stdout: $!"); |
26 | open( STDOUT, '>&='. $fh->fileno ) |
27 | or croak("Can't open stdout: $!"); |
28 | local $SIG{__WARN__} = sub {}; # Shut up warnings... |
29 | try { Catalyst::ScriptRunner->run('ScriptTestApp', 'CGI'); pass("Ran ok") } |
30 | catch { fail "Failed to run $_" }; |
31 | |
32 | STDOUT->flush |
33 | or croak("Can't flush stdout: $!"); |
34 | |
35 | open( STDOUT, '>&'. fileno($saved) ) |
36 | or croak("Can't restore stdout: $!"); |
37 | |
38 | is_deeply ScriptTestApp->run_options, { argv => [], extra_argv => [] }; |
39 | |
40 | done_testing; |