diff --git a/deltachat-rpc-client/tests/test_securejoin.py b/deltachat-rpc-client/tests/test_securejoin.py index af0cecfd0..65796db1d 100644 --- a/deltachat-rpc-client/tests/test_securejoin.py +++ b/deltachat-rpc-client/tests/test_securejoin.py @@ -359,3 +359,31 @@ def test_qr_join_chat_with_pending_bobstate_issue4894(acfactory): ev = ac2.wait_for_event() if "added by unrelated SecureJoin" in str(ev): return + + +def test_qr_new_group_unblocked(acfactory): + """Regression test for a bug introduced in core v1.113.0. + ac2 scans a verified group QR code created by ac1. + This results in creation of a blocked 1:1 chat with ac1 on ac2, + but ac1 contact is not blocked on ac2. + Then ac1 creates a group, adds ac2 there and promotes it by sending a message. + ac2 should receive a message and create a contact request for the group. + Due to a bug previously ac2 created a blocked group. + """ + + ac1, ac2 = acfactory.get_online_accounts(2) + ac1_chat = ac1.create_group("Group for joining", protect=True) + qr_code, _svg = ac1_chat.get_qr_code() + ac2.secure_join(qr_code) + + ac1.wait_for_securejoin_inviter_success() + + ac1_new_chat = ac1.create_group("Another group") + ac1_new_chat.add_contact(ac1.get_contact_by_addr(ac2.get_config("addr"))) + # Receive "Member added" message. + ac2.wait_for_incoming_msg_event() + + ac1_new_chat.send_text("Hello!") + ac2_msg = ac2.get_message_by_id(ac2.wait_for_incoming_msg_event().msg_id).get_snapshot() + assert ac2_msg.text == "Hello!" + assert ac2_msg.chat.get_basic_snapshot().is_contact_request diff --git a/python/tests/test_1_online.py b/python/tests/test_1_online.py index 0ded168ae..3c77535d9 100644 --- a/python/tests/test_1_online.py +++ b/python/tests/test_1_online.py @@ -1658,34 +1658,6 @@ def test_ac_setup_message_twice(acfactory, lp): assert ac1.get_info()["fingerprint"] == ac2.get_info()["fingerprint"] -def test_qr_new_group_unblocked(acfactory, lp): - """Regression test for a bug intoduced in core v1.113.0. - ac2 scans a verified group QR code created by ac1. - This results in creation of a blocked 1:1 chat with ac1 on ac2, - but ac1 contact is not blocked on ac2. - Then ac1 creates a group, adds ac2 there and promotes it by sending a message. - ac2 should receive a message and create a contact request for the group. - Due to a bug previously ac2 created a blocked group. - """ - - ac1, ac2 = acfactory.get_online_accounts(2) - ac1_chat = ac1.create_group_chat("Group for joining", verified=True) - qr = ac1_chat.get_join_qr() - ac2.qr_join_chat(qr) - - ac1._evtracker.wait_securejoin_inviter_progress(1000) - - ac1_new_chat = ac1.create_group_chat("Another group") - ac1_new_chat.add_contact(ac2) - # Receive "Member added" message. - ac2._evtracker.wait_next_incoming_message() - - ac1_new_chat.send_text("Hello!") - ac2_msg = ac2._evtracker.wait_next_incoming_message() - assert ac2_msg.text == "Hello!" - assert ac2_msg.chat.is_contact_request() - - def test_qr_email_capitalization(acfactory, lp): """Regression test for a bug that resulted in failure to propagate verification via gossip in a verified group