X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FTest%2FWWW%2FMechanize%2FCatalyst.pm;h=eab855ee818526cee9b58a11c64f4df3f010eafc;hb=6ad1315b455d503e9da6f185a4e520b9da33c107;hp=96d69a1789bd9fc31835fed53a6f231996245d80;hpb=900a563bc3667ac43aacd814e9754a7c4b4a340b;p=catagits%2FTest-WWW-Mechanize-Catalyst.git diff --git a/lib/Test/WWW/Mechanize/Catalyst.pm b/lib/Test/WWW/Mechanize/Catalyst.pm index 96d69a1..eab855e 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.53'; +our $VERSION = '0.55'; our $APP_CLASS; my $Test = Test::Builder->new(); @@ -126,6 +126,18 @@ 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; + $host .= ':'.$request->uri->_port if $request->uri->_port; + $request->header('Host', $host); + } +} + sub _do_catalyst_request { my ($self, $request) = @_; @@ -140,22 +152,19 @@ 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; + $self->_set_host_header($request); - $request->header('Host', $host); - } - my $res = $self->_check_external_request($request); return $res if $res; my @creds = $self->get_basic_credentials( "Basic", $uri ); $request->authorization_basic( @creds ) if @creds; - my $response =Catalyst::Test::local_request($self->{catalyst_app}, $request); + require Catalyst; + my $response = $Catalyst::VERSION >= 5.89000 ? + Catalyst::Test::_local_request($self->{catalyst_app}, $request) : + Catalyst::Test::local_request($self->{catalyst_app}, $request); + # LWP would normally do this, but we dont get down that far. $response->request($request); @@ -215,6 +224,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); }