Make legacy IIS env fixing work again
[catagits/Catalyst-Runtime.git] / t / aggregate / unit_core_engine_fixenv-iis6.t
1 #!perl
2
3 use strict;
4 use warnings;
5
6 use Test::More;
7
8 use Catalyst;
9
10 my %env = (
11     'SCRIPT_NAME' => '/koo/blurb',
12     'PATH_INFO' => '/koo/blurb',
13     'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
14     'REQUEST_METHOD' => 'GET',
15     'SCRIPT_FILENAME' => 'C:\\Foo\\script\\blurb',
16     'INSTANCE_META_PATH' => '/LM/W3SVC/793536',
17     'SERVER_SOFTWARE' => 'Microsoft-IIS/6.0',
18     'AUTH_PASSWORD' => '',
19     'AUTH_TYPE' => '',
20     'HTTP_USER_AGENT' => 'Mozilla/5.0 (Windows; U; Windows NT 5.2; de; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)',
21     'REMOTE_PORT' => '1281',
22     'QUERY_STRING' => '',
23     'URL' => '/koo/blurb',
24     'HTTP_ACCEPT_LANGUAGE' => 'de-de,de;q=0.8,en-us;q=0.5,en;q=0.3',
25     'FCGI_ROLE' => 'RESPONDER',
26     'HTTP_KEEP_ALIVE' => '300',
27     'CONTENT_TYPE' => '',
28     'LOCAL_ADDR' => '127.0.0.1',
29     'GATEWAY_INTERFACE' => 'CGI/1.1',
30     'HTTPS' => 'off',
31     'DOCUMENT_ROOT' => 'C:\\Foo\\script',
32     'REMOTE_HOST' => '127.0.0.1',
33     'PATH_TRANSLATED' => 'C:\\Foo\\script\\blurb',
34     'APPL_PHYSICAL_PATH' => 'C:\\Foo\\script\\',
35     'SERVER_NAME' => '127.0.0.1',
36     'HTTP_ACCEPT_ENCODING' => 'gzip,deflate',
37     'HTTP_CONNECTION' => 'keep-alive',
38     'INSTANCE_ID' => '793536',
39     'CONTENT_LENGTH' => '0',
40     'AUTH_USER' => '',
41     'APPL_MD_PATH' => '/LM/W3SVC/793536/Root/koo',
42     'HTTP_ACCEPT_CHARSET' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
43     'REMOTE_USER' => '',
44     'SERVER_PORT_SECURE' => '0',
45     'SERVER_PORT' => 83,
46     'REMOTE_ADDR' => '127.0.0.1',
47     'SERVER_PROTOCOL' => 'HTTP/1.1',
48     'REQUEST_URI' => '/koo/blurb',
49     'APP_POOL_ID' => 'DefaultAppPool',
50     'HTTP_HOST' => '127.0.0.1:83'
51 );
52
53 sub fix_env {
54     my (%input_env) = @_;
55
56     my $mangled_env;
57     my $app = Catalyst->_wrapped_legacy_psgi_app(sub {
58         my ($env) = @_;
59         $mangled_env = $env;
60         return [ 200, ['Content-Type' => 'text/plain'], [''] ];
61     });
62
63     $app->({ %input_env, 'psgi.url_scheme' => 'http' });
64     return %{ $mangled_env };
65 }
66
67 my %fixed_env = fix_env(%env);
68
69 is($fixed_env{PATH_INFO}, '//blurb', 'check PATH_INFO');
70 is($fixed_env{SCRIPT_NAME}, '/koo', 'check SCRIPT_NAME');
71
72 done_testing;