Test uri_for with path = 0
[catagits/Catalyst-Runtime.git] / t / aggregate / unit_core_engine_fixenv-lighttpd.t
1 use strict;
2 use warnings;
3
4 use Test::More;
5
6 use Catalyst ();
7
8 my %env = (
9     'SCRIPT_NAME'          => '/bar',
10     'SERVER_NAME'          => 'localhost:8000',
11     'HTTP_ACCEPT_ENCODING' => 'gzip,deflate',
12     'HTTP_CONNECTION'      => 'keep-alive',
13     'PATH_INFO'            => '',
14     'HTTP_ACCEPT'          => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
15     'REQUEST_METHOD'       => 'GET',
16     'SCRIPT_FILENAME'      => '/tmp/Foo/root/bar',
17     'HTTP_ACCEPT_CHARSET'  => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
18     'SERVER_SOFTWARE'      => 'lighttpd/1.4.15',
19     'QUERY_STRING'         => '',
20     'REMOTE_PORT'          => '22207',
21     'SERVER_PORT'          => 8000,
22     'REDIRECT_STATUS'      => '200',
23     'HTTP_ACCEPT_LANGUAGE' => 'en-us,en;q=0.5',
24     'REMOTE_ADDR'          => '127.0.0.1',
25     'FCGI_ROLE'            => 'RESPONDER',
26     'HTTP_KEEP_ALIVE'      => '300',
27     'SERVER_PROTOCOL'      => 'HTTP/1.1',
28     'REQUEST_URI'          => '/bar',
29     'GATEWAY_INTERFACE'    => 'CGI/1.1',
30     'SERVER_ADDR'          => '127.0.0.1',
31     'DOCUMENT_ROOT'        => '/tmp/Foo/root',
32     'HTTP_HOST'            => 'localhost:8000',
33 );
34
35 sub fix_env {
36     my (%input_env) = @_;
37
38     my $mangled_env;
39     my $app = Catalyst->apply_default_middlewares(sub {
40         my ($env) = @_;
41         $mangled_env = $env;
42         return [ 200, ['Content-Type' => 'text/plain'], [''] ];
43     });
44
45     $app->({ %input_env, 'psgi.url_scheme' => 'http' });
46     return %{ $mangled_env };
47 }
48
49 my %fixed_env = fix_env(%env);
50
51 is($fixed_env{PATH_INFO}, '/bar', 'check PATH_INFO');
52 ok(!exists($fixed_env{SCRIPT_NAME}) || !length($fixed_env{SCRIPT_NAME}),
53     'check SCRIPT_NAME');
54
55 done_testing;