5e7e4c6244e9ebaf432722eb85b03199af52bb92
[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 my $response = request("http://localhost/dump/env", {
25     extra_env => { $EXPECTED_ENV_VAR => $EXPECTED_ENV_VAL },
26 });
27
28 ok( $response, 'Request' );
29 ok( $response->is_success, 'Response Successful 2xx' );
30 is( $response->content_type, 'text/plain', 'Response Content-Type' );
31
32 my $env;
33 ok( eval '$env = ' . $response->content, 'Unserialize Catalyst::Request' );
34 is ref($env), 'HASH';
35 ok exists($env->{PATH_INFO}), 'Have a PATH_INFO env var for dump/env';
36
37 SKIP:
38 {
39     if ( $ENV{CATALYST_SERVER} ) {
40         skip 'Using remote server', 1;
41     }
42     is $env->{$EXPECTED_ENV_VAR}, $EXPECTED_ENV_VAL,
43         'Value we set as expected for /dump/env'
44 }
45
46 done_testing;
47