Bug 1215376 - allow itemToSelect to be null in menu closing test utility r=mixedpuppy

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

--HG--
extra : rebase_source : 897d4a66f5b1da8027180f85c5f5f5284734e860
This commit is contained in:
Rob Wu 2017-09-09 19:41:56 +02:00
parent 2b915e93ba
commit 5926434b44

View File

@ -334,7 +334,11 @@ async function openExtensionContextMenu(selector = "#img1") {
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.
@ -361,11 +365,15 @@ function closeToolsMenu(itemToSelect, win = window) {
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 {
} else if (itemToSelect) {
EventUtils.synthesizeMouseAtCenter(itemToSelect, {}, win);
} else {
menu.hidePopup();
}
return hidden;
}