From 4fde6cba94f4ae65b6434aa722c08c60066f67d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Fri, 31 May 2013 18:31:28 +0200 Subject: 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. --- test/http_SUITE.erl | 12 ++++++++++++ test/http_SUITE_data/rest_post_charset_resource.erl | 15 +++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 test/http_SUITE_data/rest_post_charset_resource.erl (limited to 'test') 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}. -- cgit v1.2.3