diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-09-29 00:02:59 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2012-09-29 00:02:59 -0500 |
commit | 97fa8400999bfa3c9ab17ee1647eff1b9b893324 (patch) | |
tree | 83fdc9bc52b7770a859d77c459c5e71be6c2f87f /t | |
parent | c4e5d70df578b0e0ad30fa353738d6104306badd (diff) | |
download | web-request-97fa8400999bfa3c9ab17ee1647eff1b9b893324.tar.gz web-request-97fa8400999bfa3c9ab17ee1647eff1b9b893324.zip |
split this up
Diffstat (limited to 't')
-rw-r--r-- | t/response-streaming-utf8.t | 109 | ||||
-rw-r--r-- | t/response-streaming.t | 85 |
2 files changed, 109 insertions, 85 deletions
diff --git a/t/response-streaming-utf8.t b/t/response-streaming-utf8.t new file mode 100644 index 0000000..b209434 --- /dev/null +++ b/t/response-streaming-utf8.t @@ -0,0 +1,109 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; + +use Web::Request; + +{ + use utf8; + + my $req = Web::Request->new_from_env({}); + + my $res = $req->new_response(sub { + my $responder = shift; + $responder->([200, [], ["café"]]); + }); + my $psgi_res = $res->finalize; + ok(ref($psgi_res) eq 'CODE', "got a coderef"); + + is_deeply( + resolve_response($psgi_res), + [ 200, [], ["caf\xe9"] ], + "got the right response" + ); +} + +{ + use utf8; + + my $req = Web::Request->new_from_env({}); + $req->encoding('UTF-8'); + + my $res = $req->new_response(sub { + my $responder = shift; + $responder->([200, [], ["café"]]); + }); + my $psgi_res = $res->finalize; + ok(ref($psgi_res) eq 'CODE', "got a coderef"); + + is_deeply( + resolve_response($psgi_res), + [ 200, [], ["caf\xc3\xa9"] ], + "got the right response" + ); +} + +{ + use utf8; + + my $req = Web::Request->new_from_env({}); + + my $res = $req->new_response(sub { + my $responder = shift; + my $writer = $responder->([200, []]); + $writer->write("ca"); + $writer->write("fé"); + $writer->close; + }); + my $psgi_res = $res->finalize; + ok(ref($psgi_res) eq 'CODE', "got a coderef"); + + is_deeply( + resolve_response($psgi_res), + [ 200, [], ["ca", "f\xe9"] ], + "got the right response" + ); +} + +{ + use utf8; + + my $req = Web::Request->new_from_env({}); + $req->encoding('UTF-8'); + + my $res = $req->new_response(sub { + my $responder = shift; + my $writer = $responder->([200, []]); + $writer->write("ca"); + $writer->write("fé"); + $writer->close; + }); + my $psgi_res = $res->finalize; + ok(ref($psgi_res) eq 'CODE', "got a coderef"); + + is_deeply( + resolve_response($psgi_res), + [ 200, [], ["ca", "f\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; diff --git a/t/response-streaming.t b/t/response-streaming.t index 51f6aea..eea787e 100644 --- a/t/response-streaming.t +++ b/t/response-streaming.t @@ -3,7 +3,6 @@ use strict; use warnings; use Test::More; -use Web::Request; use Web::Response; { @@ -22,45 +21,6 @@ use Web::Response; } { - use utf8; - - my $req = Web::Request->new_from_env({}); - - my $res = $req->new_response(sub { - my $responder = shift; - $responder->([200, [], ["café"]]); - }); - my $psgi_res = $res->finalize; - ok(ref($psgi_res) eq 'CODE', "got a coderef"); - - is_deeply( - resolve_response($psgi_res), - [ 200, [], ["caf\xe9"] ], - "got the right response" - ); -} - -{ - use utf8; - - my $req = Web::Request->new_from_env({}); - $req->encoding('UTF-8'); - - my $res = $req->new_response(sub { - my $responder = shift; - $responder->([200, [], ["café"]]); - }); - my $psgi_res = $res->finalize; - ok(ref($psgi_res) eq 'CODE', "got a coderef"); - - is_deeply( - resolve_response($psgi_res), - [ 200, [], ["caf\xc3\xa9"] ], - "got the right response" - ); -} - -{ my $res = Web::Response->new(sub { my $responder = shift; my $writer = $responder->([200, []]); @@ -79,51 +39,6 @@ use Web::Response; ); } -{ - use utf8; - - my $req = Web::Request->new_from_env({}); - - my $res = $req->new_response(sub { - my $responder = shift; - my $writer = $responder->([200, []]); - $writer->write("ca"); - $writer->write("fé"); - $writer->close; - }); - my $psgi_res = $res->finalize; - ok(ref($psgi_res) eq 'CODE', "got a coderef"); - - is_deeply( - resolve_response($psgi_res), - [ 200, [], ["ca", "f\xe9"] ], - "got the right response" - ); -} - -{ - use utf8; - - my $req = Web::Request->new_from_env({}); - $req->encoding('UTF-8'); - - my $res = $req->new_response(sub { - my $responder = shift; - my $writer = $responder->([200, []]); - $writer->write("ca"); - $writer->write("fé"); - $writer->close; - }); - my $psgi_res = $res->finalize; - ok(ref($psgi_res) eq 'CODE', "got a coderef"); - - is_deeply( - resolve_response($psgi_res), - [ 200, [], ["ca", "f\xc3\xa9"] ], - "got the right response" - ); -} - sub resolve_response { my ($psgi_res) = @_; |