aboutsummaryrefslogtreecommitdiffstats
path: root/test/handlers
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2015-05-05 19:59:37 +0300
committerLoïc Hoguin <[email protected]>2015-05-05 19:59:37 +0300
commit228cebaf04f2c53b0bf09fb69b52be543cfc55ba (patch)
treeb650dfde6e253aaee443883a1d277c56ac43c31e /test/handlers
parent90ae31998e8d0887b9efe4b441136ac047708bb9 (diff)
downloadcowboy-228cebaf04f2c53b0bf09fb69b52be543cfc55ba.tar.gz
cowboy-228cebaf04f2c53b0bf09fb69b52be543cfc55ba.tar.bz2
cowboy-228cebaf04f2c53b0bf09fb69b52be543cfc55ba.zip
Add rfc7230 test suite and update others to recent Gun
This is a large commit. The rfc7230 test suite adds many tests from the RFC7230 document. Gun has been updated quite a bit recently, which broke the Cowboy suites. This is now fixed with this commit. A new hook onfirstrequest has been added. It was very useful during debugging of the test suites. The initial process code has changed a little; more changes are expected with the switch to maps for options.
Diffstat (limited to 'test/handlers')
-rw-r--r--test/handlers/asterisk_h.erl16
-rw-r--r--test/handlers/echo_h.erl16
-rw-r--r--test/handlers/hello_h.erl8
-rw-r--r--test/handlers/input_crash_h.erl2
4 files changed, 41 insertions, 1 deletions
diff --git a/test/handlers/asterisk_h.erl b/test/handlers/asterisk_h.erl
new file mode 100644
index 0000000..b5ff32d
--- /dev/null
+++ b/test/handlers/asterisk_h.erl
@@ -0,0 +1,16 @@
+%% This module echoes back the value the test is interested in.
+
+-module(asterisk_h).
+
+-export([init/2]).
+
+init(Req, Opts) ->
+ echo(cowboy_req:header(<<"x-echo">>, Req), Req, Opts).
+
+echo(What, Req, Opts) ->
+ F = binary_to_atom(What, latin1),
+ Value = case cowboy_req:F(Req) of
+ V when is_integer(V) -> integer_to_binary(V);
+ V -> V
+ end,
+ {ok, cowboy_req:reply(200, [], Value, Req), Opts}.
diff --git a/test/handlers/echo_h.erl b/test/handlers/echo_h.erl
new file mode 100644
index 0000000..71408c3
--- /dev/null
+++ b/test/handlers/echo_h.erl
@@ -0,0 +1,16 @@
+%% This module echoes back the value the test is interested in.
+
+-module(echo_h).
+
+-export([init/2]).
+
+init(Req, Opts) ->
+ echo(cowboy_req:binding(key, Req), Req, Opts).
+
+echo(What, Req, Opts) ->
+ F = binary_to_atom(What, latin1),
+ Value = case cowboy_req:F(Req) of
+ V when is_integer(V) -> integer_to_binary(V);
+ V -> V
+ end,
+ {ok, cowboy_req:reply(200, [], Value, Req), Opts}.
diff --git a/test/handlers/hello_h.erl b/test/handlers/hello_h.erl
new file mode 100644
index 0000000..3be7b6d
--- /dev/null
+++ b/test/handlers/hello_h.erl
@@ -0,0 +1,8 @@
+%% This module sends a hello world response.
+
+-module(hello_h).
+
+-export([init/2]).
+
+init(Req, Opts) ->
+ {ok, cowboy_req:reply(200, [], <<"Hello world!">>, Req), Opts}.
diff --git a/test/handlers/input_crash_h.erl b/test/handlers/input_crash_h.erl
index c67bb0c..8cb7cbc 100644
--- a/test/handlers/input_crash_h.erl
+++ b/test/handlers/input_crash_h.erl
@@ -6,5 +6,5 @@
-export([init/2]).
init(Req, content_length) ->
- cowboy_error_h:ignore(erlang, binary_to_integer, 1),
+ ct_helper_error_h:ignore(erlang, binary_to_integer, 1),
cowboy_req:parse_header(<<"content-length">>, Req).