diff options
author | Loïc Hoguin <[email protected]> | 2020-03-11 19:45:16 +0100 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2020-03-12 18:08:16 +0100 |
commit | 87d0bfff926892d2dc0a55a3dc45d8c5f8a682f3 (patch) | |
tree | 5b381d3d2c2f691699baeddad78c781026d237b7 /test/handlers/cookie_parser_h.erl | |
parent | 04790d3a281a42fbd65c9a44fe88f437cfe025f3 (diff) | |
download | gun-87d0bfff926892d2dc0a55a3dc45d8c5f8a682f3.tar.gz gun-87d0bfff926892d2dc0a55a3dc45d8c5f8a682f3.tar.bz2 gun-87d0bfff926892d2dc0a55a3dc45d8c5f8a682f3.zip |
Make Gun use the cookie store when configured to
Diffstat (limited to 'test/handlers/cookie_parser_h.erl')
-rw-r--r-- | test/handlers/cookie_parser_h.erl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/handlers/cookie_parser_h.erl b/test/handlers/cookie_parser_h.erl new file mode 100644 index 0000000..cff5901 --- /dev/null +++ b/test/handlers/cookie_parser_h.erl @@ -0,0 +1,23 @@ +%% Feel free to use, reuse and abuse the code in this file. + +-module(cookie_parser_h). + +-export([init/2]). + +init(Req0=#{qs := Qs}, State) -> + %% Hardcoded path, but I doubt it's going to break anytime soon. + TestFile = iolist_to_binary(["../../test/wpt/cookies/", Qs, "-test"]), + {ok, Test} = file:read_file(TestFile), + %% We don't want the final empty line. + Lines = lists:reverse(tl(lists:reverse(string:split(Test, <<"\n">>, all)))), + Req = lists:foldl(fun + (<<"Set-Cookie: ",SetCookie/bits>>, Req1) -> + %% We do not use set_resp_cookie because we want to preserve ordering. + SetCookieList = cowboy_req:resp_header(<<"set-cookie">>, Req1, []), + cowboy_req:set_resp_header(<<"set-cookie">>, SetCookieList ++ [SetCookie], Req1); + (<<"Set-Cookie:">>, Req1) -> + Req1; + (<<"Location: ",Location/bits>>, Req1) -> + cowboy_req:set_resp_header(<<"location">>, Location, Req1) + end, Req0, Lines), + {ok, cowboy_req:reply(204, Req), State}. |