From: Tomas Doran Date: Tue, 27 Sep 2011 18:19:27 +0000 (+0000) Subject: merge branch X-Git-Tag: 0.55~2 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FTest-WWW-Mechanize-Catalyst.git;a=commitdiff_plain;h=39ba6f9a7186eeac9e5f1be7c2de248d87740b3e merge branch svn diff http://dev.catalyst.perl.org/repos/Catalyst/Test-WWW-Mechanize-Catalyst/trunk http://dev.catalyst.perl.org/repos/Catalyst/Test-WWW-Mechanize-Catalyst/branches/host_header/ --- diff --git a/CHANGES b/CHANGES index 9258ab7..a87f85f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,8 @@ Revision history for Perl module Test::WWW::Mechanize::Catalyst: +0.55 + - Set 'Host' header for remote requests too + 0.54 Mon Aug 1 20:49 BST 2011 - change to make sure we support changes in Catalyst::Test introduced in the Cataplack port. diff --git a/lib/Test/WWW/Mechanize/Catalyst.pm b/lib/Test/WWW/Mechanize/Catalyst.pm index eb98a67..0cd3ef5 100644 --- a/lib/Test/WWW/Mechanize/Catalyst.pm +++ b/lib/Test/WWW/Mechanize/Catalyst.pm @@ -12,7 +12,7 @@ extends 'Test::WWW::Mechanize', 'Moose::Object'; #use namespace::clean -execept => 'meta'; -our $VERSION = '0.54'; +our $VERSION = '0.55'; our $APP_CLASS; my $Test = Test::Builder->new(); @@ -126,6 +126,17 @@ sub _make_request { return $response; } +sub _set_host_header { + my ( $self, $request ) = @_; + # If there's no Host header, set one. + unless ($request->header('Host')) { + my $host = $self->has_host + ? $self->host + : $request->uri->host; + $request->header('Host', $host); + } +} + sub _do_catalyst_request { my ($self, $request) = @_; @@ -140,14 +151,7 @@ sub _do_catalyst_request { return $self->_do_remote_request($request) if $ENV{CATALYST_SERVER}; - # If there's no Host header, set one. - unless ($request->header('Host')) { - my $host = $self->has_host - ? $self->host - : $uri->host; - - $request->header('Host', $host); - } + $self->_set_host_header($request); my $res = $self->_check_external_request($request); return $res if $res; @@ -219,6 +223,7 @@ sub _do_remote_request { $request->uri->host( $server->host ); $request->uri->port( $server->port ); $request->uri->path( $server->path . $request->uri->path ); + $self->_set_host_header($request); return $self->SUPER::_make_request($request); }