aboutsummaryrefslogtreecommitdiffstats
path: root/test/http_SUITE.erl
diff options
context:
space:
mode:
Diffstat (limited to 'test/http_SUITE.erl')
-rw-r--r--test/http_SUITE.erl18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/http_SUITE.erl b/test/http_SUITE.erl
index 637bb0d..492863f 100644
--- a/test/http_SUITE.erl
+++ b/test/http_SUITE.erl
@@ -56,6 +56,7 @@
-export([rest_missing_get_callbacks/1]).
-export([rest_missing_put_callbacks/1]).
-export([rest_nodelete/1]).
+-export([rest_patch/1]).
-export([rest_resource_etags/1]).
-export([rest_resource_etags_if_none_match/1]).
-export([set_resp_body/1]).
@@ -117,6 +118,7 @@ groups() ->
rest_missing_get_callbacks,
rest_missing_put_callbacks,
rest_nodelete,
+ rest_patch,
rest_resource_etags,
rest_resource_etags_if_none_match,
set_resp_body,
@@ -331,6 +333,7 @@ init_dispatch(Config) ->
{"/missing_get_callbacks", rest_missing_callbacks, []},
{"/missing_put_callbacks", rest_missing_callbacks, []},
{"/nodelete", rest_nodelete_resource, []},
+ {"/patch", rest_patch_resource, []},
{"/resetags", rest_resource_etags, []},
{"/rest_expires", rest_expires, []},
{"/loop_timeout", http_handler_loop_timeout, []},
@@ -834,6 +837,21 @@ rest_nodelete(Config) ->
build_url("/nodelete", Config), Client),
{ok, 500, _, _} = cowboy_client:response(Client2).
+rest_patch(Config) ->
+ Tests = [
+ {204, [{<<"content-type">>, <<"text/plain">>}], <<"whatever">>},
+ {500, [{<<"content-type">>, <<"text/plain">>}], <<"false">>},
+ {400, [{<<"content-type">>, <<"text/plain">>}], <<"halt">>},
+ {415, [{<<"content-type">>, <<"application/json">>}], <<"bad_content_type">>}
+ ],
+ Client = ?config(client, Config),
+ _ = [begin
+ {ok, Client2} = cowboy_client:request(<<"PATCH">>,
+ build_url("/patch", Config), Headers, Body, Client),
+ {ok, Status, _, _} = cowboy_client:response(Client2),
+ ok
+ end || {Status, Headers, Body} <- Tests].
+
rest_resource_get_etag(Config, Type) ->
rest_resource_get_etag(Config, Type, []).