diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-08-08 11:52:13 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-08-08 11:52:13 +0200 |
| commit | b792ba7d9a80e856e3c69c2852e6d44b78d0e13f (patch) | |
| tree | a3ee5b7ef9f9317866deeb2b3e5964020c87b8fb /addons/website/tests/test_views.py | |
| parent | 22e0f88bce5bf162a6c67e915a3c27b101f74f2b (diff) | |
| parent | 752b2553c6fad061ebf23e13585f7b7489b20840 (diff) | |
[MERGE] forward port branch saas-12.3 up to 752b2553c6f
Diffstat (limited to 'addons/website/tests/test_views.py')
| -rw-r--r-- | addons/website/tests/test_views.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/addons/website/tests/test_views.py b/addons/website/tests/test_views.py index b8262bb11b8..38b3311ecbd 100644 --- a/addons/website/tests/test_views.py +++ b/addons/website/tests/test_views.py @@ -811,6 +811,43 @@ class TestCowViewSaving(common.TransactionCase): all_title_updated = specific_view.website_meta_title == self.base_view.website_meta_title == "A bug got fixed by updating this field" self.assertEqual(all_title_updated, True, "Update on top level generic views should also be applied on specific views") + def test_module_new_inherit_view_on_parent_already_forked_xpath_replace(self): + """ Deeper, more specific test of above behavior. + A module install should add/update the COW view (if allowed fields, + eg not modified or prohibited (website_id, inherit_id..)). + This test ensure it does not crash if the child view is a primary view. + """ + View = self.env['ir.ui.view'] + + # Simulate layout views + base_view = View.create({ + 'name': 'Main Frontend Layout', + 'type': 'qweb', + 'arch': '<t t-call="web.layout"><t t-set="head_website"/></t>', + 'key': '_portal.frontend_layout', + }).with_context(load_all_views=True) + + inherit_view = View.create({ + 'name': 'Main layout', + 'mode': 'extension', + 'inherit_id': base_view.id, + 'arch': '<xpath expr="//t[@t-set=\'head_website\']" position="replace"><t t-call-assets="web_editor.summernote" t-js="false" groups="website.group_website_publisher"/></xpath>', + 'key': '_website.layout', + }) + + # Trigger cow on website_sale hierarchy for website 1 + base_view.with_context(website_id=1).write({'name': 'Main Frontend Layout (W1)'}) + + # Simulate website_sale_comparison install, that's the real test, it + # should not crash. + View._load_records([dict(xml_id='_website_forum.layout', values={ + 'name': 'Forum Layout', + 'mode': 'primary', + 'inherit_id': inherit_view.id, + 'arch': '<xpath expr="//t[@t-call-assets=\'web_editor.summernote\'][@t-js=\'false\']" position="attributes"><attribute name="groups"/></xpath>', + 'key': '_website_forum.layout', + })]) + def test_multiple_inherit_level(self): """ Test multi-level inheritance: Base |
