From: Florian Ragwitz Date: Wed, 2 Mar 2011 12:01:46 +0000 (+0100) Subject: Use Plack::Test::ExternalServer in Catalyst::Test remote requests X-Git-Tag: 5.89003~66 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=555c9ff7dd2cf2652f8bb37766a0100efdcb7c5a;hp=bad031b8949494062bf54f93cc2d78de1fcda052 Use Plack::Test::ExternalServer in Catalyst::Test remote requests --- diff --git a/Makefile.PL b/Makefile.PL index ee5949d..6083b74 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -56,6 +56,7 @@ requires 'MooseX::Types::Common::Numeric'; requires 'String::RewritePrefix' => '0.004'; # Catalyst::Utils::resolve_namespace requires 'Plack' => '0.9974'; # IIS6 fix middleware requires 'Plack::Middleware::ReverseProxy' => '0.04'; +requires 'Plack::Test::ExternalServer'; test_requires 'Class::Data::Inheritable'; test_requires 'Test::Exception'; diff --git a/lib/Catalyst/Test.pm b/lib/Catalyst/Test.pm index e04bdbf..a2c27f7 100644 --- a/lib/Catalyst/Test.pm +++ b/lib/Catalyst/Test.pm @@ -308,6 +308,7 @@ my $agent; sub _remote_request { require LWP::UserAgent; + local $Plack::Test::Impl = 'ExternalServer'; my $request = Catalyst::Utils::request( shift(@_) ); my $server = URI->new( $ENV{CATALYST_SERVER} ); @@ -342,13 +343,7 @@ sub _remote_request { } } - $request->uri->scheme( $server->scheme ); - $request->uri->host( $server->host ); - $request->uri->port( $server->port ); - $request->uri->path( $server->path . $request->uri->path ); - unless ($agent) { - $agent = LWP::UserAgent->new( keep_alive => 1, max_redirect => 0, @@ -362,7 +357,16 @@ sub _remote_request { $agent->env_proxy; } - return $agent->request($request); + my $ret; + test_psgi + ua => $agent, + uri => $server, + client => sub { + my ($psgi_app) = @_; + $ret = $psgi_app->($request); + }; + + return $ret; } for my $name (qw(local_request remote_request)) {