aboutsummaryrefslogtreecommitdiffstats
path: root/test/handlers/decompress_h.erl
diff options
context:
space:
mode:
Diffstat (limited to 'test/handlers/decompress_h.erl')
-rw-r--r--test/handlers/decompress_h.erl98
1 files changed, 57 insertions, 41 deletions
diff --git a/test/handlers/decompress_h.erl b/test/handlers/decompress_h.erl
index 346200b..deb6de0 100644
--- a/test/handlers/decompress_h.erl
+++ b/test/handlers/decompress_h.erl
@@ -5,10 +5,10 @@
-export([init/2]).
-init(Req0, State=[]) ->
+init(Req0, State=echo) ->
case cowboy_req:binding(what, Req0) of
- <<"decompress_ignore">> ->
- cowboy_req:cast({set_options, #{decompress_ignore => true}}, Req0);
+ <<"decompress_disable">> ->
+ cowboy_req:cast({set_options, #{decompress_enabled => false}}, Req0);
<<"decompress_ratio_limit">> ->
cowboy_req:cast({set_options, #{decompress_ratio_limit => 0.5}}, Req0);
<<"normal">> -> ok
@@ -16,46 +16,62 @@ init(Req0, State=[]) ->
{ok, Body, Req1} = read_body(Req0),
Req = cowboy_req:reply(200, #{}, Body, Req1),
{ok, Req, State};
+init(Req0, State=test) ->
+ Req = test(Req0, cowboy_req:binding(what, Req0)),
+ {ok, Req, State}.
-init(Req0, State=header_command) ->
- {ok, Body, Req1} = read_body(Req0),
- Req2 = cowboy_req:stream_reply(200, #{}, Req1),
- Req = cowboy_req:stream_body(Body, fin, Req2),
- {ok, Req, State};
-
-init(Req0, State=accept_identity) ->
- {ok, Body, Req1} = read_body(Req0),
- Req = cowboy_req:reply(200, #{<<"accept-encoding">> => <<"identity">>}, Body, Req1),
- {ok, Req, State};
-
-init(Req0, State=invalid_header) ->
- {ok, Body, Req1} = read_body(Req0),
- Req = cowboy_req:reply(200, #{<<"accept-encoding">> => <<";">>}, Body, Req1),
- {ok, Req, State};
-
-init(Req0, State=reject_explicit_header) ->
- {ok, Body, Req1} = read_body(Req0),
- Req = cowboy_req:reply(200, #{<<"accept-encoding">> => <<"identity, gzip;q=0">>},
- Body, Req1),
- {ok, Req, State};
-
-init(Req0, State=reject_implicit_header) ->
- {ok, Body, Req1} = read_body(Req0),
- Req = cowboy_req:reply(200, #{<<"accept-encoding">> => <<"identity, *;q=0">>},
- Body, Req1),
- {ok, Req, State};
-
-init(Req0, State=accept_explicit_header) ->
- {ok, Body, Req1} = read_body(Req0),
- Req = cowboy_req:reply(200, #{<<"accept-encoding">> => <<"identity, gzip;q=0.5">>},
- Body, Req1),
- {ok, Req, State};
-
-init(Req0, State=accept_implicit_header) ->
+test(Req, <<"content-encoding">>) ->
+ cowboy_req:reply(200, #{},
+ cowboy_req:header(<<"content-encoding">>, Req, <<"undefined">>),
+ Req);
+test(Req, <<"content-decoded">>) ->
+ cowboy_req:reply(200, #{},
+ io_lib:format("~0p", [maps:get(content_decoded, Req, undefined)]),
+ Req);
+test(Req0, <<"disable-in-the-middle">>) ->
+ {Status, Data, Req1} = cowboy_req:read_body(Req0, #{length => 1000}),
+ cowboy_req:cast({set_options, #{decompress_enabled => false}}, Req1),
+ {ok, Body, Req} = do_read_body(Status, Req1, Data),
+ cowboy_req:reply(200, #{}, Body, Req);
+test(Req0, <<"enable-in-the-middle">>) ->
+ {Status, Data, Req1} = cowboy_req:read_body(Req0, #{length => 1000}),
+ cowboy_req:cast({set_options, #{decompress_enabled => true}}, Req1),
+ {ok, Body, Req} = do_read_body(Status, Req1, Data),
+ cowboy_req:reply(200, #{}, Body, Req);
+test(Req0, <<"header-command">>) ->
{ok, Body, Req1} = read_body(Req0),
- Req = cowboy_req:reply(200, #{<<"accept-encoding">> => <<"identity, *;q=0.5">>},
- Body, Req1),
- {ok, Req, State}.
+ Req = cowboy_req:stream_reply(200, #{}, Req1),
+ cowboy_req:stream_body(Body, fin, Req);
+test(Req0, <<"accept-identity">>) ->
+ {ok, Body, Req} = read_body(Req0),
+ cowboy_req:reply(200,
+ #{<<"accept-encoding">> => <<"identity">>},
+ Body, Req);
+test(Req0, <<"invalid-header">>) ->
+ {ok, Body, Req} = read_body(Req0),
+ cowboy_req:reply(200,
+ #{<<"accept-encoding">> => <<";">>},
+ Body, Req);
+test(Req0, <<"reject-explicit-header">>) ->
+ {ok, Body, Req} = read_body(Req0),
+ cowboy_req:reply(200,
+ #{<<"accept-encoding">> => <<"identity, gzip;q=0">>},
+ Body, Req);
+test(Req0, <<"reject-implicit-header">>) ->
+ {ok, Body, Req} = read_body(Req0),
+ cowboy_req:reply(200,
+ #{<<"accept-encoding">> => <<"identity, *;q=0">>},
+ Body, Req);
+test(Req0, <<"accept-explicit-header">>) ->
+ {ok, Body, Req} = read_body(Req0),
+ cowboy_req:reply(200,
+ #{<<"accept-encoding">> => <<"identity, gzip;q=0.5">>},
+ Body, Req);
+test(Req0, <<"accept-implicit-header">>) ->
+ {ok, Body, Req} = read_body(Req0),
+ cowboy_req:reply(200,
+ #{<<"accept-encoding">> => <<"identity, *;q=0.5">>},
+ Body, Req).
read_body(Req0) ->
{Status, Data, Req} = cowboy_req:read_body(Req0, #{length => 1000}),