From 095b358acaca807ff86e3791b406585b2da0a238 Mon Sep 17 00:00:00 2001 From: link2xt Date: Sun, 2 Jan 2022 22:04:58 +0000 Subject: [PATCH] Test multidevice synchronization of Seen status --- python/tests/test_account.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/python/tests/test_account.py b/python/tests/test_account.py index 786f68645..f3dd4abbb 100644 --- a/python/tests/test_account.py +++ b/python/tests/test_account.py @@ -1071,6 +1071,38 @@ class TestOnlineAccount: is_seen = b'\\Seen' in flags assert is_seen + def test_multidevice_sync_seen(self, acfactory, lp): + """Test that message marked as seen on one device is marked as seen on another.""" + ac1 = acfactory.get_online_configuring_account() + ac2 = acfactory.get_online_configuring_account() + ac1_clone = acfactory.clone_online_account(ac1) + acfactory.wait_configure_and_start_io() + + ac1.set_config("bcc_self", "1") + ac1_clone.set_config("bcc_self", "1") + + ac1_chat = ac1.create_chat(ac2) + ac1_clone_chat = ac1_clone.create_chat(ac2) + ac2_chat = ac2.create_chat(ac1) + + lp.sec("Send a message from ac2 to ac1 and check that it's 'fresh'") + ac2_chat.send_text("Hi") + ac1_message = ac1._evtracker.wait_next_incoming_message() + ac1_clone_message = ac1_clone._evtracker.wait_next_incoming_message() + assert ac1_chat.count_fresh_messages() == 1 + assert ac1_clone_chat.count_fresh_messages() == 1 + assert ac1_message.is_in_fresh + assert ac1_clone_message.is_in_fresh + + lp.sec("ac1 marks message as seen on the first device") + ac1.mark_seen_messages([ac1_message]) + assert ac1_message.is_in_seen + + lp.sec("ac1 clone detects that message is marked as seen") + ev = ac1_clone._evtracker.get_matching("DC_EVENT_MSGS_NOTICED") + assert ev.data1 == ac1_clone_chat.id + assert ac1_clone_message.is_in_seen + def test_message_override_sender_name(self, acfactory, lp): ac1, ac2 = acfactory.get_two_online_accounts() chat = acfactory.get_accepted_chat(ac1, ac2)