merged conflicts
[catagits/Catalyst-Runtime.git] / t / aggregate / live_engine_request_env.t
1 use strict;
2 use warnings;
3
4 use FindBin;
5 use lib "$FindBin::Bin/../lib";
6
7 use vars qw/
8     $EXPECTED_ENV_VAR
9     $EXPECTED_ENV_VAL
10 /;
11
12 BEGIN {
13     $EXPECTED_ENV_VAR = "CATALYSTTEST$$"; # has to be uppercase otherwise fails on Win32 
14     $EXPECTED_ENV_VAL = "Test env value " . rand(100000);
15 }
16
17 use Test::More;
18 use Catalyst::Test 'TestApp';
19
20 use Catalyst::Request;
21 use HTTP::Headers;
22 use HTTP::Request::Common;
23
24 foreach my $path (qw/ env env_on_engine /) {
25     my $response = request("http://localhost/dump/${path}", {
26         extra_env => { $EXPECTED_ENV_VAR => $EXPECTED_ENV_VAL },
27     });
28
29     ok( $response, 'Request' );
30     ok( $response->is_success, 'Response Successful 2xx' );
31     is( $response->content_type, 'text/plain', 'Response Content-Type' );
32
33     my $env;
34     ok( eval '$env = ' . $response->content, 'Unserialize Catalyst::Request' );
35     is ref($env), 'HASH';
36     ok exists($env->{PATH_INFO}), 'Have a PATH_INFO env var for ' . $path;
37
38     SKIP:
39     {
40         if ( $ENV{CATALYST_SERVER} ) {
41             skip 'Using remote server', 1;
42         }
43         is $env->{$EXPECTED_ENV_VAR}, $EXPECTED_ENV_VAL,
44             'Value we set as expected for ' . $path;
45     }
46 }
47
48 done_testing;
49