From 51c5dd845e69f80da148919189cc1fa85b52cdfa Mon Sep 17 00:00:00 2001 From: Benoit Chesneau Date: Wed, 1 Mar 2017 16:36:34 +0100 Subject: [PATCH] add test to make sure duplocate headers issue is fixed --- rebar.config | 2 +- test/hackney_integration_tests.erl | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/rebar.config b/rebar.config index d26e122a..b61f9f7f 100644 --- a/rebar.config +++ b/rebar.config @@ -34,6 +34,6 @@ {top_level_readme, {"./README.md", "http://github.com/benoitc/hackney"}}]}]}, {test, [ - {deps, [{cowboy, "1.0.4"}]} + {deps, [{cowboy, "1.0.4"}, {jsone, "1.4.3"}]} ]} ]}. diff --git a/test/hackney_integration_tests.erl b/test/hackney_integration_tests.erl index 1593b071..47bddf25 100644 --- a/test/hackney_integration_tests.erl +++ b/test/hackney_integration_tests.erl @@ -17,13 +17,15 @@ all_tests() -> absolute_redirect_request_follow(), relative_redirect_request_no_follow(), relative_redirect_request_follow(), + test_duplicate_headers(), async_request(), async_head_request(), async_no_content_request()]. %%all_tests() -> %% case has_unix_socket() of -%% true -> default_tests() ++ [local_socket_request()]; +%% true -> def +%% ault_tests() ++ [local_socket_request()]; %% false -> default_tests() %% end. @@ -150,6 +152,18 @@ async_no_content_request() -> [?_assertEqual(204, StatusCode), ?_assertEqual([headers, status], Keys)]. +test_duplicate_headers() -> + URL = <<"http://localhost:8000/post">>, + Headers = [{<<"Content-Type">>, <<"application/json">>}], + Body = <<"{\"test\": \"ok\" }">>, + Options = [with_body], + {ok, 200, _H, JsonBody} = hackney:post(URL, Headers, Body, Options), + Obj = jsone:decode(JsonBody, [{object_format, proplist}]), + ReqHeaders = proplists:get_value(<<"headers">>, Obj), + ?_assertEqual(<<"application/json">>, proplists:get_value(<<"Content-Type">>, ReqHeaders)). + + + %%local_socket_request() -> %% URL = <<"http+unix://httpbin.sock/get">>, %% {ok, StatusCode, _, _} = hackney:request(get, URL, [], <<>>, []),