Test uri_for with path = 0
[catagits/Catalyst-Runtime.git] / t / aggregate / unit_core_script_run_options.t
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;