diff --git a/addons/web/static/tests/webclient/clickbot_tests.js b/addons/web/static/tests/webclient/clickbot_tests.js index 82a6072cc1d..28d260eaa95 100644 --- a/addons/web/static/tests/webclient/clickbot_tests.js +++ b/addons/web/static/tests/webclient/clickbot_tests.js @@ -2,7 +2,13 @@ import { registry } from "@web/core/registry"; import { createWebClient } from "./helpers"; -import { makeDeferred, patchDate, patchWithCleanup } from "@web/../tests/helpers/utils"; +import { + getFixture, + makeDeferred, + nextTick, + patchDate, + patchWithCleanup, +} from "@web/../tests/helpers/utils"; import { browser } from "@web/core/browser/browser"; import { ListRenderer } from "@web/views/list/list_renderer"; import { onWillStart, onWillUpdateProps } from "@odoo/owl"; @@ -118,7 +124,7 @@ QUnit.module("clickbot", (hooks) => { name: "menu 2", appID: 2, actionID: 1022, - xmlid: "app2_menu1", + xmlid: "app2_menu2", }, }, }; @@ -173,7 +179,7 @@ QUnit.module("clickbot", (hooks) => { 'Clicking on: filter "Not Bar"', 'Clicking on: filter "Date"', 'Clicking on: filter option "October"', - "Testing menu menu 2 app2_menu1", + "Testing menu menu 2 app2_menu2", 'Clicking on: menu item "menu 2"', "Testing 2 filters", 'Clicking on: filter "Not Bar"', @@ -188,6 +194,73 @@ QUnit.module("clickbot", (hooks) => { ]); }); + QUnit.test("clickbot clickeverywhere test (with dropdown menu)", async (assert) => { + serverData.menus.root.children = [2]; + serverData.menus[2].children = [5]; + serverData.menus[5] = { + id: 5, + children: [3, 4], + name: "a dropdown", + appID: 2, + xmlid: "app2_dropdown_menu", + }; + + patchDate(2017, 9, 8, 15, 35, 11); // October 8 2017, 15:35:11 + patchWithCleanup(browser, { + console: { + log: (msg) => { + assert.step(msg); + if (msg === "test successful") { + clickEverywhereDef.resolve(); + } + }, + error: (msg) => { + assert.step(msg); + clickEverywhereDef.resolve(); + }, + }, + }); + await createWebClient({ serverData }); + await nextTick(); + assert.containsOnce( + getFixture(), + ".o_menu_sections .o-dropdown .dropdown-toggle:contains(a dropdown)" + ); + clickEverywhereDef = makeDeferred(); + window.clickEverywhere(); + await clickEverywhereDef; + assert.verifySteps([ + "Clicking on: apps menu toggle button", + "Testing app menu: app2", + "Testing menu App2 app2", + 'Clicking on: menu item "App2"', + "Testing 2 filters", + 'Clicking on: filter "Not Bar"', + 'Clicking on: filter "Date"', + 'Clicking on: filter option "October"', + "Clicking on: menu toggler", + "Testing menu menu 1 app2_menu1", + 'Clicking on: menu item "menu 1"', + "Testing 2 filters", + 'Clicking on: filter "Not Bar"', + 'Clicking on: filter "Date"', + 'Clicking on: filter option "October"', + "Clicking on: menu toggler", + "Testing menu menu 2 app2_menu2", + 'Clicking on: menu item "menu 2"', + "Testing 2 filters", + 'Clicking on: filter "Not Bar"', + 'Clicking on: filter "Date"', + 'Clicking on: filter option "October"', + "Clicking on: apps menu toggle button", + "Successfully tested 1 apps", + "Successfully tested 2 menus", + "Successfully tested 0 modals", + "Successfully tested 6 filters", + "test successful", + ]); + }); + QUnit.test("clickbot test waiting rpc after clicking filter", async (assert) => { let clickBotStarted = false; serverData.actions = {