summaryrefslogtreecommitdiff
path: root/addons/test_mail
diff options
context:
space:
mode:
authorXavier Dubuc <xdu@odoo.com>2020-07-17 14:50:29 +0000
committerXavier Dubuc <xdu@odoo.com>2020-09-17 13:17:45 +0000
commit96e94287c6518f25dee1579259707a05481de294 (patch)
treef33e3df40d1f058d0cc2453772afa336ca2a44a0 /addons/test_mail
parentd654c05f3e06898a5de025c1b830ba29c039f781 (diff)
[FIX] mail: fix "New messages" separator and channel_seen behaviour
- channel_seen is now called even for own message and only when needed - channel_seen is now called with a message_id which transfer the decision of what is seen to the client which makes more sense task-2282235 task-2282248 closes odoo/odoo#57950 X-original-commit: 04edfa50ccea305050d017c4a1996e561bc7bd57 Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Diffstat (limited to 'addons/test_mail')
-rw-r--r--addons/test_mail/tests/test_mail_channel.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/addons/test_mail/tests/test_mail_channel.py b/addons/test_mail/tests/test_mail_channel.py
index e08d45caa69..42fba8eeee4 100644
--- a/addons/test_mail/tests/test_mail_channel.py
+++ b/addons/test_mail/tests/test_mail_channel.py
@@ -257,6 +257,31 @@ class TestChannelFeatures(TestMailCommon):
same_solo_channel_info = current_user.env['mail.channel'].channel_get(partners_to=current_partner.ids)
self.assertEqual(same_solo_channel_info['id'], solo_channel_info['id'])
+ def test_channel_seen(self):
+ """
+ In case of concurrent channel_seen RPC, ensure the oldest call has no effect.
+ """
+ self.test_channel.write({'channel_type': 'chat'})
+ self.test_channel.action_follow()
+ msg_1 = self._add_messages(self.test_channel, 'Body1', author=self.user_employee.partner_id,
+ channel_ids=[self.test_channel.id])
+ msg_2 = self._add_messages(self.test_channel, 'Body2', author=self.user_employee.partner_id,
+ channel_ids=[self.test_channel.id])
+ ChannelAsUser = self.test_channel.with_user(self.user_employee).browse(self.test_channel.id)
+
+ self.test_channel.channel_seen(msg_2.id)
+ self.assertEqual(
+ ChannelAsUser.channel_info()[0]['seen_partners_info'][0]['seen_message_id'],
+ msg_2.id,
+ "Last message id should have been updated"
+ )
+
+ self.test_channel.channel_seen(msg_1.id)
+ self.assertEqual(
+ ChannelAsUser.channel_info()[0]['seen_partners_info'][0]['seen_message_id'],
+ msg_2.id,
+ "Last message id should stay the same after mark channel as seen with an older message"
+ )
@tagged('moderation')
class TestChannelModeration(TestMailCommon):