Просмотр исходного кода

Make the new cowboy_req tests more realistic

Loïc Hoguin 8 лет назад
Родитель
Сommit
e5a8088e68
3 измененных файлов с 27 добавлено и 22 удалено
  1. 0 1
      src/cowboy_req.erl
  2. 25 19
      test/handlers/resp_h.erl
  3. 2 2
      test/req_SUITE.erl

+ 0 - 1
src/cowboy_req.erl

@@ -580,7 +580,6 @@ set_resp_headers(Headers, Req=#{resp_headers := RespHeaders}) ->
 set_resp_headers(Headers, Req) ->
 	Req#{resp_headers => Headers}.
 
-
 -spec resp_header(binary(), req()) -> binary() | undefined.
 resp_header(Name, Req) ->
 	resp_header(Name, Req, undefined).

+ 25 - 19
test/handlers/resp_h.erl

@@ -26,28 +26,34 @@ do(<<"set_resp_header">>, Req0, Opts) ->
 	Req = cowboy_req:set_resp_header(<<"content-type">>, <<"text/plain">>, Req0),
 	{ok, cowboy_req:reply(200, #{}, "OK", Req), Opts};
 do(<<"set_resp_headers">>, Req0, Opts) ->
-	Req = cowboy_req:set_resp_headers(#{<<"x-header-test1">> => <<"test1">>, <<"x-header-test2">> => <<"test2">>}, Req0),
+	Req = cowboy_req:set_resp_headers(#{
+		<<"content-type">> => <<"text/plain">>,
+		<<"content-encoding">> => <<"gzip">>
+	}, Req0),
 	{ok, cowboy_req:reply(200, #{}, "OK", Req), Opts};
-do(<<"resp_headers">>, Req0, Opts) ->
-	Req1 = cowboy_req:set_resp_header(<<"x-header-test1">>, <<"test1">>, Req0),
-	Req2 = cowboy_req:set_resp_headers(#{<<"x-header-test2">> => <<"test2">>, <<"x-header-test3">> => <<"test3">>}, Req1),
-	Headers = cowboy_req:resp_headers(Req2),
-	true = maps:is_key(<<"x-header-test1">>, Headers),
-	true = maps:is_key(<<"x-header-test2">>, Headers),
-	true = maps:is_key(<<"x-header-test3">>, Headers),
-	{ok, cowboy_req:reply(200, #{}, "OK", Req2), Opts};
 do(<<"resp_header_defined">>, Req0, Opts) ->
-	Req1 = cowboy_req:set_resp_header(<<"x-header-test1">>, <<"test1">>, Req0),
-	<<"test1">> = cowboy_req:resp_header(<<"x-header-test1">>, Req1),
-	<<"test1">> = cowboy_req:resp_header(<<"x-header-test1">>, Req1, foo),
-	{ok, cowboy_req:reply(200, #{}, "OK", Req0), Opts};
-do(<<"resp_header_default">>, Req0, Opts) ->
-	undefined = cowboy_req:resp_header(<<"x-header-test1">>, Req0),
-	<<"ok">> = cowboy_req:resp_header(<<"x-header-test1">>, Req0, <<"ok">>),
-	{ok, cowboy_req:reply(200, #{}, "OK", Req0), Opts};
-do(<<"resp_headers_empty">>, Req0, Opts) ->
-	#{} = cowboy_req:resp_headers(Req0),
+	Req1 = cowboy_req:set_resp_header(<<"content-type">>, <<"text/plain">>, Req0),
+	<<"text/plain">> = cowboy_req:resp_header(<<"content-type">>, Req1),
+	<<"text/plain">> = cowboy_req:resp_header(<<"content-type">>, Req1, default),
 	{ok, cowboy_req:reply(200, #{}, "OK", Req0), Opts};
+do(<<"resp_header_default">>, Req, Opts) ->
+	undefined = cowboy_req:resp_header(<<"content-type">>, Req),
+	default = cowboy_req:resp_header(<<"content-type">>, Req, default),
+	{ok, cowboy_req:reply(200, #{}, "OK", Req), Opts};
+do(<<"resp_headers">>, Req0, Opts) ->
+	Req1 = cowboy_req:set_resp_header(<<"server">>, <<"nginx">>, Req0),
+	Req = cowboy_req:set_resp_headers(#{
+		<<"content-type">> => <<"text/plain">>,
+		<<"content-encoding">> => <<"gzip">>
+	}, Req1),
+	Headers = cowboy_req:resp_headers(Req),
+	true = maps:is_key(<<"server">>, Headers),
+	true = maps:is_key(<<"content-type">>, Headers),
+	true = maps:is_key(<<"content-encoding">>, Headers),
+	{ok, cowboy_req:reply(200, #{}, "OK", Req), Opts};
+do(<<"resp_headers_empty">>, Req, Opts) ->
+	#{} = cowboy_req:resp_headers(Req),
+	{ok, cowboy_req:reply(200, #{}, "OK", Req), Opts};
 do(<<"set_resp_body">>, Req0, Opts) ->
 	Arg = cowboy_req:binding(arg, Req0),
 	Req1 = case Arg of

+ 2 - 2
test/req_SUITE.erl

@@ -490,8 +490,8 @@ set_resp_header(Config) ->
 set_resp_headers(Config) ->
 	doc("Response using set_resp_headers."),
 	{200, Headers, <<"OK">>} = do_get("/resp/set_resp_headers", Config),
-	true = lists:keymember(<<"x-header-test1">>, 1, Headers),
-	true = lists:keymember(<<"x-header-test2">>, 1, Headers),
+	true = lists:keymember(<<"content-type">>, 1, Headers),
+	true = lists:keymember(<<"content-encoding">>, 1, Headers),
 	ok.
 
 resp_header(Config) ->