Pass Pod coverage
[catagits/Catalyst-Runtime.git] / t / aggregate / unit_core_script_server.t
1 use strict;
2 use warnings;
3
4 use FindBin qw/$Bin/;
5 use lib "$Bin/../lib";
6
7 use Test::More 'no_plan';
8 use Test::Exception;
9
10 use Catalyst::Script::Server;
11
12 my $testopts;
13
14 # Test default (no opts/args behaviour)
15 testOption( [ qw// ], ['3000', 'localhost', opthash()] );
16
17 # Old version supports long format opts with either one or two dashes.  New version only supports two.
18 #                Old                       New
19 # help           -? -help --help           -? --help
20 # debug          -d -debug --debug         -d --debug
21 # host           -host --host              --host
22 testOption( [ qw/--host testhost/ ], ['3000', 'testhost', opthash()] );
23 testOption( [ qw/-h testhost/ ], ['3000', 'testhost', opthash()] );
24
25 # port           -p -port --port           -l --listen
26 testOption( [ qw/-p 3001/ ], ['3001', 'localhost', opthash()] );
27 testOption( [ qw/--port 3001/ ], ['3001', 'localhost', opthash()] );
28
29 # fork           -f -fork --fork           -f --fork
30 testOption( [ qw/--fork/ ], ['3000', 'localhost', opthash(fork => 1)] );
31 testOption( [ qw/-f/ ], ['3000', 'localhost', opthash(fork => 1)] );
32
33 # pidfile        -pidfile                  --pid --pidfile
34 testOption( [ qw/--pidfile cat.pid/ ], ['3000', 'localhost', opthash(pidfile => "cat.pid")] );
35 testOption( [ qw/--pid cat.pid/ ], ['3000', 'localhost', opthash(pidfile => "cat.pid")] );
36
37 # keepalive      -k -keepalive --keepalive -k --keepalive
38 testOption( [ qw/-k/ ], ['3000', 'localhost', opthash(keepalive => 1)] );
39 testOption( [ qw/--keepalive/ ], ['3000', 'localhost', opthash(keepalive => 1)] );
40
41 # symlinks       -follow_symlinks          --sym --follow_symlinks
42 testOption( [ qw/--follow_symlinks/ ], ['3000', 'localhost', opthash(follow_symlinks => 1)] );
43 testOption( [ qw/--sym/ ], ['3000', 'localhost', opthash(follow_symlinks => 1)] );
44
45 # background     -background               --bg --background
46 testOption( [ qw/--background/ ], ['3000', 'localhost', opthash(background => 1)] );
47 testOption( [ qw/--bg/ ], ['3000', 'localhost', opthash(background => 1)] );
48
49 # Restart stuff requires a threaded perl, apparently.
50 # restart        -r -restart --restart     -R --restart
51 # restart dly    -rd -restartdelay         --rdel --restart_delay
52 # restart dir    -restartdirectory         --rdir --restart_directory
53 # restart regex  -rr -restartregex         --rxp --restart_regex
54
55
56 sub testOption {
57     my ($argstring, $resultarray) = @_;
58
59     subtest "Test for ARGV: @$argstring" => sub
60         {
61             plan tests => 2;
62             local @ARGV = @$argstring;
63             local @TestAppToTestScripts::RUN_ARGS;
64             lives_ok {
65                 Catalyst::Script::Server->new_with_options(application_name => 'TestAppToTestScripts')->run;
66             } "new_with_options";
67             # First element of RUN_ARGS will be the script name, which we don't care about
68             shift @TestAppToTestScripts::RUN_ARGS;
69             is_deeply \@TestAppToTestScripts::RUN_ARGS, $resultarray, "is_deeply comparison";
70             done_testing;
71         };
72 }
73
74 # Returns the hash expected when no flags are passed
75 sub opthash {
76     return {
77         'pidfile' => undef,
78         'fork' => 0,
79         'follow_symlinks' => 0,
80         'background' => 0,
81         'keepalive' => 0,
82         @_,
83     };
84 }