[IMP] web: clickbot: add test for dropdown menu

This commit backports the test introduced in odoo/odoo#155154, as
it is relevant to have it in every versions to ensure that dropdown
menu (i.e. submenus) are correctly tested.

closes odoo/odoo#155218

X-original-commit: 8915c8db63d2ebc697bbfc073e3504589a26b4b8
Signed-off-by: Bastien Fafchamps (bafa) <bafa@odoo.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
This commit is contained in:
Aaron Bohy
2024-02-23 18:10:36 +00:00
parent 869aed0064
commit 60ac717fe2
@@ -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 = {