mirror of
https://github.com/bringout/oca-ocb-mail.git
synced 2026-04-23 06:22:06 +02:00
19.0 vanilla
This commit is contained in:
parent
5df8c07b59
commit
daa394e8b0
2114 changed files with 564841 additions and 299642 deletions
|
|
@ -0,0 +1,156 @@
|
|||
from odoo import Command
|
||||
from odoo.tests import new_test_user
|
||||
from odoo.addons.im_livechat.tests.common import TestImLivechatCommon
|
||||
from odoo.tests.common import users, tagged
|
||||
|
||||
|
||||
@tagged("-at_install", "post_install")
|
||||
class TestImLivechatSessionViews(TestImLivechatCommon):
|
||||
def test_session_history_navigation_back_and_forth(self):
|
||||
operator = new_test_user(
|
||||
self.env,
|
||||
login="operator",
|
||||
groups="base.group_user,im_livechat.im_livechat_group_manager",
|
||||
)
|
||||
self.env["mail.presence"]._update_presence(operator)
|
||||
self.livechat_channel.user_ids |= operator
|
||||
self.authenticate(None, None)
|
||||
data = self.make_jsonrpc_request(
|
||||
"/im_livechat/get_session",
|
||||
{
|
||||
"channel_id": self.livechat_channel.id,
|
||||
"previous_operator_id": operator.partner_id.id,
|
||||
},
|
||||
)
|
||||
channel = self.env["discuss.channel"].browse(data["channel_id"])
|
||||
channel.with_user(operator).message_post(body="Hello, how can I help you?")
|
||||
self._reset_bus()
|
||||
action = self.env.ref("im_livechat.discuss_channel_action_from_livechat_channel")
|
||||
self.start_tour(
|
||||
f"/odoo/livechat/{self.livechat_channel.id}/action-{action.id}",
|
||||
"im_livechat_history_back_and_forth_tour",
|
||||
login="operator",
|
||||
)
|
||||
|
||||
@users("admin")
|
||||
def test_form_view_embed_thread(self):
|
||||
operator = new_test_user(
|
||||
self.env,
|
||||
login="operator",
|
||||
groups="base.group_user,im_livechat.im_livechat_group_manager",
|
||||
)
|
||||
[user_1, user_2] = self.env["res.partner"].create([{"name": "test 1"}, {"name": "test 2"}])
|
||||
[channel1, channel2] = self.env["discuss.channel"].create(
|
||||
[
|
||||
{
|
||||
"name": "test 1",
|
||||
"channel_type": "livechat",
|
||||
"livechat_channel_id": self.livechat_channel.id,
|
||||
"livechat_operator_id": operator.partner_id.id,
|
||||
"channel_member_ids": [Command.create({"partner_id": user_1.id})],
|
||||
},
|
||||
{
|
||||
"name": "test 2",
|
||||
"channel_type": "livechat",
|
||||
"livechat_channel_id": self.livechat_channel.id,
|
||||
"livechat_operator_id": operator.partner_id.id,
|
||||
"channel_member_ids": [Command.create({"partner_id": user_2.id})],
|
||||
},
|
||||
]
|
||||
)
|
||||
channel1.message_post(
|
||||
body="Test Channel 1 Msg", message_type="comment", subtype_xmlid="mail.mt_comment"
|
||||
)
|
||||
channel2.message_post(
|
||||
body="Test Channel 2 Msg", message_type="comment", subtype_xmlid="mail.mt_comment"
|
||||
)
|
||||
action = self.env.ref("im_livechat.discuss_channel_action_from_livechat_channel")
|
||||
self.start_tour(
|
||||
f"/odoo/livechat/{self.livechat_channel.id}/action-{action.id}",
|
||||
"im_livechat_session_history_open",
|
||||
login="operator",
|
||||
)
|
||||
|
||||
def test_partner_display_name(self):
|
||||
user = new_test_user(self.env, login="agent", name="john")
|
||||
company = self.env["res.partner"].create({"name": "TestCompany", "is_company": True})
|
||||
user.partner_id.parent_id = company.id
|
||||
self.assertEqual(
|
||||
user.with_context(im_livechat_hide_partner_company=True).partner_id.display_name,
|
||||
"john",
|
||||
)
|
||||
self.assertEqual(user.partner_id.display_name, "TestCompany, john")
|
||||
|
||||
|
||||
class TestImLivechatLookingForHelpViews(TestImLivechatSessionViews):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
|
||||
cls.bob = new_test_user(
|
||||
cls.env,
|
||||
login="bob_looking_for_help",
|
||||
groups="base.group_user,im_livechat.im_livechat_group_user",
|
||||
)
|
||||
cls.livechat_channel.user_ids |= cls.bob
|
||||
cls.looking_for_help_action = cls.env.ref(
|
||||
"im_livechat.discuss_channel_looking_for_help_action"
|
||||
)
|
||||
|
||||
def start_needhelp_session(self, guest_name=None):
|
||||
self.authenticate(None, None)
|
||||
cookies = {}
|
||||
if guest_name:
|
||||
guest = self.env["mail.guest"].create({"name": guest_name})
|
||||
cookies = {guest._cookie_name: guest._format_auth_cookie()}
|
||||
data = self.make_jsonrpc_request(
|
||||
"/im_livechat/get_session",
|
||||
{
|
||||
"channel_id": self.livechat_channel.id,
|
||||
"previous_operator_id": self.bob.partner_id.id,
|
||||
},
|
||||
cookies=cookies,
|
||||
)
|
||||
chat = self.env["discuss.channel"].browse(data["channel_id"])
|
||||
chat.livechat_status = "need_help"
|
||||
return chat
|
||||
|
||||
def test_looking_for_help_list_real_time_update(self):
|
||||
self.start_needhelp_session()
|
||||
self.start_tour(
|
||||
f"/odoo/action-{self.looking_for_help_action.id}",
|
||||
"im_livechat.looking_for_help_list_real_time_update_tour",
|
||||
login="bob_looking_for_help",
|
||||
)
|
||||
|
||||
def test_looking_for_help_kanban_real_time_update(self):
|
||||
self.start_needhelp_session()
|
||||
self.start_tour(
|
||||
f"/odoo/action-{self.looking_for_help_action.id}?view_type=kanban",
|
||||
"im_livechat.looking_for_help_kanban_real_time_update_tour",
|
||||
login="bob_looking_for_help",
|
||||
)
|
||||
|
||||
def test_looking_for_help_tags_real_time_update(self):
|
||||
self.start_needhelp_session()
|
||||
self.start_tour(
|
||||
f"/odoo/action-{self.looking_for_help_action.id}",
|
||||
"im_livechat.looking_for_help_tags_real_time_update_tour",
|
||||
login="bob_looking_for_help",
|
||||
)
|
||||
|
||||
def test_looking_for_help_discuss_category(self):
|
||||
self.env["discuss.channel"].search([("livechat_status", "=", "need_help")]).unlink()
|
||||
agent = new_test_user(self.env, "agent", groups="im_livechat.im_livechat_group_user")
|
||||
accounting_expertise, sales_expertise = self.env["im_livechat.expertise"].create(
|
||||
[{"name": "Accounting"}, {"name": "Sales"}],
|
||||
)
|
||||
agent.livechat_expertise_ids = sales_expertise
|
||||
accounting_chat = self.start_needhelp_session(guest_name="Visitor Accounting")
|
||||
accounting_chat.livechat_expertise_ids = accounting_expertise
|
||||
sales_chat = self.start_needhelp_session(guest_name="Visitor Sales")
|
||||
sales_chat.livechat_expertise_ids = sales_expertise
|
||||
self._reset_bus()
|
||||
self.start_tour(
|
||||
"/odoo/discuss", "im_livechat.looking_for_help_discuss_category_tour", login="agent"
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue