aboutsummaryrefslogtreecommitdiffstats
path: root/test/handlers/cookie_set_h.erl
blob: 29ff351f6127ffe90a7649df9f813b670296971a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
%% Feel free to use, reuse and abuse the code in this file.

-module(cookie_set_h).

-export([init/2]).

init(Req0, State) ->
	SetCookieList = set_cookie_list(Req0),
	Req = cowboy_req:set_resp_header(<<"set-cookie">>, SetCookieList, Req0),
	{ok, cowboy_req:reply(204, Req), State}.

-define(HOST, "web-platform.test").

set_cookie_list(#{qs := <<"domain_with_and_without_leading_period">>}) ->
	[
		<<"a=b; Path=/; Domain=." ?HOST>>,
		<<"a=c; Path=/; Domain=" ?HOST>>
	];
set_cookie_list(#{qs := <<"domain_with_leading_period">>}) ->
	[<<"a=b; Path=/; Domain=." ?HOST>>];
set_cookie_list(#{qs := <<"domain_matches_host">>}) ->
	[<<"a=b; Path=/; Domain=" ?HOST>>];
set_cookie_list(#{qs := <<"domain_missing">>}) ->
	[<<"a=b; Path=/;">>];
set_cookie_list(#{qs := <<"path_default">>}) ->
	[<<"cookie-path-default=1">>];
set_cookie_list(#{qs := <<"path_default_expire">>}) ->
	[<<"cookie-path-default=1; Max-Age=0">>];
set_cookie_list(#{qs := <<"path=",Path/bits>>}) ->
	[[<<"a=b; Path=">>, Path]];
set_cookie_list(Req=#{qs := <<"prefix">>}) ->
	[cowboy_req:header(<<"please-set-cookie">>, Req)];
set_cookie_list(#{qs := <<"secure_http">>}) ->
	[<<"secure_from_nonsecure_http=1; Secure; Path=/">>];
set_cookie_list(#{qs := <<"secure_https">>}) ->
	[<<"secure_from_secure_http=1; Secure; Path=/">>].