Tests for %ENV fail in Catalyst::Test
[catagits/Catalyst-Runtime.git] / t / aggregate / live_engine_request_env.t
diff --git a/t/aggregate/live_engine_request_env.t b/t/aggregate/live_engine_request_env.t
new file mode 100644 (file)
index 0000000..fdf980b
--- /dev/null
@@ -0,0 +1,47 @@
+#!perl
+
+use strict;
+use warnings;
+
+use FindBin;
+use lib "$FindBin::Bin/../lib";
+
+use vars qw/
+    $EXPECTED_ENV_VAR
+    $EXPECTED_ENV_VAL
+/;
+
+BEGIN {
+    $EXPECTED_ENV_VAR = "CatalystTest$$";
+    $EXPECTED_ENV_VAL = $ENV{$EXPECTED_ENV_VAR}
+         = "Test env value " . rand(100000);
+}
+
+use Test::More tests => 7;
+use Catalyst::Test 'TestApp';
+
+use Catalyst::Request;
+use HTTP::Headers;
+use HTTP::Request::Common;
+
+{
+    my $env;
+
+    ok( my $response = request("http://localhost/dump/env"),
+        'Request' );
+    ok( $response->is_success, 'Response Successful 2xx' );
+    is( $response->content_type, 'text/plain', 'Response Content-Type' );
+    ok( eval '$env = ' . $response->content, 'Unserialize Catalyst::Request' );
+    is ref($env), 'HASH';
+    ok exists($env->{PATH}), 'Have a PATH env var';
+
+    SKIP:
+    {
+        if ( $ENV{CATALYST_SERVER} ) {
+            skip 'Using remote server', 1;
+        }
+        is $env->{$EXPECTED_ENV_VAR}, $EXPECTED_ENV_VAL,
+            'Value we set as expected';
+    }
+}
+