diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /browser/base/content/test/forms/head.js | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | browser/base/content/test/forms/head.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/browser/base/content/test/forms/head.js b/browser/base/content/test/forms/head.js new file mode 100644 index 0000000000..1629c6a57c --- /dev/null +++ b/browser/base/content/test/forms/head.js @@ -0,0 +1,51 @@ +async function openSelectPopup( + mode = "key", + selector = "select", + win = window +) { + info("Opening select popup"); + let popupShownPromise = BrowserTestUtils.waitForSelectPopupShown(win); + if (mode == "click" || mode == "mousedown") { + let mousePromise; + if (mode == "click") { + mousePromise = BrowserTestUtils.synthesizeMouseAtCenter( + selector, + {}, + win.gBrowser.selectedBrowser + ); + } else { + mousePromise = BrowserTestUtils.synthesizeMouse( + selector, + 5, + 5, + { type: "mousedown" }, + win.gBrowser.selectedBrowser + ); + } + await mousePromise; + } else { + EventUtils.synthesizeKey("KEY_ArrowDown", { altKey: true }, win); + } + return popupShownPromise; +} + +function hideSelectPopup(mode = "enter", win = window) { + let browser = win.gBrowser.selectedBrowser; + let selectClosedPromise = SpecialPowers.spawn(browser, [], async function () { + let { SelectContentHelper } = ChromeUtils.importESModule( + "resource://gre/actors/SelectChild.sys.mjs" + ); + return ContentTaskUtils.waitForCondition(() => !SelectContentHelper.open); + }); + + if (mode == "escape") { + EventUtils.synthesizeKey("KEY_Escape", {}, win); + } else if (mode == "enter") { + EventUtils.synthesizeKey("KEY_Enter", {}, win); + } else if (mode == "click") { + let popup = win.document.getElementById("ContentSelectDropdown").menupopup; + EventUtils.synthesizeMouseAtCenter(popup.lastElementChild, {}, win); + } + + return selectClosedPromise; +} |