Files
odoo_source/addons/website_crm/tests/test_website_crm.py
T
99b50d18e2 [REF] test_website, *: adapt tours to new client action
*: website, website_blog, website_crm, website_event, website_forum,
   website_hr_recruitment, website_mass_mailing, website_sale,
   website_sale_loyalty, website_slides

This commit adds the current website displayed view xmlid outside of the
iframe, on its container, so that the tours registered with
registerThemeHomepageTour can continue to prepend their triggers with
the view xml id.

Introduce registerEditionTour: this function will allow tour maker to
more easily register a tour that needs to start in the iframe's backend
and go in edit mode.

See merge commit for more information.

task-2687506

Co-authored-by: Benjamin Vray <bvr@odoo.com>
Co-authored-by: Younn Olivier <yol@odoo.com>
2022-06-24 10:28:07 +02:00

52 lines
2.5 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import odoo.tests
@odoo.tests.tagged('post_install', '-at_install')
class TestWebsiteCrm(odoo.tests.HttpCase):
def test_tour(self):
all_utm_campaign = self.env['utm.campaign'].search([])
utm_medium = self.env['utm.medium'].create({'name': 'Medium'})
utm_source = self.env['utm.source'].create({'name': 'Source'})
# change action to create opportunity
self.start_tour(self.env['website'].get_client_action_url('/contactus'), 'website_crm_pre_tour', login='admin')
self.start_tour("/?utm_source=Source&utm_medium=Medium&utm_campaign=New campaign", 'website_crm_tour')
# check result
record = self.env['crm.lead'].search([('description', '=', '### TOUR DATA ###')])
self.assertEqual(len(record), 1)
self.assertEqual(record.contact_name, 'John Smith')
self.assertEqual(record.email_from, 'john@smith.com')
self.assertEqual(record.partner_name, 'Odoo S.A.')
# check UTM records
self.assertEqual(record.source_id, utm_source)
self.assertEqual(record.medium_id, utm_medium)
self.assertNotIn(record.campaign_id, all_utm_campaign, 'Should have created a new campaign')
self.assertEqual(record.campaign_id.name, 'New campaign', 'Name of the "on the fly" created campaign is wrong')
def test_catch_logged_partner_info_tour(self):
user_login = 'admin'
user_partner = self.env['res.users'].search([('login', '=', user_login)]).partner_id
partner_email = user_partner.email
partner_phone = user_partner.phone
# no edit on prefilled data from logged partner : propagate partner_id on created lead
self.start_tour(self.env['website'].get_client_action_url('/contactus'), 'website_crm_pre_tour', login=user_login)
with odoo.tests.RecordCapturer(self.env['crm.lead'], []) as capt:
self.start_tour("/", "website_crm_catch_logged_partner_info_tour", login=user_login)
self.assertEqual(capt.records.partner_id, user_partner)
# edited contact us partner info : do not propagate partner_id on lead
with odoo.tests.RecordCapturer(self.env['crm.lead'], []) as capt:
self.start_tour("/", "website_crm_tour", login=user_login)
self.assertFalse(capt.records.partner_id)
# check partner has not been changed
self.assertEqual(user_partner.email, partner_email)
self.assertEqual(user_partner.phone, partner_phone)