Fix the return value of Catalyst::Request's body method + tests.
[catagits/Catalyst-Runtime.git] / t / unit_load_catalyst_test.t
index 0dbf8e3..9c9c61c 100644 (file)
@@ -4,8 +4,9 @@ use strict;
 use warnings;
 
 use Test::More;
+use Catalyst::Utils;
 
-plan tests => 3;
+plan tests => 8;
 
 use_ok('Catalyst::Test');
 
@@ -14,3 +15,38 @@ isnt( $@, "", "get returns an error message with no app specified");
 
 eval "request('http://localhost')";
 isnt( $@, "", "request returns an error message with no app specified");
+
+sub customize { Catalyst::Test::_customize_request(@_) }
+
+{
+    my $req = Catalyst::Utils::request('/dummy');
+    customize( $req );
+    is( $req->header('Host'), undef, 'normal request is unmodified' );
+}
+
+{
+    my $req = Catalyst::Utils::request('/dummy');
+    customize( $req, { host => 'customized.com' } );
+    like( $req->header('Host'), qr/customized.com/, 'request is customizable via opts hash' );
+}
+
+{
+    my $req = Catalyst::Utils::request('/dummy');
+    local $Catalyst::Test::default_host = 'localized.com';
+    customize( $req );
+    like( $req->header('Host'), qr/localized.com/, 'request is customizable via package var' );
+}
+
+{
+    my $req = Catalyst::Utils::request('/dummy');
+    local $Catalyst::Test::default_host = 'localized.com';
+    customize( $req, { host => 'customized.com' } );
+    like( $req->header('Host'), qr/customized.com/, 'opts hash takes precedence over package var' );
+}
+
+{
+    my $req = Catalyst::Utils::request('/dummy');
+    local $Catalyst::Test::default_host = 'localized.com';
+    customize( $req, { host => '' } );
+    is( $req->header('Host'), undef, 'default value can be temporarily cleared via opts hash' );
+}