X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FTest.pm;h=5fe2a0ca0d010b3b15ad81f900d74fa3a298438a;hp=fc29985afc6b24a28b47be5b8694ce2d7c4297fc;hb=523d44ecdd184a0a56c8094c60fe545098e06cff;hpb=f7e4e231388bba2f8a9780c5d82f32bcf3cdb47e diff --git a/lib/Catalyst/Test.pm b/lib/Catalyst/Test.pm index fc29985..5fe2a0c 100644 --- a/lib/Catalyst/Test.pm +++ b/lib/Catalyst/Test.pm @@ -91,32 +91,46 @@ sub import { *{"$caller\::get"} = $get; } +my $agent; + sub remote_request { my $request = shift; require LWP::UserAgent; - my $server = URI->new( $ENV{CATALYST_SERVER} ); - unless ( ref $request ) { - my $uri = - ( $request =~ m/http/i ) + my $uri = ( $request =~ m/http/i ) ? URI->new($request) : URI->new( 'http://localhost' . $request ); $request = $uri->canonical; } - $request->scheme( $server->scheme ); - $request->host( $server->host ); - $request->port( $server->port ); - unless ( ref $request eq 'HTTP::Request' ) { $request = HTTP::Request->new( 'GET', $request ); } - my $agent = LWP::UserAgent->new; + my $server = URI->new( $ENV{CATALYST_SERVER} ); + + if ( $server->path =~ m|^(.+)?/$| ) { + $server->path("$1"); # need to be quoted + } + + $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( + # cookie_jar => {}, + keep_alive => 1, + max_redirect => 0, + timeout => 60, + ); + $agent->env_proxy; + } return $agent->request($request); }