aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2013-05-31 18:31:28 +0200
committerLoïc Hoguin <[email protected]>2013-05-31 18:38:43 +0200
commit4fde6cba94f4ae65b6434aa722c08c60066f67d7 (patch)
treec5b555f5e1c7a494093486f462c5632a163f2cda /test
parent8fac4eedcf7d658f2933cbb77b4d8fe62429e3d6 (diff)
downloadcowboy-4fde6cba94f4ae65b6434aa722c08c60066f67d7.tar.gz
cowboy-4fde6cba94f4ae65b6434aa722c08c60066f67d7.tar.bz2
cowboy-4fde6cba94f4ae65b6434aa722c08c60066f67d7.zip
In content-types, the charset parameter is converted to lowercase
We know this specific parameter is case insensitive so we automatically lowercase it to make things simpler to the developer.
Diffstat (limited to 'test')
-rw-r--r--test/http_SUITE.erl12
-rw-r--r--test/http_SUITE_data/rest_post_charset_resource.erl15
2 files changed, 27 insertions, 0 deletions
diff --git a/test/http_SUITE.erl b/test/http_SUITE.erl
index 21cdd4b..54bc92a 100644
--- a/test/http_SUITE.erl
+++ b/test/http_SUITE.erl
@@ -64,6 +64,7 @@
-export([rest_options_default/1]).
-export([rest_param_all/1]).
-export([rest_patch/1]).
+-export([rest_post_charset/1]).
-export([rest_postonly/1]).
-export([rest_resource_etags/1]).
-export([rest_resource_etags_if_none_match/1]).
@@ -138,6 +139,7 @@ groups() ->
rest_options_default,
rest_param_all,
rest_patch,
+ rest_post_charset,
rest_postonly,
rest_resource_etags,
rest_resource_etags_if_none_match,
@@ -370,6 +372,7 @@ init_dispatch(Config) ->
{"/missing_get_callbacks", rest_missing_callbacks, []},
{"/missing_put_callbacks", rest_missing_callbacks, []},
{"/nodelete", rest_nodelete_resource, []},
+ {"/post_charset", rest_post_charset_resource, []},
{"/postonly", rest_postonly_resource, []},
{"/patch", rest_patch_resource, []},
{"/resetags", rest_resource_etags, []},
@@ -999,6 +1002,15 @@ rest_patch(Config) ->
ok
end || {Status, Headers, Body} <- Tests].
+rest_post_charset(Config) ->
+ Client = ?config(client, Config),
+ Headers = [
+ {<<"content-type">>, <<"text/plain;charset=UTF-8">>}
+ ],
+ {ok, Client2} = cowboy_client:request(<<"POST">>,
+ build_url("/post_charset", Config), Headers, "12345", Client),
+ {ok, 204, _, _} = cowboy_client:response(Client2).
+
rest_postonly(Config) ->
Client = ?config(client, Config),
Headers = [
diff --git a/test/http_SUITE_data/rest_post_charset_resource.erl b/test/http_SUITE_data/rest_post_charset_resource.erl
new file mode 100644
index 0000000..9ccfa61
--- /dev/null
+++ b/test/http_SUITE_data/rest_post_charset_resource.erl
@@ -0,0 +1,15 @@
+-module(rest_post_charset_resource).
+-export([init/3, allowed_methods/2, content_types_accepted/2, from_text/2]).
+
+init(_Transport, _Req, _Opts) ->
+ {upgrade, protocol, cowboy_rest}.
+
+allowed_methods(Req, State) ->
+ {[<<"POST">>], Req, State}.
+
+content_types_accepted(Req, State) ->
+ {[{{<<"text">>, <<"plain">>, [{<<"charset">>, <<"utf-8">>}]},
+ from_text}], Req, State}.
+
+from_text(Req, State) ->
+ {true, Req, State}.