aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/cowboy_http_req.erl9
-rw-r--r--test/http_SUITE.erl3
-rw-r--r--test/http_handler_set_resp.erl4
3 files changed, 13 insertions, 3 deletions
diff --git a/src/cowboy_http_req.erl b/src/cowboy_http_req.erl
index d5ee3fa..e4cb33e 100644
--- a/src/cowboy_http_req.erl
+++ b/src/cowboy_http_req.erl
@@ -37,7 +37,7 @@
]). %% Request Body API.
-export([
- set_resp_header/3, set_resp_body/2,
+ set_resp_cookie/4, set_resp_header/3, set_resp_body/2,
has_resp_header/2, has_resp_body/1,
reply/2, reply/3, reply/4,
chunked_reply/2, chunked_reply/3, chunk/2,
@@ -361,6 +361,13 @@ body_qs(Req) ->
%% Response API.
+%% @doc Add a cookie header to the response.
+-spec set_resp_cookie(binary(), binary(), [cowboy_cookies:cookie_option()],
+ #http_req{}) -> {ok, #http_req{}}.
+set_resp_cookie(Name, Value, Options, Req) ->
+ {HeaderName, HeaderValue} = cowboy_cookies:cookie(Name, Value, Options),
+ set_resp_header(HeaderName, HeaderValue, Req).
+
%% @doc Add a header to the response.
-spec set_resp_header(http_header(), iodata(), #http_req{})
-> {ok, #http_req{}}.
diff --git a/test/http_SUITE.erl b/test/http_SUITE.erl
index 2db6ff4..8fdc52d 100644
--- a/test/http_SUITE.erl
+++ b/test/http_SUITE.erl
@@ -505,7 +505,8 @@ set_resp_header(Config) ->
ok = gen_tcp:send(Socket, "GET /set_resp/header HTTP/1.1\r\n"
"Host: localhost\r\nConnection: close\r\n\r\n"),
{ok, Data} = gen_tcp:recv(Socket, 0, 6000),
- {_Start, _Length} = binary:match(Data, <<"Vary: Accept">>).
+ {_, _} = binary:match(Data, <<"Vary: Accept">>),
+ {_, _} = binary:match(Data, <<"Set-Cookie: ">>).
set_resp_overwrite(Config) ->
{port, Port} = lists:keyfind(port, 1, Config),
diff --git a/test/http_handler_set_resp.erl b/test/http_handler_set_resp.erl
index 6aca73d..83d48c0 100644
--- a/test/http_handler_set_resp.erl
+++ b/test/http_handler_set_resp.erl
@@ -13,7 +13,9 @@ init({_Transport, http}, Req, Opts) ->
{ok, Req3} = cowboy_http_req:set_resp_body(Body, Req2),
{ok, Req4} = cowboy_http_req:set_resp_header(
<<"X-Cowboy-Test">>, <<"ok">>, Req3),
- {ok, Req4, undefined}.
+ {ok, Req5} = cowboy_http_req:set_resp_cookie(
+ <<"cake">>, <<"lie">>, [], Req4),
+ {ok, Req5, undefined}.
handle(Req, State) ->
case cowboy_http_req:has_resp_header(<<"X-Cowboy-Test">>, Req) of