X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FEngine%2FTest.pm;h=88800fa6a6c33c503d99df09934fd1b58a015898;hb=06e1b6164a2c9d7b463f358b0d1934ef83a82845;hp=0561348824c3f9a37b5955e0cff2d82981b2764f;hpb=e7c0c583d6e12e822dd26bf1282eb610c9a59351;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Engine/Test.pm b/lib/Catalyst/Engine/Test.pm index 0561348..88800fa 100644 --- a/lib/Catalyst/Engine/Test.pm +++ b/lib/Catalyst/Engine/Test.pm @@ -49,6 +49,15 @@ This class overloads some methods from C. =over 4 +=item $c->finalize_body + +=cut + +sub finalize_body { + my $c = shift; + $c->http->response->content( $c->response->output ); +} + =item $c->finalize_headers =cut @@ -63,13 +72,13 @@ sub finalize_headers { } } -=item $c->finalize_output +=item $c->prepare_body =cut -sub finalize_output { +sub prepare_body { my $c = shift; - $c->http->response->content( $c->response->output ); + $c->request->input( $c->http->request->content ); } =item $c->prepare_connection @@ -120,27 +129,28 @@ sub prepare_parameters { if ( $parameters{filename} ) { - my $fh = File::Temp->new; + my $fh = File::Temp->new( UNLINK => 0 ); $fh->write( $part->content ) or die $!; - seek( $fh, 0, 0 ) or die $!; + $fh->flush or die $!; - my $upload = { - fh => $fh, + my $upload = Catalyst::Request::Upload->new( filename => $parameters{filename}, - size => ( stat $fh )[7], + size => ( $fh->stat )[7], tempname => $fh->filename, type => $part->content_type - }; + ); + + $fh->close; push( @uploads, $parameters{name}, $upload ); - push( @params, $parameters{name}, $fh ); + push( @params, $parameters{name}, $parameters{filename} ); } else { push( @params, $parameters{name}, $part->content ); } } } - + $c->req->_assign_values( $c->req->parameters, \@params ); $c->req->_assign_values( $c->req->uploads, \@uploads ); }