Fix base and headers
Christian Hansen [Wed, 30 Mar 2005 16:21:21 +0000 (16:21 +0000)]
lib/Catalyst/Engine/HTTP.pm
lib/Catalyst/Engine/Test.pm

index 9332745..18351e0 100644 (file)
@@ -3,7 +3,7 @@ package Catalyst::Engine::HTTP;
 use strict;
 use base 'Catalyst::Engine::Test';
 
-use IO::Socket qw(AF_INET SOCK_STREAM SOMAXCONN);
+use IO::Socket qw(AF_INET INADDR_ANY SOCK_STREAM SOMAXCONN);
 
 =head1 NAME
 
@@ -65,7 +65,7 @@ sub run {
         while ( my $request = $connection->get_request ) {
 
             $request->uri->scheme('http');    # Force URI::http
-            $request->uri->host( $base->host );
+            $request->uri->host( $request->header('Host') );
             $request->uri->port( $base->port );
 
             my $lwp = Catalyst::Engine::Test::LWP->new(
index 9127e71..d171dd1 100644 (file)
@@ -60,7 +60,7 @@ sub finalize_headers {
     $c->lwp->response->code( $c->response->status || 200 );
 
     for my $name ( $c->response->headers->header_field_names ) {
-        $c->lwp->response->header( $name => $c->response->header($name) );
+        $c->lwp->response->push_header( $name => [ $c->response->header($name) ] );
     }
 
     while ( my ( $name, $cookie ) = each %{ $c->response->cookies } ) {
@@ -201,6 +201,7 @@ sub prepare_path {
     }
 
     my $path = $c->lwp->request->uri->path || '/';
+    $path =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;
     $path =~ s/^\///;
 
     $c->req->base($base);