412 lines
15 KiB
Python
412 lines
15 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
import odoo
|
|
from odoo.addons.mail.tests.test_binary_controller import TestBinaryControllerCommon
|
|
|
|
|
|
@odoo.tests.tagged("-at_install", "post_install")
|
|
class TestDiscussBinaryControllerCommon(TestBinaryControllerCommon):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
cls.private_channel = cls.env["discuss.channel"].create(
|
|
{"name": "Private Channel", "channel_type": "group"}
|
|
)
|
|
cls.public_channel = cls.env["discuss.channel"].channel_create(
|
|
name="Public Channel", group_id=None
|
|
)
|
|
cls.partner_ids = (
|
|
cls.user_public + cls.user_portal + cls.user_employee + cls.user_demo + cls.user_admin
|
|
).partner_id.ids
|
|
|
|
|
|
@odoo.tests.tagged("-at_install", "post_install")
|
|
class TestDiscussBinaryController(TestDiscussBinaryControllerCommon):
|
|
def test_open_guest_avatar(self):
|
|
"""Test access to open the avatar of a guest.
|
|
There is no common channel or any interaction from the guest."""
|
|
self._execute_subtests(
|
|
self.guest_2,
|
|
(
|
|
(self.user_public, False),
|
|
(self.guest, False),
|
|
(self.user_portal, False),
|
|
(self.user_employee, True),
|
|
(self.user_demo, True),
|
|
(self.user_admin, True),
|
|
),
|
|
)
|
|
|
|
def test_01_guest_avatar_private_channel(self):
|
|
"""Test access to open the avatar:
|
|
- target type: guest
|
|
- channel type: group
|
|
- target joins the channel: True
|
|
- other users join the channel: True
|
|
- target sends a message: False"""
|
|
self.private_channel.add_members(self.partner_ids, (self.guest + self.guest_2).ids)
|
|
self._execute_subtests(
|
|
self.guest_2,
|
|
(
|
|
(self.user_public, False),
|
|
(self.guest, True),
|
|
(self.user_portal, True),
|
|
(self.user_employee, True),
|
|
(self.user_demo, True),
|
|
(self.user_admin, True),
|
|
),
|
|
)
|
|
|
|
def test_01_partner_avatar_private_channel(self):
|
|
"""Test access to open the avatar:
|
|
- target type: partner
|
|
- channel type: group
|
|
- target joins the channel: True
|
|
- other users join the channel: True
|
|
- target sends a message: False"""
|
|
self.private_channel.add_members(
|
|
self.partner_ids + [self.user_test.partner_id.id], self.guest.id
|
|
)
|
|
self._execute_subtests(
|
|
self.user_test,
|
|
(
|
|
(self.user_public, False),
|
|
(self.guest, True),
|
|
(self.user_portal, True),
|
|
(self.user_employee, True),
|
|
(self.user_demo, True),
|
|
(self.user_admin, True),
|
|
),
|
|
)
|
|
|
|
def test_02_guest_avatar_private_channel(self):
|
|
"""Test access to open the avatar:
|
|
- target type: guest
|
|
- channel type: group
|
|
- target joins the channel: True
|
|
- other users join the channel: True
|
|
- target sends a message: True"""
|
|
self.private_channel.add_members(self.partner_ids, (self.guest + self.guest_2).ids)
|
|
self._send_message(self.guest_2, self.private_channel._name, self.private_channel.id)
|
|
self._execute_subtests(
|
|
self.guest_2,
|
|
(
|
|
(self.user_public, False),
|
|
(self.guest, True),
|
|
(self.user_portal, True),
|
|
(self.user_employee, True),
|
|
(self.user_demo, True),
|
|
(self.user_admin, True),
|
|
),
|
|
)
|
|
|
|
def test_02_partner_avatar_private_channel(self):
|
|
"""Test access to open the avatar:
|
|
- target type: partner
|
|
- channel type: group
|
|
- target joins the channel: True
|
|
- other users join the channel: True
|
|
- target sends a message: True"""
|
|
self.private_channel.add_members(
|
|
self.partner_ids + [self.user_test.partner_id.id], self.guest.id
|
|
)
|
|
self._send_message(self.user_test, self.private_channel._name, self.private_channel.id)
|
|
self._execute_subtests(
|
|
self.user_test,
|
|
(
|
|
(self.user_public, False),
|
|
(self.guest, True),
|
|
(self.user_portal, True),
|
|
(self.user_employee, True),
|
|
(self.user_demo, True),
|
|
(self.user_admin, True),
|
|
),
|
|
)
|
|
|
|
def test_03_guest_avatar_private_channel(self):
|
|
"""Test access to open the avatar:
|
|
- target type: guest
|
|
- channel type: group
|
|
- target joins the channel: True
|
|
- other users join the channel: True
|
|
- target sends a message: False
|
|
- target leaves the channel: True"""
|
|
self.private_channel.add_members(self.partner_ids, (self.guest + self.guest_2).ids)
|
|
self.env["discuss.channel.member"].search(
|
|
[("guest_id", "=", self.guest_2.id), ("channel_id", "=", self.private_channel.id)]
|
|
).unlink()
|
|
self._execute_subtests(
|
|
self.guest_2,
|
|
(
|
|
(self.user_public, False),
|
|
(self.guest, False),
|
|
(self.user_portal, False),
|
|
(self.user_employee, True),
|
|
(self.user_demo, True),
|
|
(self.user_admin, True),
|
|
),
|
|
)
|
|
|
|
def test_03_partner_avatar_private_channel(self):
|
|
"""Test access to open the avatar:
|
|
- target type: partner
|
|
- channel type: group
|
|
- target joins the channel: True
|
|
- other users join the channel: True
|
|
- target sends a message: False
|
|
- target leaves the channel: True"""
|
|
self.private_channel.add_members(
|
|
self.partner_ids + [self.user_test.partner_id.id], self.guest.id
|
|
)
|
|
self.env["discuss.channel.member"].search(
|
|
[
|
|
("partner_id", "=", self.user_test.partner_id.id),
|
|
("channel_id", "=", self.private_channel.id),
|
|
]
|
|
).unlink()
|
|
self._execute_subtests(
|
|
self.user_test,
|
|
(
|
|
(self.user_public, False),
|
|
(self.guest, False),
|
|
(self.user_portal, False),
|
|
(self.user_employee, True),
|
|
(self.user_demo, True),
|
|
(self.user_admin, True),
|
|
),
|
|
)
|
|
|
|
def test_04_guest_avatar_private_channel(self):
|
|
"""Test access to open the avatar:
|
|
- target type: guest
|
|
- channel type: group
|
|
- target joins the channel: True
|
|
- other users join the channel: True
|
|
- target sends a message: True
|
|
- target leaves the channel: True"""
|
|
self.private_channel.add_members(self.partner_ids, (self.guest + self.guest_2).ids)
|
|
self._send_message(self.guest_2, self.private_channel._name, self.private_channel.id)
|
|
self.env["discuss.channel.member"].search(
|
|
[("guest_id", "=", self.guest_2.id), ("channel_id", "=", self.private_channel.id)]
|
|
).unlink()
|
|
self._execute_subtests(
|
|
self.guest_2,
|
|
(
|
|
(self.user_public, False),
|
|
(self.guest, True),
|
|
(self.user_portal, True),
|
|
(self.user_employee, True),
|
|
(self.user_demo, True),
|
|
(self.user_admin, True),
|
|
),
|
|
)
|
|
|
|
def test_04_partner_avatar_private_channel(self):
|
|
"""Test access to open the avatar:
|
|
- target type: partner
|
|
- channel type: group
|
|
- target joins the channel: True
|
|
- other users join the channel: True
|
|
- target sends a message: True
|
|
- target leaves the channel: True"""
|
|
self.private_channel.add_members(
|
|
self.partner_ids + [self.user_test.partner_id.id], self.guest.id
|
|
)
|
|
self._send_message(self.user_test, self.private_channel._name, self.private_channel.id)
|
|
self.env["discuss.channel.member"].search(
|
|
[
|
|
("partner_id", "=", self.user_test.partner_id.id),
|
|
("channel_id", "=", self.private_channel.id),
|
|
]
|
|
).unlink()
|
|
self._execute_subtests(
|
|
self.user_test,
|
|
(
|
|
(self.user_public, False),
|
|
(self.guest, True),
|
|
(self.user_portal, True),
|
|
(self.user_employee, True),
|
|
(self.user_demo, True),
|
|
(self.user_admin, True),
|
|
),
|
|
)
|
|
|
|
def test_05_guest_avatar_private_channel(self):
|
|
"""Test access to open the avatar:
|
|
- target type: guest
|
|
- channel type: group
|
|
- target joins the channel: False
|
|
- other users join the channel: False
|
|
- target sends a message: True"""
|
|
self.private_channel.with_user(self.user_public).with_context(
|
|
guest=self.guest_2
|
|
).sudo().message_post(body="Test", subtype_xmlid="mail.mt_comment", message_type="comment")
|
|
self._execute_subtests(
|
|
self.guest_2,
|
|
(
|
|
(self.user_public, False),
|
|
(self.guest, False),
|
|
(self.user_portal, False),
|
|
(self.user_employee, True),
|
|
(self.user_demo, True),
|
|
(self.user_admin, True),
|
|
),
|
|
)
|
|
|
|
def test_05_partner_avatar_private_channel(self):
|
|
"""Test access to open the avatar:
|
|
- target type: partner
|
|
- channel type: group
|
|
- target joins the channel: False
|
|
- other users join the channel: False
|
|
- target sends a message: True"""
|
|
self.private_channel.message_post(
|
|
body="Test",
|
|
subtype_xmlid="mail.mt_comment",
|
|
message_type="comment",
|
|
author_id=self.user_test.partner_id.id,
|
|
)
|
|
self._execute_subtests(
|
|
self.user_test,
|
|
(
|
|
(self.user_public, False),
|
|
(self.guest, False),
|
|
(self.user_portal, False),
|
|
(self.user_employee, True),
|
|
(self.user_demo, True),
|
|
(self.user_admin, True),
|
|
),
|
|
)
|
|
|
|
def test_01_guest_avatar_public_channel(self):
|
|
"""Test access to open the avatar:
|
|
- target type: guest
|
|
- channel type: public
|
|
- target joins the channel: False
|
|
- other users join the channel: False
|
|
- target sends a message: True"""
|
|
self.public_channel.with_user(self.user_public).with_context(
|
|
guest=self.guest_2
|
|
).sudo().message_post(body="Test", subtype_xmlid="mail.mt_comment", message_type="comment")
|
|
self._execute_subtests(
|
|
self.guest_2,
|
|
(
|
|
(self.user_public, True),
|
|
(self.guest, True),
|
|
(self.user_portal, True),
|
|
(self.user_employee, True),
|
|
(self.user_demo, True),
|
|
(self.user_admin, True),
|
|
),
|
|
)
|
|
|
|
def test_01_partner_avatar_public_channel(self):
|
|
"""Test access to open the avatar:
|
|
- target type: guest
|
|
- channel type: public
|
|
- target joins the channel: False
|
|
- other users join the channel: False
|
|
- target sends a message: True"""
|
|
self._send_message(self.user_test, self.public_channel._name, self.public_channel.id)
|
|
self._execute_subtests(
|
|
self.user_test,
|
|
(
|
|
(self.user_public, True),
|
|
(self.guest, True),
|
|
(self.user_portal, True),
|
|
(self.user_employee, True),
|
|
(self.user_demo, True),
|
|
(self.user_admin, True),
|
|
),
|
|
)
|
|
|
|
def test_02_guest_avatar_public_channel(self):
|
|
"""Test access to open the avatar:
|
|
- target type: guest
|
|
- channel type: public
|
|
- target joins the channel: True
|
|
- other users join the channel: False
|
|
- target sends a message: False
|
|
- target leaves the channel: True"""
|
|
target_member = self.public_channel.add_members(guest_ids=self.guest_2.id)
|
|
target_member.unlink()
|
|
self._execute_subtests(
|
|
self.guest_2,
|
|
(
|
|
(self.user_public, False),
|
|
(self.guest, False),
|
|
(self.user_portal, False),
|
|
(self.user_employee, True),
|
|
(self.user_demo, True),
|
|
(self.user_admin, True),
|
|
),
|
|
)
|
|
|
|
def test_02_partner_avatar_public_channel(self):
|
|
"""Test access to open the avatar:
|
|
- target type: partner
|
|
- channel type: public
|
|
- target joins the channel: True
|
|
- other users join the channel: False
|
|
- target sends a message: False
|
|
- target leaves the channel: True"""
|
|
target_member = self.public_channel.add_members(self.user_test.partner_id.id)
|
|
target_member.unlink()
|
|
self._execute_subtests(
|
|
self.user_test,
|
|
(
|
|
(self.user_public, False),
|
|
(self.guest, False),
|
|
(self.user_portal, False),
|
|
(self.user_employee, True),
|
|
(self.user_demo, True),
|
|
(self.user_admin, True),
|
|
),
|
|
)
|
|
|
|
def test_03_guest_avatar_public_channel(self):
|
|
"""Test access to open the avatar:
|
|
- target type: guest
|
|
- channel type: public
|
|
- target joins the channel: True
|
|
- other users join the channel: False
|
|
- target sends a message: True
|
|
- target leaves the channel: True"""
|
|
target_member = self.public_channel.add_members(guest_ids=self.guest_2.id)
|
|
self._send_message(self.guest_2, self.public_channel._name, self.public_channel.id)
|
|
target_member.unlink()
|
|
self._execute_subtests(
|
|
self.guest_2,
|
|
(
|
|
(self.user_public, True),
|
|
(self.guest, True),
|
|
(self.user_portal, True),
|
|
(self.user_employee, True),
|
|
(self.user_demo, True),
|
|
(self.user_admin, True),
|
|
),
|
|
)
|
|
|
|
def test_03_partner_avatar_public_channel(self):
|
|
"""Test access to open the avatar:
|
|
- target type: partner
|
|
- channel type: public
|
|
- target joins the channel: True
|
|
- other users join the channel: False
|
|
- target sends a message: True
|
|
- target leaves the channel: True"""
|
|
target_member = self.public_channel.add_members(self.user_test.partner_id.id)
|
|
self._send_message(self.user_test, self.public_channel._name, self.public_channel.id)
|
|
target_member.unlink()
|
|
self._execute_subtests(
|
|
self.user_test,
|
|
(
|
|
(self.user_public, True),
|
|
(self.guest, True),
|
|
(self.user_portal, True),
|
|
(self.user_employee, True),
|
|
(self.user_demo, True),
|
|
(self.user_admin, True),
|
|
),
|
|
)
|