33
44import odoo
55from odoo .tests import HttpCase
6-
6+ from odoo . addons . mail . tests . common import mail_new_test_user
77
88@odoo .tests .tagged ('-at_install' , 'post_install' )
99class TestMailPublicPage (HttpCase ):
@@ -12,7 +12,30 @@ class TestMailPublicPage(HttpCase):
1212
1313 def setUp (self ):
1414 super ().setUp ()
15+ portal_user = mail_new_test_user (
16+ self .env ,
17+ name = 'Portal Bowser' ,
18+ login = 'portal_bowser' ,
19+ email = 'portal_bowser@example.com' ,
20+ groups = 'base.group_portal' ,
21+ )
22+ internal_user = mail_new_test_user (
23+ self .env ,
24+ name = 'Internal Luigi' ,
25+ login = 'internal_luigi' ,
26+ email = 'internal_luigi@example.com' ,
27+ groups = 'base.group_user' ,
28+ )
29+ guest = self .env ['mail.guest' ].create ({'name' : 'Guest Mario' })
30+
1531 self .channel = self .env ['mail.channel' ].browse (self .env ['mail.channel' ].channel_create (group_id = None , name = 'Test channel' )['id' ])
32+ self .channel .add_members (portal_user .partner_id .ids )
33+ self .channel .add_members (internal_user .partner_id .ids )
34+ self .channel .add_members (guest_ids = [guest .id ])
35+
36+ self .group = self .env ['mail.channel' ].browse (self .env ['mail.channel' ].create_group (partners_to = (internal_user + portal_user ).partner_id .ids , name = "Test group" )['id' ])
37+ self .group .add_members (guest_ids = [guest .id ])
38+
1639 self .tour = "mail/static/tests/tours/discuss_public_tour.js"
1740
1841 def _open_channel_page_as_user (self , login ):
@@ -21,16 +44,36 @@ def _open_channel_page_as_user(self, login):
2144 # the channel, so we need to run it again to test different parts of the code.
2245 self .start_tour (self .channel .invitation_url , self .tour , login = login )
2346
47+ def _open_group_page_as_user (self , login ):
48+ self .start_tour (self .group .invitation_url , self .tour , login = login )
49+ # Second run of the tour as the first call has side effects, like creating user settings or adding members to
50+ # the channel, so we need to run it again to test different parts of the code.
51+ self .start_tour (self .group .invitation_url , self .tour , login = login )
52+
2453 def test_mail_channel_public_page_as_admin (self ):
2554 self ._open_channel_page_as_user ('admin' )
2655
56+ def test_mail_group_public_page_as_admin (self ):
57+ self ._open_group_page_as_user ('admin' )
58+
2759 def test_mail_channel_public_page_as_guest (self ):
2860 self .start_tour (self .channel .invitation_url , "mail/static/tests/tours/mail_channel_as_guest_tour.js" )
2961 guest = self .env ['mail.guest' ].search ([('channel_ids' , 'in' , self .channel .id )], limit = 1 , order = 'id desc' )
3062 self .start_tour (self .channel .invitation_url , self .tour , cookies = {guest ._cookie_name : f"{ guest .id } { guest ._cookie_separator } { guest .access_token } " })
3163
64+ def test_mail_group_public_page_as_guest (self ):
65+ self .start_tour (self .group .invitation_url , "mail/static/tests/tours/mail_channel_as_guest_tour.js" )
66+ guest = self .env ['mail.guest' ].search ([('channel_ids' , 'in' , self .channel .id )], limit = 1 , order = 'id desc' )
67+ self .start_tour (self .group .invitation_url , self .tour , cookies = {guest ._cookie_name : f"{ guest .id } { guest ._cookie_separator } { guest .access_token } " })
68+
3269 def test_mail_channel_public_page_as_internal (self ):
3370 self ._open_channel_page_as_user ('demo' )
3471
72+ def test_mail_group_public_page_as_internal (self ):
73+ self ._open_group_page_as_user ('demo' )
74+
3575 def test_mail_channel_public_page_as_portal (self ):
3676 self ._open_channel_page_as_user ('portal' )
77+
78+ def test_mail_group_public_page_as_portal (self ):
79+ self ._open_group_page_as_user ('portal' )
0 commit comments