diff options
Diffstat (limited to 't/response-streaming.t')
-rw-r--r-- | t/response-streaming.t | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/t/response-streaming.t b/t/response-streaming.t index fdf54e6..b9c19de 100644 --- a/t/response-streaming.t +++ b/t/response-streaming.t @@ -3,6 +3,7 @@ use strict; use warnings; use Test::More; +use Web::Request; use Web::Response; { @@ -23,4 +24,49 @@ 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"); + + my $complete_response; + my $responder = sub { $complete_response = $_[0] }; + $psgi_res->($responder); + is_deeply( + $complete_response, + [ 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"); + + my $complete_response; + my $responder = sub { $complete_response = $_[0] }; + $psgi_res->($responder); + is_deeply( + $complete_response, + [ 200, [], ["caf\xc3\xa9"] ], + "got the right response" + ); +} + done_testing; |