From c4e5d70df578b0e0ad30fa353738d6104306badd Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sat, 29 Sep 2012 00:00:58 -0500 Subject: test the writer api --- t/response-streaming.t | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) 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) = @_; -- cgit v1.2.3-54-g00ecf