diff options
author | Loïc Hoguin <[email protected]> | 2018-09-21 14:04:20 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2018-09-21 15:01:57 +0200 |
commit | f810d8dd6496da713e7c70a5e146120de3695774 (patch) | |
tree | 0572028ff1ea5fdc6d3d4b081d75ebdbb6bf557d /test/ws_handler_SUITE.erl | |
parent | 6e784f1a454c6bdeab839d99d59dac992d430c97 (diff) | |
download | cowboy-f810d8dd6496da713e7c70a5e146120de3695774.tar.gz cowboy-f810d8dd6496da713e7c70a5e146120de3695774.tar.bz2 cowboy-f810d8dd6496da713e7c70a5e146120de3695774.zip |
Add the {active, boolean()} Websocket command
This command is currently not documented. It allows disabling
the reading of incoming data from the socket, and can be used
as a poor man's flow control.
Diffstat (limited to 'test/ws_handler_SUITE.erl')
-rw-r--r-- | test/ws_handler_SUITE.erl | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/test/ws_handler_SUITE.erl b/test/ws_handler_SUITE.erl index 4848847..2caacca 100644 --- a/test/ws_handler_SUITE.erl +++ b/test/ws_handler_SUITE.erl @@ -26,6 +26,7 @@ all() -> [{group, ws}, {group, ws_hibernate}]. +%% @todo Test against HTTP/2 too. groups() -> AllTests = ct_helper:all(?MODULE), [{ws, [parallel], AllTests}, {ws_hibernate, [parallel], AllTests}]. @@ -48,7 +49,8 @@ init_dispatch(Name) -> cowboy_router:compile([{'_', [ {"/init", ws_init_commands_h, RunOrHibernate}, {"/handle", ws_handle_commands_h, RunOrHibernate}, - {"/info", ws_info_commands_h, RunOrHibernate} + {"/info", ws_info_commands_h, RunOrHibernate}, + {"/active", ws_active_commands_h, RunOrHibernate} ]}]). %% Support functions for testing using Gun. @@ -205,3 +207,13 @@ do_many_frames_then_close_frame(Config, Path) -> {ok, {binary, <<"Two frames!">>}} = receive_ws(ConnPid, StreamRef), {ok, close} = receive_ws(ConnPid, StreamRef), gun_down(ConnPid). + +websocket_active_false(Config) -> + doc("The {active, false} command stops receiving data from the socket. " + "The {active, true} command reenables it."), + {ok, ConnPid, StreamRef} = gun_open_ws(Config, "/active", []), + gun:ws_send(ConnPid, {text, <<"Not received until the handler enables active again.">>}), + {error, timeout} = receive_ws(ConnPid, StreamRef), + {ok, {text, <<"Not received until the handler enables active again.">>}} + = receive_ws(ConnPid, StreamRef), + ok. |