aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/handlers/input_crash_h.erl4
-rw-r--r--test/handlers/long_polling_h.erl7
-rw-r--r--test/handlers/loop_handler_body_h.erl7
-rw-r--r--test/handlers/loop_handler_timeout_h.erl7
-rw-r--r--test/http_SUITE_data/http_body_qs.erl12
-rw-r--r--test/http_SUITE_data/http_chunked.erl12
-rw-r--r--test/http_SUITE_data/http_echo_body.erl12
-rw-r--r--test/http_SUITE_data/http_errors.erl16
-rw-r--r--test/http_SUITE_data/http_handler.erl18
-rw-r--r--test/http_SUITE_data/http_init_shutdown.erl13
-rw-r--r--test/http_SUITE_data/http_loop_stream_recv.erl7
-rw-r--r--test/http_SUITE_data/http_multipart.erl12
-rw-r--r--test/http_SUITE_data/http_multipart_stream.erl12
-rw-r--r--test/http_SUITE_data/http_req_attr.erl21
-rw-r--r--test/http_SUITE_data/http_set_resp.erl12
-rw-r--r--test/http_SUITE_data/http_stream_body.erl19
-rw-r--r--test/http_SUITE_data/http_streamed.erl12
-rw-r--r--test/http_SUITE_data/rest_empty_resource.erl7
-rw-r--r--test/http_SUITE_data/rest_expires.erl6
-rw-r--r--test/http_SUITE_data/rest_expires_binary.erl6
-rw-r--r--test/http_SUITE_data/rest_forbidden_resource.erl16
-rw-r--r--test/http_SUITE_data/rest_missing_callbacks.erl7
-rw-r--r--test/http_SUITE_data/rest_nodelete_resource.erl13
-rw-r--r--test/http_SUITE_data/rest_param_all.erl6
-rw-r--r--test/http_SUITE_data/rest_patch_resource.erl13
-rw-r--r--test/http_SUITE_data/rest_post_charset_resource.erl10
-rw-r--r--test/http_SUITE_data/rest_postonly_resource.erl10
-rw-r--r--test/http_SUITE_data/rest_resource_etags.erl10
-rw-r--r--test/http_SUITE_data/rest_simple_resource.erl10
-rw-r--r--test/ws_SUITE.erl33
-rw-r--r--test/ws_SUITE_data/ws_echo.erl17
-rw-r--r--test/ws_SUITE_data/ws_echo_timer.erl17
-rw-r--r--test/ws_SUITE_data/ws_init_shutdown.erl20
-rw-r--r--test/ws_SUITE_data/ws_send_many.erl16
-rw-r--r--test/ws_SUITE_data/ws_timeout_cancel.erl16
-rw-r--r--test/ws_SUITE_data/ws_timeout_hibernate.erl16
-rw-r--r--test/ws_SUITE_data/ws_upgrade_with_opts.erl28
37 files changed, 181 insertions, 299 deletions
diff --git a/test/handlers/input_crash_h.erl b/test/handlers/input_crash_h.erl
index 668d053..e941cca 100644
--- a/test/handlers/input_crash_h.erl
+++ b/test/handlers/input_crash_h.erl
@@ -3,8 +3,8 @@
-module(input_crash_h).
--export([init/3]).
+-export([init/2]).
-init(_, Req, content_length) ->
+init(Req, content_length) ->
cowboy_error_h:ignore(cow_http_hd, number, 2),
cowboy_req:parse_header(<<"content-length">>, Req).
diff --git a/test/handlers/long_polling_h.erl b/test/handlers/long_polling_h.erl
index 1c86aed..1b240fd 100644
--- a/test/handlers/long_polling_h.erl
+++ b/test/handlers/long_polling_h.erl
@@ -4,15 +4,14 @@
%% When it receives the last message, it sends a 102 reply back.
-module(long_polling_h).
--behaviour(cowboy_loop_handler).
--export([init/3]).
+-export([init/2]).
-export([info/3]).
-export([terminate/3]).
-init(_, Req, _) ->
+init(Req, _) ->
erlang:send_after(200, self(), timeout),
- {loop, Req, 2, 5000, hibernate}.
+ {long_polling, Req, 2, 5000, hibernate}.
info(timeout, Req, 0) ->
{ok, cowboy_req:reply(102, Req), 0};
diff --git a/test/handlers/loop_handler_body_h.erl b/test/handlers/loop_handler_body_h.erl
index 559ef90..ac75773 100644
--- a/test/handlers/loop_handler_body_h.erl
+++ b/test/handlers/loop_handler_body_h.erl
@@ -4,15 +4,14 @@
%% then sends a 200 reply back.
-module(loop_handler_body_h).
--behaviour(cowboy_loop_handler).
--export([init/3]).
+-export([init/2]).
-export([info/3]).
-export([terminate/3]).
-init(_, Req, _) ->
+init(Req, _) ->
self() ! timeout,
- {loop, Req, undefined, 5000, hibernate}.
+ {long_polling, Req, undefined, 5000, hibernate}.
info(timeout, Req, State) ->
{ok, Body, Req2} = cowboy_req:body(Req),
diff --git a/test/handlers/loop_handler_timeout_h.erl b/test/handlers/loop_handler_timeout_h.erl
index 3b158bf..8e24d33 100644
--- a/test/handlers/loop_handler_timeout_h.erl
+++ b/test/handlers/loop_handler_timeout_h.erl
@@ -5,15 +5,14 @@
%% This results in a 204 reply being sent back by Cowboy.
-module(loop_handler_timeout_h).
--behaviour(cowboy_loop_handler).
--export([init/3]).
+-export([init/2]).
-export([info/3]).
-export([terminate/3]).
-init(_, Req, _) ->
+init(Req, _) ->
erlang:send_after(1000, self(), timeout),
- {loop, Req, undefined, 200, hibernate}.
+ {long_polling, Req, undefined, 200, hibernate}.
info(timeout, Req, State) ->
{ok, cowboy_req:reply(500, Req), State}.
diff --git a/test/http_SUITE_data/http_body_qs.erl b/test/http_SUITE_data/http_body_qs.erl
index 09eebdb..b219566 100644
--- a/test/http_SUITE_data/http_body_qs.erl
+++ b/test/http_SUITE_data/http_body_qs.erl
@@ -1,11 +1,12 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(http_body_qs).
--behaviour(cowboy_http_handler).
--export([init/3, handle/2, terminate/3]).
-init({_, http}, Req, _) ->
- {ok, Req, undefined}.
+-export([init/2]).
+-export([handle/2]).
+
+init(Req, Opts) ->
+ {http, Req, Opts}.
handle(Req, State) ->
Method = cowboy_req:method(Req),
@@ -33,6 +34,3 @@ echo(Echo, Req) ->
cowboy_req:reply(200, [
{<<"content-type">>, <<"text/plain; charset=utf-8">>}
], Echo, Req).
-
-terminate(_, _, _) ->
- ok.
diff --git a/test/http_SUITE_data/http_chunked.erl b/test/http_SUITE_data/http_chunked.erl
index 7f0d749..0c18363 100644
--- a/test/http_SUITE_data/http_chunked.erl
+++ b/test/http_SUITE_data/http_chunked.erl
@@ -1,11 +1,12 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(http_chunked).
--behaviour(cowboy_http_handler).
--export([init/3, handle/2, terminate/3]).
-init({_Transport, http}, Req, _Opts) ->
- {ok, Req, undefined}.
+-export([init/2]).
+-export([handle/2]).
+
+init(Req, Opts) ->
+ {http, Req, Opts}.
handle(Req, State) ->
Req2 = cowboy_req:chunked_reply(200, Req),
@@ -14,6 +15,3 @@ handle(Req, State) ->
timer:sleep(100),
cowboy_req:chunk("works fine!", Req2),
{ok, Req2, State}.
-
-terminate(_, _, _) ->
- ok.
diff --git a/test/http_SUITE_data/http_echo_body.erl b/test/http_SUITE_data/http_echo_body.erl
index 986015a..8743844 100644
--- a/test/http_SUITE_data/http_echo_body.erl
+++ b/test/http_SUITE_data/http_echo_body.erl
@@ -1,11 +1,12 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(http_echo_body).
--behaviour(cowboy_http_handler).
--export([init/3, handle/2, terminate/3]).
-init({_, http}, Req, _) ->
- {ok, Req, undefined}.
+-export([init/2]).
+-export([handle/2]).
+
+init(Req, Opts) ->
+ {http, Req, Opts}.
handle(Req, State) ->
true = cowboy_req:has_body(Req),
@@ -22,6 +23,3 @@ handle_body(Req, Body) ->
Size = cowboy_req:body_length(Req),
Size = byte_size(Body),
cowboy_req:reply(200, [], Body, Req).
-
-terminate(_, _, _) ->
- ok.
diff --git a/test/http_SUITE_data/http_errors.erl b/test/http_SUITE_data/http_errors.erl
index 7c3872b..39eda60 100644
--- a/test/http_SUITE_data/http_errors.erl
+++ b/test/http_SUITE_data/http_errors.erl
@@ -1,10 +1,11 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(http_errors).
--behaviour(cowboy_http_handler).
--export([init/3, handle/2, terminate/3]).
-init({_Transport, http}, Req, _Opts) ->
+-export([init/2]).
+-export([handle/2]).
+
+init(Req, _Opts) ->
#{'case' := Case} = cowboy_req:match_qs(Req, ['case']),
case_init(Case, Req).
@@ -17,11 +18,11 @@ case_init(<<"init_after_reply">> = Case, Req) ->
error(Case);
case_init(<<"init_reply_handle_error">> = Case, Req) ->
Req1 = cowboy_req:reply(200, [], "http_handler_crashes", Req),
- {ok, Req1, Case};
+ {http, Req1, Case};
case_init(<<"handle_before_reply">> = Case, Req) ->
- {ok, Req, Case};
+ {http, Req, Case};
case_init(<<"handle_after_reply">> = Case, Req) ->
- {ok, Req, Case}.
+ {http, Req, Case}.
handle(_Req, <<"init_reply_handle_error">> = Case) ->
cowboy_error_h:ignore(?MODULE, handle, 2),
@@ -33,6 +34,3 @@ handle(Req, <<"handle_after_reply">> = Case) ->
cowboy_error_h:ignore(?MODULE, handle, 2),
_ = cowboy_req:reply(200, [], "http_handler_crashes", Req),
error(Case).
-
-terminate(_, _, _) ->
- ok.
diff --git a/test/http_SUITE_data/http_handler.erl b/test/http_SUITE_data/http_handler.erl
index 296c918..61c14f8 100644
--- a/test/http_SUITE_data/http_handler.erl
+++ b/test/http_SUITE_data/http_handler.erl
@@ -1,18 +1,14 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(http_handler).
--behaviour(cowboy_http_handler).
--export([init/3, handle/2, terminate/3]).
--record(state, {headers, body}).
+-export([init/2]).
+-export([handle/2]).
-init({_Transport, http}, Req, Opts) ->
- Headers = proplists:get_value(headers, Opts, []),
- Body = proplists:get_value(body, Opts, "http_handler"),
- {ok, Req, #state{headers=Headers, body=Body}}.
+init(Req, Opts) ->
+ {http, Req, Opts}.
-handle(Req, State=#state{headers=Headers, body=Body}) ->
+handle(Req, State) ->
+ Headers = proplists:get_value(headers, State, []),
+ Body = proplists:get_value(body, State, "http_handler"),
{ok, cowboy_req:reply(200, Headers, Body, Req), State}.
-
-terminate(_, _, _) ->
- ok.
diff --git a/test/http_SUITE_data/http_init_shutdown.erl b/test/http_SUITE_data/http_init_shutdown.erl
index 512132e..5aae898 100644
--- a/test/http_SUITE_data/http_init_shutdown.erl
+++ b/test/http_SUITE_data/http_init_shutdown.erl
@@ -1,17 +1,10 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(http_init_shutdown).
--behaviour(cowboy_http_handler).
--export([init/3, handle/2, terminate/3]).
-init({_Transport, http}, Req, _Opts) ->
+-export([init/2]).
+
+init(Req, _) ->
Req2 = cowboy_req:reply(<<"666 Init Shutdown Testing">>,
[{<<"connection">>, <<"close">>}], Req),
{shutdown, Req2, undefined}.
-
-handle(Req, State) ->
- Req2 = cowboy_req:reply(200, [], "Hello world!", Req),
- {ok, Req2, State}.
-
-terminate(_, _, _) ->
- ok.
diff --git a/test/http_SUITE_data/http_loop_stream_recv.erl b/test/http_SUITE_data/http_loop_stream_recv.erl
index 77a339b..8547cc9 100644
--- a/test/http_SUITE_data/http_loop_stream_recv.erl
+++ b/test/http_SUITE_data/http_loop_stream_recv.erl
@@ -1,14 +1,15 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(http_loop_stream_recv).
--export([init/3]).
+
+-export([init/2]).
-export([info/3]).
-export([terminate/3]).
-init({_, http}, Req, _) ->
+init(Req, _) ->
receive after 100 -> ok end,
self() ! stream,
- {loop, Req, undefined, 100}.
+ {long_polling, Req, undefined, 100}.
info(stream, Req, undefined) ->
stream(Req, 1, <<>>).
diff --git a/test/http_SUITE_data/http_multipart.erl b/test/http_SUITE_data/http_multipart.erl
index 43ff6ab..6bd6408 100644
--- a/test/http_SUITE_data/http_multipart.erl
+++ b/test/http_SUITE_data/http_multipart.erl
@@ -1,19 +1,17 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(http_multipart).
--behaviour(cowboy_http_handler).
--export([init/3, handle/2, terminate/3]).
-init({_Transport, http}, Req, []) ->
- {ok, Req, {}}.
+-export([init/2]).
+-export([handle/2]).
+
+init(Req, Opts) ->
+ {http, Req, Opts}.
handle(Req, State) ->
{Result, Req2} = acc_multipart(Req, []),
{ok, cowboy_req:reply(200, [], term_to_binary(Result), Req2), State}.
-terminate(_, _, _) ->
- ok.
-
acc_multipart(Req, Acc) ->
case cowboy_req:part(Req) of
{ok, Headers, Req2} ->
diff --git a/test/http_SUITE_data/http_multipart_stream.erl b/test/http_SUITE_data/http_multipart_stream.erl
index bde7531..43d459a 100644
--- a/test/http_SUITE_data/http_multipart_stream.erl
+++ b/test/http_SUITE_data/http_multipart_stream.erl
@@ -1,19 +1,17 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(http_multipart_stream).
--behaviour(cowboy_http_handler).
--export([init/3, handle/2, terminate/3]).
-init(_, Req, []) ->
- {ok, Req, undefined}.
+-export([init/2]).
+-export([handle/2]).
+
+init(Req, Opts) ->
+ {http, Req, Opts}.
handle(Req, State) ->
Req2 = multipart(Req),
{ok, cowboy_req:reply(200, Req2), State}.
-terminate(_, _, _) ->
- ok.
-
multipart(Req) ->
case cowboy_req:part(Req) of
{ok, [{<<"content-length">>, BinLength}], Req2} ->
diff --git a/test/http_SUITE_data/http_req_attr.erl b/test/http_SUITE_data/http_req_attr.erl
index 2a4a55d..9c5acba 100644
--- a/test/http_SUITE_data/http_req_attr.erl
+++ b/test/http_SUITE_data/http_req_attr.erl
@@ -1,18 +1,19 @@
%% Feel free to use, reuse and abuse the code in this file.
+%% @todo That module was clearly meant to do more than one
+%% thing and yet doesn't.
-module(http_req_attr).
--behaviour(cowboy_http_handler).
--export([init/3, handle/2, terminate/3]).
-init({_, http}, Req, _) ->
- #{attr := Attr} = cowboy_req:match_qs(Req, [attr]),
- {ok, Req, Attr}.
+-export([init/2]).
+-export([handle/2]).
+
+init(Req, Opts) ->
+ {http, Req, Opts}.
-handle(Req, <<"host_and_port">> = Attr) ->
+handle(Req, State) ->
+ #{attr := Attr} = cowboy_req:match_qs(Req, [attr]),
+ <<"host_and_port">> = Attr,
Host = cowboy_req:host(Req),
Port = cowboy_req:port(Req),
Value = [Host, "\n", integer_to_list(Port)],
- {ok, cowboy_req:reply(200, [], Value, Req), Attr}.
-
-terminate(_, _, _) ->
- ok.
+ {ok, cowboy_req:reply(200, [], Value, Req), State}.
diff --git a/test/http_SUITE_data/http_set_resp.erl b/test/http_SUITE_data/http_set_resp.erl
index 628f745..77196a8 100644
--- a/test/http_SUITE_data/http_set_resp.erl
+++ b/test/http_SUITE_data/http_set_resp.erl
@@ -1,10 +1,11 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(http_set_resp).
--behaviour(cowboy_http_handler).
--export([init/3, handle/2, terminate/3]).
-init({_Transport, http}, Req, Opts) ->
+-export([init/2]).
+-export([handle/2]).
+
+init(Req, Opts) ->
Headers = proplists:get_value(headers, Opts, []),
Body = proplists:get_value(body, Opts, <<"http_handler_set_resp">>),
Req2 = lists:foldl(fun({Name, Value}, R) ->
@@ -13,7 +14,7 @@ init({_Transport, http}, Req, Opts) ->
Req3 = cowboy_req:set_resp_body(Body, Req2),
Req4 = cowboy_req:set_resp_header(<<"x-cowboy-test">>, <<"ok">>, Req3),
Req5 = cowboy_req:set_resp_cookie(<<"cake">>, <<"lie">>, [], Req4),
- {ok, Req5, undefined}.
+ {http, Req5, undefined}.
handle(Req, State) ->
case cowboy_req:has_resp_header(<<"x-cowboy-test">>, Req) of
@@ -26,6 +27,3 @@ handle(Req, State) ->
{ok, cowboy_req:reply(200, Req), State}
end
end.
-
-terminate(_, _, _) ->
- ok.
diff --git a/test/http_SUITE_data/http_stream_body.erl b/test/http_SUITE_data/http_stream_body.erl
index 9be79a1..29569cd 100644
--- a/test/http_SUITE_data/http_stream_body.erl
+++ b/test/http_SUITE_data/http_stream_body.erl
@@ -1,18 +1,16 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(http_stream_body).
--behaviour(cowboy_http_handler).
--export([init/3, handle/2, terminate/3]).
--record(state, {headers, body, reply}).
+-export([init/2]).
+-export([handle/2]).
-init({_Transport, http}, Req, Opts) ->
- Headers = proplists:get_value(headers, Opts, []),
- Body = proplists:get_value(body, Opts, "http_handler_stream_body"),
- Reply = proplists:get_value(reply, Opts),
- {ok, Req, #state{headers=Headers, body=Body, reply=Reply}}.
+init(Req, Opts) ->
+ {http, Req, Opts}.
-handle(Req, State=#state{headers=_Headers, body=Body, reply=Reply}) ->
+handle(Req, State) ->
+ Body = proplists:get_value(body, State, "http_handler_stream_body"),
+ Reply = proplists:get_value(reply, State),
SFun = fun(Socket, Transport) -> Transport:send(Socket, Body) end,
Req2 = case Reply of
set_resp ->
@@ -26,6 +24,3 @@ handle(Req, State=#state{headers=_Headers, body=Body, reply=Reply}) ->
cowboy_req:set_resp_body_fun(chunked, SFun2, Req)
end,
{ok, cowboy_req:reply(200, Req2), State}.
-
-terminate(_, _, _) ->
- ok.
diff --git a/test/http_SUITE_data/http_streamed.erl b/test/http_SUITE_data/http_streamed.erl
index 5f90077..ba710f1 100644
--- a/test/http_SUITE_data/http_streamed.erl
+++ b/test/http_SUITE_data/http_streamed.erl
@@ -1,11 +1,12 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(http_streamed).
--behaviour(cowboy_http_handler).
--export([init/3, handle/2, terminate/3]).
-init({_Transport, http}, Req, _Opts) ->
- {ok, Req, undefined}.
+-export([init/2]).
+-export([handle/2]).
+
+init(Req, Opts) ->
+ {http, Req, Opts}.
handle(Req, State) ->
Req2 = cowboy_req:set([{resp_state, waiting_stream}], Req),
@@ -15,6 +16,3 @@ handle(Req, State) ->
timer:sleep(100),
cowboy_req:chunk("works fine!", Req3),
{ok, Req3, State}.
-
-terminate(_, _, _) ->
- ok.
diff --git a/test/http_SUITE_data/rest_empty_resource.erl b/test/http_SUITE_data/rest_empty_resource.erl
index 7e7c00a..97fc26f 100644
--- a/test/http_SUITE_data/rest_empty_resource.erl
+++ b/test/http_SUITE_data/rest_empty_resource.erl
@@ -1,5 +1,6 @@
-module(rest_empty_resource).
--export([init/3]).
-init(_Transport, _Req, _Opts) ->
- {upgrade, protocol, cowboy_rest}.
+-export([init/2]).
+
+init(Req, Opts) ->
+ {rest, Req, Opts}.
diff --git a/test/http_SUITE_data/rest_expires.erl b/test/http_SUITE_data/rest_expires.erl
index 4209041..e71b107 100644
--- a/test/http_SUITE_data/rest_expires.erl
+++ b/test/http_SUITE_data/rest_expires.erl
@@ -1,13 +1,13 @@
-module(rest_expires).
--export([init/3]).
+-export([init/2]).
-export([content_types_provided/2]).
-export([get_text_plain/2]).
-export([expires/2]).
-export([last_modified/2]).
-init(_Transport, _Req, _Opts) ->
- {upgrade, protocol, cowboy_rest}.
+init(Req, Opts) ->
+ {rest, Req, Opts}.
content_types_provided(Req, State) ->
{[{{<<"text">>, <<"plain">>, []}, get_text_plain}], Req, State}.
diff --git a/test/http_SUITE_data/rest_expires_binary.erl b/test/http_SUITE_data/rest_expires_binary.erl
index 4cbd001..84b0675 100644
--- a/test/http_SUITE_data/rest_expires_binary.erl
+++ b/test/http_SUITE_data/rest_expires_binary.erl
@@ -1,12 +1,12 @@
-module(rest_expires_binary).
--export([init/3]).
+-export([init/2]).
-export([content_types_provided/2]).
-export([get_text_plain/2]).
-export([expires/2]).
-init(_Transport, _Req, _Opts) ->
- {upgrade, protocol, cowboy_rest}.
+init(Req, Opts) ->
+ {rest, Req, Opts}.
content_types_provided(Req, State) ->
{[{{<<"text">>, <<"plain">>, []}, get_text_plain}], Req, State}.
diff --git a/test/http_SUITE_data/rest_forbidden_resource.erl b/test/http_SUITE_data/rest_forbidden_resource.erl
index d055193..1e6d99f 100644
--- a/test/http_SUITE_data/rest_forbidden_resource.erl
+++ b/test/http_SUITE_data/rest_forbidden_resource.erl
@@ -1,13 +1,15 @@
-module(rest_forbidden_resource).
--export([init/3, rest_init/2, allowed_methods/2, forbidden/2,
- content_types_provided/2, content_types_accepted/2,
- to_text/2, from_text/2]).
-init(_Transport, _Req, _Opts) ->
- {upgrade, protocol, cowboy_rest}.
+-export([init/2]).
+-export([allowed_methods/2]).
+-export([forbidden/2]).
+-export([content_types_provided/2]).
+-export([content_types_accepted/2]).
+-export([to_text/2]).
+-export([from_text/2]).
-rest_init(Req, [Forbidden]) ->
- {ok, Req, Forbidden}.
+init(Req, [Forbidden]) ->
+ {rest, Req, Forbidden}.
allowed_methods(Req, State) ->
{[<<"GET">>, <<"HEAD">>, <<"POST">>], Req, State}.
diff --git a/test/http_SUITE_data/rest_missing_callbacks.erl b/test/http_SUITE_data/rest_missing_callbacks.erl
index 94bfbbd..fec308a 100644
--- a/test/http_SUITE_data/rest_missing_callbacks.erl
+++ b/test/http_SUITE_data/rest_missing_callbacks.erl
@@ -1,11 +1,12 @@
-module(rest_missing_callbacks).
--export([init/3]).
+
+-export([init/2]).
-export([allowed_methods/2]).
-export([content_types_accepted/2]).
-export([content_types_provided/2]).
-init(_Transport, _Req, _Opts) ->
- {upgrade, protocol, cowboy_rest}.
+init(Req, Opts) ->
+ {rest, Req, Opts}.
allowed_methods(Req, State) ->
{[<<"GET">>, <<"PUT">>], Req, State}.
diff --git a/test/http_SUITE_data/rest_nodelete_resource.erl b/test/http_SUITE_data/rest_nodelete_resource.erl
index 9f9670c..e8123db 100644
--- a/test/http_SUITE_data/rest_nodelete_resource.erl
+++ b/test/http_SUITE_data/rest_nodelete_resource.erl
@@ -1,17 +1,18 @@
-module(rest_nodelete_resource).
--export([init/3, allowed_methods/2, content_types_provided/2,
- get_text_plain/2]).
-init(_Transport, _Req, _Opts) ->
- {upgrade, protocol, cowboy_rest}.
+-export([init/2]).
+-export([allowed_methods/2]).
+-export([content_types_provided/2]).
+-export([get_text_plain/2]).
+
+init(Req, Opts) ->
+ {rest, Req, Opts}.
allowed_methods(Req, State) ->
{[<<"GET">>, <<"HEAD">>, <<"DELETE">>], Req, State}.
-
content_types_provided(Req, State) ->
{[{{<<"text">>, <<"plain">>, []}, get_text_plain}], Req, State}.
get_text_plain(Req, State) ->
{<<"This is REST!">>, Req, State}.
-
diff --git a/test/http_SUITE_data/rest_param_all.erl b/test/http_SUITE_data/rest_param_all.erl
index 22daac7..54950eb 100644
--- a/test/http_SUITE_data/rest_param_all.erl
+++ b/test/http_SUITE_data/rest_param_all.erl
@@ -1,14 +1,14 @@
-module(rest_param_all).
--export([init/3]).
+-export([init/2]).
-export([allowed_methods/2]).
-export([content_types_provided/2]).
-export([get_text_plain/2]).
-export([content_types_accepted/2]).
-export([put_text_plain/2]).
-init(_Transport, _Req, _Opts) ->
- {upgrade, protocol, cowboy_rest}.
+init(Req, Opts) ->
+ {rest, Req, Opts}.
allowed_methods(Req, State) ->
{[<<"GET">>, <<"PUT">>], Req, State}.
diff --git a/test/http_SUITE_data/rest_patch_resource.erl b/test/http_SUITE_data/rest_patch_resource.erl
index 7b9b76e..4b81648 100644
--- a/test/http_SUITE_data/rest_patch_resource.erl
+++ b/test/http_SUITE_data/rest_patch_resource.erl
@@ -1,9 +1,14 @@
-module(rest_patch_resource).
--export([init/3, allowed_methods/2, content_types_provided/2, get_text_plain/2,
- content_types_accepted/2, patch_text_plain/2]).
-init(_Transport, _Req, _Opts) ->
- {upgrade, protocol, cowboy_rest}.
+-export([init/2]).
+-export([allowed_methods/2]).
+-export([content_types_provided/2]).
+-export([get_text_plain/2]).
+-export([content_types_accepted/2]).
+-export([patch_text_plain/2]).
+
+init(Req, Opts) ->
+ {rest, Req, Opts}.
allowed_methods(Req, State) ->
{[<<"HEAD">>, <<"GET">>, <<"PATCH">>], Req, State}.
diff --git a/test/http_SUITE_data/rest_post_charset_resource.erl b/test/http_SUITE_data/rest_post_charset_resource.erl
index 9ccfa61..7b7c49c 100644
--- a/test/http_SUITE_data/rest_post_charset_resource.erl
+++ b/test/http_SUITE_data/rest_post_charset_resource.erl
@@ -1,8 +1,12 @@
-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}.
+-export([init/2]).
+-export([allowed_methods/2]).
+-export([content_types_accepted/2]).
+-export([from_text/2]).
+
+init(Req, Opts) ->
+ {rest, Req, Opts}.
allowed_methods(Req, State) ->
{[<<"POST">>], Req, State}.
diff --git a/test/http_SUITE_data/rest_postonly_resource.erl b/test/http_SUITE_data/rest_postonly_resource.erl
index 4f725c9..9b14b24 100644
--- a/test/http_SUITE_data/rest_postonly_resource.erl
+++ b/test/http_SUITE_data/rest_postonly_resource.erl
@@ -1,8 +1,12 @@
-module(rest_postonly_resource).
--export([init/3, allowed_methods/2, content_types_accepted/2, from_text/2]).
-init(_Transport, _Req, _Opts) ->
- {upgrade, protocol, cowboy_rest}.
+-export([init/2]).
+-export([allowed_methods/2]).
+-export([content_types_accepted/2]).
+-export([from_text/2]).
+
+init(Req, Opts) ->
+ {rest, Req, Opts}.
allowed_methods(Req, State) ->
{[<<"POST">>], Req, State}.
diff --git a/test/http_SUITE_data/rest_resource_etags.erl b/test/http_SUITE_data/rest_resource_etags.erl
index fb266d1..9509d0a 100644
--- a/test/http_SUITE_data/rest_resource_etags.erl
+++ b/test/http_SUITE_data/rest_resource_etags.erl
@@ -1,8 +1,12 @@
-module(rest_resource_etags).
--export([init/3, generate_etag/2, content_types_provided/2, get_text_plain/2]).
-init(_Transport, _Req, _Opts) ->
- {upgrade, protocol, cowboy_rest}.
+-export([init/2]).
+-export([generate_etag/2]).
+-export([content_types_provided/2]).
+-export([get_text_plain/2]).
+
+init(Req, Opts) ->
+ {rest, Req, Opts}.
generate_etag(Req, State) ->
#{type := Type} = cowboy_req:match_qs(Req, [type]),
diff --git a/test/http_SUITE_data/rest_simple_resource.erl b/test/http_SUITE_data/rest_simple_resource.erl
index 97145dd..3d2787f 100644
--- a/test/http_SUITE_data/rest_simple_resource.erl
+++ b/test/http_SUITE_data/rest_simple_resource.erl
@@ -1,12 +1,14 @@
-module(rest_simple_resource).
--export([init/3, content_types_provided/2, get_text_plain/2]).
-init(_Transport, _Req, _Opts) ->
- {upgrade, protocol, cowboy_rest}.
+-export([init/2]).
+-export([content_types_provided/2]).
+-export([get_text_plain/2]).
+
+init(Req, Opts) ->
+ {rest, Req, Opts}.
content_types_provided(Req, State) ->
{[{{<<"text">>, <<"plain">>, []}, get_text_plain}], Req, State}.
get_text_plain(Req, State) ->
{<<"This is REST!">>, Req, State}.
-
diff --git a/test/ws_SUITE.erl b/test/ws_SUITE.erl
index 77c82f6..e341e10 100644
--- a/test/ws_SUITE.erl
+++ b/test/ws_SUITE.erl
@@ -80,9 +80,7 @@ init_dispatch() ->
{text, <<"won't be received">>}]}
]},
{"/ws_timeout_hibernate", ws_timeout_hibernate, []},
- {"/ws_timeout_cancel", ws_timeout_cancel, []},
- {"/ws_upgrade_with_opts", ws_upgrade_with_opts,
- <<"failure">>}
+ {"/ws_timeout_cancel", ws_timeout_cancel, []}
]}
]).
@@ -653,35 +651,6 @@ ws_timeout_reset(Config) ->
{error, closed} = gen_tcp:recv(Socket, 0, 6000),
ok.
-ws_upgrade_with_opts(Config) ->
- {port, Port} = lists:keyfind(port, 1, Config),
- {ok, Socket} = gen_tcp:connect("localhost", Port,
- [binary, {active, false}, {packet, raw}]),
- ok = gen_tcp:send(Socket, [
- "GET /ws_upgrade_with_opts HTTP/1.1\r\n"
- "Host: localhost\r\n"
- "Connection: Upgrade\r\n"
- "Upgrade: websocket\r\n"
- "Sec-WebSocket-Origin: http://localhost\r\n"
- "Sec-WebSocket-Version: 8\r\n"
- "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==\r\n"
- "\r\n"]),
- {ok, Handshake} = gen_tcp:recv(Socket, 0, 6000),
- {ok, {http_response, {1, 1}, 101, "Switching Protocols"}, Rest}
- = erlang:decode_packet(http, Handshake, []),
- [Headers, <<>>] = do_decode_headers(
- erlang:decode_packet(httph, Rest, []), []),
- {'Connection', "Upgrade"} = lists:keyfind('Connection', 1, Headers),
- {'Upgrade', "websocket"} = lists:keyfind('Upgrade', 1, Headers),
- {"sec-websocket-accept", "s3pPLMBiTxaQ9kYGzzhZRbK+xOo="}
- = lists:keyfind("sec-websocket-accept", 1, Headers),
- {ok, Response} = gen_tcp:recv(Socket, 9, 6000),
- << 1:1, 0:3, 1:4, 0:1, 7:7, "success" >> = Response,
- ok = gen_tcp:send(Socket, << 1:1, 0:3, 8:4, 1:1, 0:7, 0:32 >>), %% close
- {ok, << 1:1, 0:3, 8:4, 0:8 >>} = gen_tcp:recv(Socket, 0, 6000),
- {error, closed} = gen_tcp:recv(Socket, 0, 6000),
- ok.
-
%% Internal.
do_decode_headers({ok, http_eoh, Rest}, Acc) ->
diff --git a/test/ws_SUITE_data/ws_echo.erl b/test/ws_SUITE_data/ws_echo.erl
index d4a5f07..c4ab406 100644
--- a/test/ws_SUITE_data/ws_echo.erl
+++ b/test/ws_SUITE_data/ws_echo.erl
@@ -1,17 +1,13 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(ws_echo).
--behaviour(cowboy_websocket_handler).
--export([init/3]).
--export([websocket_init/3, websocket_handle/3,
- websocket_info/3, websocket_terminate/3]).
-init(_Any, _Req, _Opts) ->
- {upgrade, protocol, cowboy_websocket}.
+-export([init/2]).
+-export([websocket_handle/3]).
+-export([websocket_info/3]).
-websocket_init(_TransportName, Req, _Opts) ->
- Req2 = cowboy_req:compact(Req),
- {ok, Req2, undefined}.
+init(Req, _) ->
+ {ws, Req, undefined}.
websocket_handle({text, Data}, Req, State) ->
{reply, {text, Data}, Req, State};
@@ -22,6 +18,3 @@ websocket_handle(_Frame, Req, State) ->
websocket_info(_Info, Req, State) ->
{ok, Req, State}.
-
-websocket_terminate(_Reason, _Req, _State) ->
- ok.
diff --git a/test/ws_SUITE_data/ws_echo_timer.erl b/test/ws_SUITE_data/ws_echo_timer.erl
index 666a26d..199f02c 100644
--- a/test/ws_SUITE_data/ws_echo_timer.erl
+++ b/test/ws_SUITE_data/ws_echo_timer.erl
@@ -1,18 +1,14 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(ws_echo_timer).
--behaviour(cowboy_websocket_handler).
--export([init/3]).
--export([websocket_init/3, websocket_handle/3,
- websocket_info/3, websocket_terminate/3]).
-init(_Any, _Req, _Opts) ->
- {upgrade, protocol, cowboy_websocket}.
+-export([init/2]).
+-export([websocket_handle/3]).
+-export([websocket_info/3]).
-websocket_init(_TransportName, Req, _Opts) ->
+init(Req, _) ->
erlang:start_timer(1000, self(), <<"websocket_init">>),
- Req2 = cowboy_req:compact(Req),
- {ok, Req2, undefined}.
+ {ws, Req, undefined}.
websocket_handle({text, Data}, Req, State) ->
{reply, {text, Data}, Req, State};
@@ -26,6 +22,3 @@ websocket_info({timeout, _Ref, Msg}, Req, State) ->
{reply, {text, Msg}, Req, State};
websocket_info(_Info, Req, State) ->
{ok, Req, State}.
-
-websocket_terminate(_Reason, _Req, _State) ->
- ok.
diff --git a/test/ws_SUITE_data/ws_init_shutdown.erl b/test/ws_SUITE_data/ws_init_shutdown.erl
index 30bf66e..68f96f0 100644
--- a/test/ws_SUITE_data/ws_init_shutdown.erl
+++ b/test/ws_SUITE_data/ws_init_shutdown.erl
@@ -1,22 +1,8 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(ws_init_shutdown).
--behaviour(cowboy_websocket_handler).
--export([init/3]).
--export([websocket_init/3, websocket_handle/3,
- websocket_info/3, websocket_terminate/3]).
-init(_Any, _Req, _Opts) ->
- {upgrade, protocol, cowboy_websocket}.
+-export([init/2]).
-websocket_init(_TransportName, Req, _Opts) ->
- {shutdown, cowboy_req:reply(403, Req)}.
-
-websocket_handle(_Frame, _Req, _State) ->
- exit(badarg).
-
-websocket_info(_Info, _Req, _State) ->
- exit(badarg).
-
-websocket_terminate(_Reason, _Req, _State) ->
- exit(badarg).
+init(Req, _) ->
+ {shutdown, cowboy_req:reply(403, Req), undefined}.
diff --git a/test/ws_SUITE_data/ws_send_many.erl b/test/ws_SUITE_data/ws_send_many.erl
index 2ed4772..2da82c3 100644
--- a/test/ws_SUITE_data/ws_send_many.erl
+++ b/test/ws_SUITE_data/ws_send_many.erl
@@ -1,27 +1,17 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(ws_send_many).
--behaviour(cowboy_websocket_handler).
--export([init/3]).
--export([websocket_init/3]).
+-export([init/2]).
-export([websocket_handle/3]).
-export([websocket_info/3]).
--export([websocket_terminate/3]).
-init(_Any, _Req, _Opts) ->
- {upgrade, protocol, cowboy_websocket}.
-
-websocket_init(_TransportName, Req, Sequence) ->
- Req2 = cowboy_req:compact(Req),
+init(Req, Opts) ->
erlang:send_after(10, self(), send_many),
- {ok, Req2, Sequence}.
+ {ws, Req, Opts}.
websocket_handle(_Frame, Req, State) ->
{ok, Req, State}.
websocket_info(send_many, Req, State = [{sequence, Sequence}]) ->
{reply, Sequence, Req, State}.
-
-websocket_terminate(_Reason, _Req, _State) ->
- ok.
diff --git a/test/ws_SUITE_data/ws_timeout_cancel.erl b/test/ws_SUITE_data/ws_timeout_cancel.erl
index 9c7b72b..6fcfc43 100644
--- a/test/ws_SUITE_data/ws_timeout_cancel.erl
+++ b/test/ws_SUITE_data/ws_timeout_cancel.erl
@@ -1,17 +1,14 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(ws_timeout_cancel).
--behaviour(cowboy_websocket_handler).
--export([init/3]).
--export([websocket_init/3, websocket_handle/3,
- websocket_info/3, websocket_terminate/3]).
-init(_Any, _Req, _Opts) ->
- {upgrade, protocol, cowboy_websocket}.
+-export([init/2]).
+-export([websocket_handle/3]).
+-export([websocket_info/3]).
-websocket_init(_TransportName, Req, _Opts) ->
+init(Req, _) ->
erlang:start_timer(500, self(), should_not_cancel_timer),
- {ok, Req, undefined, 1000}.
+ {ws, Req, undefined, 1000}.
websocket_handle({text, Data}, Req, State) ->
{reply, {text, Data}, Req, State};
@@ -21,6 +18,3 @@ websocket_handle({binary, Data}, Req, State) ->
websocket_info(_Info, Req, State) ->
erlang:start_timer(500, self(), should_not_cancel_timer),
{ok, Req, State}.
-
-websocket_terminate(_Reason, _Req, _State) ->
- ok.
diff --git a/test/ws_SUITE_data/ws_timeout_hibernate.erl b/test/ws_SUITE_data/ws_timeout_hibernate.erl
index cc91e26..da901d7 100644
--- a/test/ws_SUITE_data/ws_timeout_hibernate.erl
+++ b/test/ws_SUITE_data/ws_timeout_hibernate.erl
@@ -1,22 +1,16 @@
%% Feel free to use, reuse and abuse the code in this file.
-module(ws_timeout_hibernate).
--behaviour(cowboy_websocket_handler).
--export([init/3]).
--export([websocket_init/3, websocket_handle/3,
- websocket_info/3, websocket_terminate/3]).
-init(_Any, _Req, _Opts) ->
- {upgrade, protocol, cowboy_websocket}.
+-export([init/2]).
+-export([websocket_handle/3]).
+-export([websocket_info/3]).
-websocket_init(_TransportName, Req, _Opts) ->
- {ok, Req, undefined, 1000, hibernate}.
+init(Req, _) ->
+ {ws, Req, undefined, 1000, hibernate}.
websocket_handle(_Frame, Req, State) ->
{ok, Req, State, hibernate}.
websocket_info(_Info, Req, State) ->
{ok, Req, State, hibernate}.
-
-websocket_terminate(_Reason, _Req, _State) ->
- ok.
diff --git a/test/ws_SUITE_data/ws_upgrade_with_opts.erl b/test/ws_SUITE_data/ws_upgrade_with_opts.erl
deleted file mode 100644
index b4f82fa..0000000
--- a/test/ws_SUITE_data/ws_upgrade_with_opts.erl
+++ /dev/null
@@ -1,28 +0,0 @@
-%% Feel free to use, reuse and abuse the code in this file.
-
--module(ws_upgrade_with_opts).
--behaviour(cowboy_websocket_handler).
-
--export([init/3]).
--export([websocket_init/3]).
--export([websocket_handle/3]).
--export([websocket_info/3]).
--export([websocket_terminate/3]).
-
-init(_Any, Req, _Opts) ->
- {upgrade, protocol, cowboy_websocket, Req, <<"success">>}.
-
-websocket_init(_TransportName, Req, Response) ->
- Req2 = cowboy_req:compact(Req),
- erlang:send_after(10, self(), send_response),
- {ok, Req2, Response}.
-
-websocket_handle(_Frame, Req, State) ->
- {ok, Req, State}.
-
-websocket_info(send_response, Req, State = Response)
- when is_binary(Response) ->
- {reply, {text, Response}, Req, State}.
-
-websocket_terminate(_Reason, _Req, _State) ->
- ok.