From 944ba98d07e313c0f99e1034087952463cd6a9bb Mon Sep 17 00:00:00 2001 From: jacekwegr Date: Wed, 11 Jan 2023 09:56:33 +0100 Subject: [PATCH 1/2] Fix typo in documentation --- doc/tutorials/push-notifications/MongoosePush-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/tutorials/push-notifications/MongoosePush-setup.md b/doc/tutorials/push-notifications/MongoosePush-setup.md index c2874bbf655..d1dc2ae3de9 100644 --- a/doc/tutorials/push-notifications/MongoosePush-setup.md +++ b/doc/tutorials/push-notifications/MongoosePush-setup.md @@ -27,7 +27,7 @@ And second, you need to add `mod_push_service_mongoosepush` to the `modules` sec ```toml [modules.mod_push_service_mongoosepush] - pool_name = mongoose_push_http + pool_name = "mongoose_push_http" api_version = "v3" ``` From af62463f3cf30b6070ec2fc307e28b2b11da1927 Mon Sep 17 00:00:00 2001 From: jacekwegr Date: Tue, 10 Jan 2023 15:42:16 +0100 Subject: [PATCH 2/2] Disco test for push notifications Previously, disco was tested only for one type of host; now it's tested for real and virtual hosts. --- big_tests/tests/push_SUITE.erl | 54 +--------------------- big_tests/tests/push_integration_SUITE.erl | 51 ++++++++++++++++++-- 2 files changed, 48 insertions(+), 57 deletions(-) diff --git a/big_tests/tests/push_SUITE.erl b/big_tests/tests/push_SUITE.erl index 957ace911a6..e2854e9c190 100644 --- a/big_tests/tests/push_SUITE.erl +++ b/big_tests/tests/push_SUITE.erl @@ -30,7 +30,6 @@ all() -> [ - {group, disco}, {group, toggling}, {group, pubsub_ful}, {group, pubsub_less} @@ -38,10 +37,6 @@ all() -> groups() -> G = [ - {disco, [], [ - push_notifications_listed_disco_when_available, - push_notifications_not_listed_disco_when_not_available - ]}, {toggling, [parallel], [ enable_should_fail_with_missing_attributes, enable_should_fail_with_invalid_attributes, @@ -99,8 +94,6 @@ end_per_suite(Config) -> escalus_fresh:clean(), escalus:end_per_suite(Config). -init_per_group(disco, Config) -> - escalus:create_users(Config, escalus:get_users([alice])); init_per_group(pubsub_ful, Config) -> [{pubsub_host, real} | Config]; init_per_group(pubsub_less, Config) -> @@ -117,23 +110,12 @@ init_per_group(GroupName, Config0) -> dynamic_modules:ensure_modules(HostType, required_modules(GroupName)), Config. -end_per_group(disco, Config) -> - escalus:delete_users(Config), - Config; end_per_group(ComplexGroup, Config) when ComplexGroup == pubsub_ful; ComplexGroup == pubsub_less -> Config; end_per_group(_, Config) -> - dynamic_modules:restore_modules(Config), - Config. + dynamic_modules:restore_modules(Config). -init_per_testcase(CaseName = push_notifications_listed_disco_when_available, Config1) -> - HostType = host_type(), - Config2 = dynamic_modules:save_modules(HostType, Config1), - dynamic_modules:ensure_modules(HostType, required_modules(CaseName)), - escalus:init_per_testcase(CaseName, Config2); -init_per_testcase(CaseName = push_notifications_not_listed_disco_when_not_available, Config) -> - escalus:init_per_testcase(CaseName, Config); init_per_testcase(CaseName, Config0) -> Config1 = escalus_fresh:create_users(Config0, [{bob, 1}, {alice, 1}, {kate, 1}]), Config2 = add_pubsub_jid([{case_name, CaseName} | Config1]), @@ -147,11 +129,6 @@ init_per_testcase(CaseName, Config0) -> escalus:init_per_testcase(CaseName, Config). -end_per_testcase(CaseName = push_notifications_listed_disco_when_available, Config) -> - dynamic_modules:restore_modules(Config), - escalus:end_per_testcase(CaseName, Config); -end_per_testcase(CaseName = push_notifications_not_listed_disco_when_not_available, Config) -> - escalus:end_per_testcase(CaseName, Config); end_per_testcase(CaseName, Config) -> case ?config(pubsub_host, Config) of virtual -> @@ -178,35 +155,6 @@ muc_light_module() -> mod_config(mod_muc_light, #{backend => mongoose_helper:mnesia_or_rdbms_backend(), rooms_in_rosters => true})}. -%%-------------------------------------------------------------------- -%% GROUP disco -%%-------------------------------------------------------------------- - -push_notifications_listed_disco_when_available(Config) -> - escalus:story( - Config, [{alice, 1}], - fun(Alice) -> - Server = escalus_client:server(Alice), - escalus:send(Alice, escalus_stanza:disco_info(Server)), - Stanza = escalus:wait_for_stanza(Alice), - escalus:assert(is_iq_result, Stanza), - escalus:assert(has_feature, [push_helper:ns_push()], Stanza), - ok - end). - -push_notifications_not_listed_disco_when_not_available(Config) -> - escalus:story( - Config, [{alice, 1}], - fun(Alice) -> - Server = escalus_client:server(Alice), - escalus:send(Alice, escalus_stanza:disco_info(Server)), - Stanza = escalus:wait_for_stanza(Alice), - escalus:assert(is_iq_result, Stanza), - Pred = fun(Feature, Stanza0) -> not escalus_pred:has_feature(Feature, Stanza0) end, - escalus:assert(Pred, [push_helper:ns_push()], Stanza), - ok - end). - %%-------------------------------------------------------------------- %% GROUP toggling %%-------------------------------------------------------------------- diff --git a/big_tests/tests/push_integration_SUITE.erl b/big_tests/tests/push_integration_SUITE.erl index 6618d1101d5..75479a1c0f1 100644 --- a/big_tests/tests/push_integration_SUITE.erl +++ b/big_tests/tests/push_integration_SUITE.erl @@ -45,7 +45,8 @@ basic_groups() -> {group, failure_cases_v3}, {group, failure_cases_v2}, {group, integration_with_sm_and_offline_storage}, - {group, enhanced_integration_with_sm} + {group, enhanced_integration_with_sm}, + {group, disco} ]. groups() -> @@ -105,7 +106,12 @@ groups() -> inbox_msg_reset_unread_count_fcm ]}, {failure_cases_v3, [parallel], failure_cases()}, - {failure_cases_v2, [parallel], failure_cases()} + {failure_cases_v2, [parallel], failure_cases()}, + {disco, [], + [ + push_notifications_listed_disco_when_available, + push_notifications_not_listed_disco_when_not_available + ]} ], G. @@ -143,6 +149,8 @@ init_per_group(pubsub_less, Config) -> [{pubsub_host, virtual} | Config]; init_per_group(pubsub_ful, Config) -> [{pubsub_host, real} | Config]; +init_per_group(disco, Config) -> + escalus:create_users(Config, escalus:get_users([alice])); init_per_group(G, Config) when G =:= pm_notifications_with_inbox; G =:= groupchat_notifications_with_inbox; G =:= integration_with_sm_and_offline_storage -> @@ -164,13 +172,20 @@ init_per_group(G, Config) -> end, C. +end_per_group(disco, Config) -> + escalus:delete_users(Config); end_per_group(_, Config) -> - dynamic_modules:restore_modules(Config), - Config. + dynamic_modules:restore_modules(Config). +init_per_testcase(CaseName = push_notifications_listed_disco_when_available, Config) -> + init_modules(disco, Config), + escalus:init_per_testcase(CaseName, Config); init_per_testcase(CaseName, Config) -> escalus:init_per_testcase(CaseName, Config). +end_per_testcase(CaseName = push_notifications_listed_disco_when_available, Config) -> + dynamic_modules:restore_modules(Config), + escalus:end_per_testcase(CaseName, Config); end_per_testcase(CaseName, Config) -> escalus:end_per_testcase(CaseName, Config). @@ -827,6 +842,34 @@ no_push_notification_for_internal_mongoose_push_error(Config) -> end). +%%-------------------------------------------------------------------- +%% GROUP disco +%%-------------------------------------------------------------------- + +push_notifications_listed_disco_when_available(Config) -> + escalus:story( + Config, [{alice, 1}], + fun(Alice) -> + Server = escalus_client:server(Alice), + escalus:send(Alice, escalus_stanza:disco_info(Server)), + Stanza = escalus:wait_for_stanza(Alice), + escalus:assert(is_iq_result, Stanza), + escalus:assert(has_feature, [push_helper:ns_push()], Stanza), + ok + end). + +push_notifications_not_listed_disco_when_not_available(Config) -> + escalus:story( + Config, [{alice, 1}], + fun(Alice) -> + Server = escalus_client:server(Alice), + escalus:send(Alice, escalus_stanza:disco_info(Server)), + Stanza = escalus:wait_for_stanza(Alice), + escalus:assert(is_iq_result, Stanza), + Pred = fun(Feature, Stanza0) -> not escalus_pred:has_feature(Feature, Stanza0) end, + escalus:assert(Pred, [push_helper:ns_push()], Stanza), + ok + end). %%-------------------------------------------------------------------- %% Test helpers