diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/misc_SUITE.erl | 38 | ||||
-rw-r--r-- | test/old_http_SUITE.erl | 31 |
2 files changed, 27 insertions, 42 deletions
diff --git a/test/misc_SUITE.erl b/test/misc_SUITE.erl index f61e1e4..6f44774 100644 --- a/test/misc_SUITE.erl +++ b/test/misc_SUITE.erl @@ -18,25 +18,31 @@ -import(ct_helper, [config/2]). -import(ct_helper, [doc/1]). +-import(ct_helper, [name/0]). -import(cowboy_test, [gun_open/1]). all() -> - [{group, no_env}|cowboy_test:common_all()]. + [{group, app}, {group, set_env}|cowboy_test:common_all()]. groups() -> - Common = ct_helper:all(?MODULE) -- [restart_gracefully, set_env_missing], + Common = ct_helper:all(?MODULE) + -- [restart_gracefully, set_env, set_env_missing], [ {app, [], [restart_gracefully]}, - {no_env, [], [set_env_missing]} + {set_env, [parallel], [set_env, set_env_missing]} |cowboy_test:common_groups(Common)]. -init_per_group(app, Config) -> - cowboy_test:init_common_groups(http, Config, ?MODULE); -init_per_group(Name=no_env, Config) -> - cowboy_test:init_http(Name, #{}, Config); +init_per_group(Name=app, Config) -> + cowboy_test:init_http(Name, #{ + env => #{dispatch => init_dispatch(Config)} + }, Config); +init_per_group(set_env, Config) -> + Config; init_per_group(Name, Config) -> cowboy_test:init_common_groups(Name, Config, ?MODULE). +end_per_group(set_env, _) -> + ok; end_per_group(Name, _) -> cowboy:stop_listener(Name). @@ -72,26 +78,28 @@ router_invalid_path(Config) -> {response, _, 400, _} = gun:await(ConnPid, Ref), ok. -set_env(Config) -> +set_env(Config0) -> doc("Live replace a middleware environment value."), + Config = cowboy_test:init_http(name(), #{ + env => #{dispatch => []} + }, Config0), ConnPid1 = gun_open(Config), Ref1 = gun:get(ConnPid1, "/"), - {response, _, 200, _} = gun:await(ConnPid1, Ref1), - Listener = proplists:get_value(name, config(tc_group_properties, Config)), - cowboy:set_env(Listener, dispatch, []), + {response, _, 400, _} = gun:await(ConnPid1, Ref1), + cowboy:set_env(name(), dispatch, init_dispatch(Config)), %% Only new connections get the updated environment. ConnPid2 = gun_open(Config), Ref2 = gun:get(ConnPid2, "/"), - {response, _, 400, _} = gun:await(ConnPid2, Ref2), + {response, _, 200, _} = gun:await(ConnPid2, Ref2), ok. -set_env_missing(Config) -> +set_env_missing(Config0) -> doc("Live replace a middleware environment value when env was not provided."), + Config = cowboy_test:init_http(name(), #{}, Config0), ConnPid1 = gun_open(Config), Ref1 = gun:get(ConnPid1, "/"), {response, _, 500, _} = gun:await(ConnPid1, Ref1), - Listener = proplists:get_value(name, config(tc_group_properties, Config)), - cowboy:set_env(Listener, dispatch, []), + cowboy:set_env(name(), dispatch, []), %% Only new connections get the updated environment. ConnPid2 = gun_open(Config), Ref2 = gun:get(ConnPid2, "/"), diff --git a/test/old_http_SUITE.erl b/test/old_http_SUITE.erl index 260a47e..f1b88a4 100644 --- a/test/old_http_SUITE.erl +++ b/test/old_http_SUITE.erl @@ -33,22 +33,16 @@ all() -> {group, http}, {group, https}, {group, http_compress}, - {group, https_compress}, - {group, set_env} + {group, https_compress} ]. groups() -> - Tests = ct_helper:all(?MODULE) -- [ - set_env_dispatch - ], + Tests = ct_helper:all(?MODULE), [ {http, [], Tests}, %% @todo parallel {https, [parallel], Tests}, {http_compress, [parallel], Tests}, - {https_compress, [parallel], Tests}, - {set_env, [], [ - set_env_dispatch - ]} + {https_compress, [parallel], Tests} ]. init_per_group(Name = http, Config) -> @@ -64,13 +58,7 @@ init_per_group(Name = https_compress, Config) -> cowboy_test:init_https(Name, #{ env => #{dispatch => init_dispatch(Config)}, compress => true - }, Config); -init_per_group(set_env, Config) -> - {ok, _} = cowboy:start_clear(set_env, [{port, 0}], #{ - env => #{dispatch => []} - }), - Port = ranch:get_port(set_env), - [{type, tcp}, {protocol, http}, {port, Port}, {opts, []}|Config]. + }, Config). end_per_group(Name, _) -> ok = cowboy:stop_listener(Name). @@ -519,17 +507,6 @@ rest_resource_etags_if_none_match(Config) -> {Ret, Type} end || {Status, ETag, Type} <- Tests]. -set_env_dispatch(Config) -> - ConnPid1 = gun_open(Config), - Ref1 = gun:get(ConnPid1, "/"), - {response, fin, 400, _} = gun:await(ConnPid1, Ref1), - ok = cowboy:set_env(set_env, dispatch, - cowboy_router:compile([{'_', [{"/", http_handler, []}]}])), - ConnPid2 = gun_open(Config), - Ref2 = gun:get(ConnPid2, "/"), - {response, nofin, 200, _} = gun:await(ConnPid2, Ref2), - ok. - set_resp_overwrite(Config) -> ConnPid = gun_open(Config), Ref = gun:get(ConnPid, "/set_resp/overwrite"), |