From f08f4610a08a187c573da2273494a27894bea54c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20Meadows-J=C3=B6nsson?= Date: Wed, 16 May 2018 13:28:49 +0200 Subject: Add streaming without chunking for HTTP/1.1 If content-length is set in the response headers we can skip chunked transfer-encoding. --- test/handlers/resp_h.erl | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'test/handlers') diff --git a/test/handlers/resp_h.erl b/test/handlers/resp_h.erl index 68b5fe0..e924c89 100644 --- a/test/handlers/resp_h.erl +++ b/test/handlers/resp_h.erl @@ -220,6 +220,32 @@ do(<<"stream_body">>, Req0, Opts) -> cowboy_req:stream_body(<<0:800000>>, fin, Req0), {ok, Req0, Opts} end; +do(<<"stream_body_content_length">>, Req0, Opts) -> + case cowboy_req:binding(arg, Req0) of + <<"fin0">> -> + Req1 = cowboy_req:set_resp_header(<<"content-length">>, <<"12">>, Req0), + Req = cowboy_req:stream_reply(200, Req1), + cowboy_req:stream_body(<<"Hello world!">>, nofin, Req), + cowboy_req:stream_body(<<>>, fin, Req), + {ok, Req, Opts}; + <<"multiple">> -> + Req1 = cowboy_req:set_resp_header(<<"content-length">>, <<"12">>, Req0), + Req = cowboy_req:stream_reply(200, Req1), + cowboy_req:stream_body(<<"Hello ">>, nofin, Req), + cowboy_req:stream_body(<<"world">>, nofin, Req), + cowboy_req:stream_body(<<"!">>, fin, Req), + {ok, Req, Opts}; + <<"nofin">> -> + Req1 = cowboy_req:set_resp_header(<<"content-length">>, <<"12">>, Req0), + Req = cowboy_req:stream_reply(200, Req1), + cowboy_req:stream_body(<<"Hello world!">>, nofin, Req), + {ok, Req, Opts}; + <<"nofin-error">> -> + Req1 = cowboy_req:set_resp_header(<<"content-length">>, <<"12">>, Req0), + Req = cowboy_req:stream_reply(200, Req1), + cowboy_req:stream_body(<<"Hello">>, nofin, Req), + {ok, Req, Opts} + end; do(<<"stream_trailers">>, Req0, Opts) -> case cowboy_req:binding(arg, Req0) of <<"large">> -> -- cgit v1.2.3