summaryrefslogtreecommitdiffstats
path: root/t/response-streaming.t
diff options
context:
space:
mode:
Diffstat (limited to 't/response-streaming.t')
-rw-r--r--t/response-streaming.t46
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;