Bug 1215376 - allow itemToSelect to be null in menu closing test utility
Most close*Menu methods in browser tests allow itemToSelect to be null.
Some did not.
Now they do (after this commit)
MozReview-Commit-ID: 2jSGAi2R3ZD
--- a/browser/components/extensions/test/browser/head.js
+++ b/browser/components/extensions/test/browser/head.js
@@ -329,17 +329,21 @@ async function openExtensionContextMenu(
EventUtils.synthesizeMouseAtCenter(extensionMenu, {});
await popupShownPromise;
return extensionMenu;
}
async function closeExtensionContextMenu(itemToSelect, modifiers = {}) {
let contentAreaContextMenu = document.getElementById("contentAreaContextMenu");
let popupHiddenPromise = BrowserTestUtils.waitForEvent(contentAreaContextMenu, "popuphidden");
- EventUtils.synthesizeMouseAtCenter(itemToSelect, modifiers);
+ if (itemToSelect) {
+ EventUtils.synthesizeMouseAtCenter(itemToSelect, modifiers);
+ } else {
+ contentAreaContextMenu.hidePopup();
+ }
await popupHiddenPromise;
// Bug 1351638: parent menu fails to close intermittently, make sure it does.
contentAreaContextMenu.hidePopup();
}
async function openToolsMenu(win = window) {
const node = win.document.getElementById("tools-menu");
@@ -356,21 +360,25 @@ async function openToolsMenu(win = windo
return menu;
}
function closeToolsMenu(itemToSelect, win = window) {
const menu = win.document.getElementById("menu_ToolsPopup");
const hidden = BrowserTestUtils.waitForEvent(menu, "popuphidden");
if (AppConstants.platform === "macosx") {
// Mocking on OSX, see above.
- itemToSelect.doCommand();
+ if (itemToSelect) {
+ itemToSelect.doCommand();
+ }
menu.dispatchEvent(new MouseEvent("popuphiding"));
menu.dispatchEvent(new MouseEvent("popuphidden"));
+ } else if (itemToSelect) {
+ EventUtils.synthesizeMouseAtCenter(itemToSelect, {}, win);
} else {
- EventUtils.synthesizeMouseAtCenter(itemToSelect, {}, win);
+ menu.hidePopup();
}
return hidden;
}
async function openChromeContextMenu(menuId, target, win = window) {
const node = win.document.querySelector(target);
const menu = win.document.getElementById(menuId);
const shown = BrowserTestUtils.waitForEvent(menu, "popupshown");