Before this commit and following the refactoring of the home menu and the control panel to the Owl framework, some of the helpers of the 'clickEverywhere' test have not been properly updated to the new classes/behaviours. Now the selectors target the right elements and some actions that were previously synchronous are now properly awaited (home menu toggling, filter menu interactions, etc.). Also slightly changed the behaviour of the clickAll functions: - requesting a click on a null element will make the test crash (added some conditions to avoid this in a standard flow). - any error crashing the test at a deeper level will be displayed in the console - an animation frame is awaited after clicking on an element. This is to comply with the Owl rendering system. closes odoo/odoo#47762 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
43 lines
1.9 KiB
Python
43 lines
1.9 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
import logging
|
|
import odoo.tests
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
@odoo.tests.tagged('click_all', 'post_install', '-at_install', '-standard')
|
|
class TestMenusAdmin(odoo.tests.HttpCase):
|
|
|
|
def test_01_click_everywhere_as_admin(self):
|
|
menus = self.env['ir.ui.menu'].load_menus(False)
|
|
for app in menus['children']:
|
|
with self.subTest(app=app['name']):
|
|
_logger.runbot('Testing %s', app['name'])
|
|
self.browser_js("/web", "odoo.__DEBUG__.services['web.clickEverywhere']('%s');" % app['xmlid'], "odoo.isReady === true", login="admin", timeout=300)
|
|
self.terminate_browser()
|
|
|
|
|
|
@odoo.tests.tagged('click_all', 'post_install', '-at_install', '-standard')
|
|
class TestMenusDemo(odoo.tests.HttpCase):
|
|
|
|
def test_01_click_everywhere_as_demo(self):
|
|
menus = self.env['ir.ui.menu'].load_menus(False)
|
|
for app in menus['children']:
|
|
with self.subTest(app=app['name']):
|
|
_logger.runbot('Testing %s', app['name'])
|
|
self.browser_js("/web", "odoo.__DEBUG__.services['web.clickEverywhere']('%s');" % app['xmlid'], "odoo.isReady === true", login="demo", timeout=300)
|
|
self.terminate_browser()
|
|
|
|
@odoo.tests.tagged('post_install', '-at_install')
|
|
class TestMenusAdminLight(odoo.tests.HttpCase):
|
|
|
|
def test_01_click_apps_menus_as_admin(self):
|
|
self.browser_js("/web", "odoo.__DEBUG__.services['web.clickEverywhere'](undefined, true);", "odoo.isReady === true", login="admin", timeout=120)
|
|
|
|
@odoo.tests.tagged('post_install', '-at_install',)
|
|
class TestMenusDemoLight(odoo.tests.HttpCase):
|
|
|
|
def test_01_click_apps_menus_as_demo(self):
|
|
self.browser_js("/web", "odoo.__DEBUG__.services['web.clickEverywhere'](undefined, true);", "odoo.isReady === true", login="demo", timeout=120)
|