diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /browser/base/content/test/forms/head.js | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
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; +} |