From be74ecf8a7ccda39a401b832f2044c9d2e334541 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Fri, 28 Sep 2012 23:57:01 -0500 Subject: factor this out --- t/response-streaming.t | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/t/response-streaming.t b/t/response-streaming.t index b9c19de..55caefe 100644 --- a/t/response-streaming.t +++ b/t/response-streaming.t @@ -14,11 +14,8 @@ use Web::Response; my $psgi_res = $res->finalize; ok(ref($psgi_res) eq 'CODE', "got a coderef"); - my $complete_response; - my $responder = sub { $complete_response = $_[0] }; - $psgi_res->($responder); is_deeply( - $complete_response, + resolve_response($psgi_res), [ 200, [], ["Hello world"] ], "got the right response" ); @@ -36,11 +33,8 @@ use Web::Response; my $psgi_res = $res->finalize; ok(ref($psgi_res) eq 'CODE', "got a coderef"); - my $complete_response; - my $responder = sub { $complete_response = $_[0] }; - $psgi_res->($responder); is_deeply( - $complete_response, + resolve_response($psgi_res), [ 200, [], ["caf\xe9"] ], "got the right response" ); @@ -59,14 +53,28 @@ use Web::Response; my $psgi_res = $res->finalize; ok(ref($psgi_res) eq 'CODE', "got a coderef"); - my $complete_response; - my $responder = sub { $complete_response = $_[0] }; - $psgi_res->($responder); is_deeply( - $complete_response, + resolve_response($psgi_res), [ 200, [], ["caf\xc3\xa9"] ], "got the right response" ); } +sub resolve_response { + my ($psgi_res) = @_; + + if (ref($psgi_res) eq 'CODE') { + my $body = []; + $psgi_res->(sub { + $psgi_res = shift; + return Plack::Util::inline_object( + write => sub { push @$body, $_[0] }, + close => sub { push @$psgi_res, $body }, + ); + }); + } + + return $psgi_res; +} + done_testing; -- cgit v1.2.3