From: Andy Grundman Date: Thu, 20 Oct 2005 20:50:48 +0000 (+0000) Subject: Added tests for passing filehandle to res->body X-Git-Tag: 5.7099_04~1165 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=3dc4d7e949ff84d37328d71449e2d1f94b0e28d2 Added tests for passing filehandle to res->body --- diff --git a/t/live/component/controller/action/streaming.t b/t/live/component/controller/action/streaming.t index 46d42b2..e917a3b 100644 --- a/t/live/component/controller/action/streaming.t +++ b/t/live/component/controller/action/streaming.t @@ -6,9 +6,10 @@ use warnings; use FindBin; use lib "$FindBin::Bin/../../../lib"; -use Test::More tests => 4; +use Test::More tests => 8; use Catalyst::Test 'TestApp'; +# test direct streaming { ok( my $response = request('http://localhost/streaming'), 'Request' ); ok( $response->is_success, 'Response Successful 2xx' ); @@ -19,3 +20,19 @@ bar baz EOF } + +# test streaming by passing a handle to $c->res->body +{ + my $file = "$FindBin::Bin/../../../../01use.t"; + my $fh = IO::File->new( $file, 'r' ); + my $buffer; + if ( defined $fh ) { + $fh->read( $buffer, 1024 ); + $fh->close; + } + + ok( my $response = request('http://localhost/action/streaming/body'), 'Request' ); + ok( $response->is_success, 'Response Successful 2xx' ); + is( $response->content_type, 'text/plain', 'Response Content-Type' ); + is( $response->content, $buffer, 'Content is read from filehandle' ); +} diff --git a/t/live/lib/TestApp/Controller/Action/Streaming.pm b/t/live/lib/TestApp/Controller/Action/Streaming.pm index 9ad394c..775eaba 100644 --- a/t/live/lib/TestApp/Controller/Action/Streaming.pm +++ b/t/live/lib/TestApp/Controller/Action/Streaming.pm @@ -14,4 +14,17 @@ EOF } } +sub body : Local { + my ( $self, $c ) = @_; + + my $file = "$FindBin::Bin/../../../../01use.t"; + my $fh = IO::File->new( $file, 'r' ); + if ( defined $fh ) { + $c->res->body( $fh ); + } + else { + $c->res->body( "Unable to read $file" ); + } +} + 1;