diff options
| author | Michael Klishin <mklishin@pivotal.io> | 2017-01-04 19:41:45 +0800 |
|---|---|---|
| committer | Michael Klishin <mklishin@pivotal.io> | 2017-01-04 19:41:45 +0800 |
| commit | a2bf05779c508b248a9d53fae79bb83ee353c5dc (patch) | |
| tree | aab4be03d0371ee036a9996cdc0e021e813bbcdb | |
| parent | 833e65ef52fac14664fd82f808aa55f306a0ce72 (diff) | |
| download | rabbitmq-server-git-a2bf05779c508b248a9d53fae79bb83ee353c5dc.tar.gz | |
Initial integration tests for credential validation
| -rw-r--r-- | test/credential_validation_SUITE.erl | 87 |
1 files changed, 76 insertions, 11 deletions
diff --git a/test/credential_validation_SUITE.erl b/test/credential_validation_SUITE.erl index 084aef75c8..c763385c4b 100644 --- a/test/credential_validation_SUITE.erl +++ b/test/credential_validation_SUITE.erl @@ -23,23 +23,64 @@ all() -> [ - basic_unconditionally_accepting_succeeds, - min_length_fails, - min_length_succeeds, - min_length_proper_fails, - min_length_proper_succeeds, - regexp_fails, - regexp_succeeds, - regexp_proper_fails, - regexp_proper_succeeds + {group, unit}, + {group, integration} ]. -init_per_testcase(_, Config) -> +groups() -> + [ + {integration, [], [ + basic_unconditionally_accepting_succeeds, + min_length_fails, + min_length_succeeds, + min_length_proper_fails, + min_length_proper_succeeds, + regexp_fails, + regexp_succeeds, + regexp_proper_fails, + regexp_proper_succeeds + ]}, + {unit, [parallel], [ + min_length_integration_fails + ]} +]. + +suite() -> + [ + {timetrap, {minutes, 4}} + ]. + +init_per_suite(Config) -> + rabbit_ct_helpers:log_environment(), + rabbit_ct_helpers:run_setup_steps(Config). + +end_per_suite(Config) -> + rabbit_ct_helpers:run_teardown_steps(Config). + +init_per_group(integration, Config) -> + rabbit_ct_helpers:set_config(Config, [ + {rmq_nodes_count, 1} + ]); + +init_per_group(unit, Config) -> Config. -end_per_testcase(_, Config) -> +end_per_group(_, Config) -> Config. +init_per_testcase(Testcase, Config) -> + rabbit_ct_helpers:testcase_started(Config, Testcase), + rabbit_ct_helpers:run_steps(Config, + rabbit_ct_broker_helpers:setup_steps() ++ + rabbit_ct_client_helpers:setup_steps()). + +end_per_testcase(Testcase, Config) -> + switch_validator(Config, accept_everything), + Config1 = rabbit_ct_helpers:run_steps(Config, + rabbit_ct_client_helpers:teardown_steps() ++ + rabbit_ct_broker_helpers:teardown_steps()), + rabbit_ct_helpers:testcase_finished(Config1, Testcase). + %% %% Test Cases @@ -109,6 +150,10 @@ regexp_proper_fails(_Config) -> regexp_proper_succeeds(_Config) -> rabbit_ct_proper_helpers:run_proper(fun prop_regexp_passes_validation/0, [], 500). +min_length_integration_fails(Config) -> + switch_validator(Config, min_length), + ?assertMatch({error, _}, add_user(Config, <<"abc">>, <<"ab">>)). + %% %% PropEr %% @@ -157,3 +202,23 @@ regexp_that_requires_length_of_at_least(N) when is_integer(N) -> regexp_that_requires_length_of_at_most(N) when is_integer(N) -> rabbit_misc:format("^[a-zA-Z0-9]{0,~p}", [N]). + +switch_validator(Config, accept_everything) -> + rabbit_ct_broker_helpers:rpc(Config, 0, application, set_env, + [rabbit, credential_validator, + [{validation_backend, rabbit_credential_validator_accept_everything}]]); + +switch_validator(Config, min_length) -> + switch_validator(Config, min_length, 5). + +switch_validator(Config, min_length, MinLength) -> + rabbit_ct_broker_helpers:rpc(Config, 0, application, set_env, + [rabbit, credential_validator, + [{validation_backend, rabbit_credential_validator_min_length}, + {min_length, MinLength}]]). + +add_user(Config, Username, Password) -> + rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_auth_backend_internal, add_user, [Username, Password]). + +delete_user(Config, Username) -> + rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_auth_backend_internal, delete_user, [Username]). |
