diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-09-29 00:00:58 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2012-09-29 00:00:58 -0500 |
commit | c4e5d70df578b0e0ad30fa353738d6104306badd (patch) | |
tree | f3311dcd07e187a9f44334ffb3446cd2c9059b51 /t | |
parent | be74ecf8a7ccda39a401b832f2044c9d2e334541 (diff) | |
download | web-request-c4e5d70df578b0e0ad30fa353738d6104306badd.tar.gz web-request-c4e5d70df578b0e0ad30fa353738d6104306badd.zip |
test the writer api
Diffstat (limited to 't')
-rw-r--r-- | t/response-streaming.t | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/t/response-streaming.t b/t/response-streaming.t index 55caefe..51f6aea 100644 --- a/t/response-streaming.t +++ b/t/response-streaming.t @@ -60,6 +60,70 @@ use Web::Response; ); } +{ + my $res = Web::Response->new(sub { + my $responder = shift; + my $writer = $responder->([200, []]); + $writer->write("Hello"); + $writer->write(" "); + $writer->write("world"); + $writer->close; + }); + my $psgi_res = $res->finalize; + ok(ref($psgi_res) eq 'CODE', "got a coderef"); + + is_deeply( + resolve_response($psgi_res), + [ 200, [], ["Hello", " ", "world"] ], + "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) = @_; |