summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/forms/browser_selectpopup_toplevel.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--browser/base/content/test/forms/browser_selectpopup_toplevel.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/browser/base/content/test/forms/browser_selectpopup_toplevel.js b/browser/base/content/test/forms/browser_selectpopup_toplevel.js
new file mode 100644
index 0000000000..9b4fcd860a
--- /dev/null
+++ b/browser/base/content/test/forms/browser_selectpopup_toplevel.js
@@ -0,0 +1,25 @@
+/* Any copyright is dedicated to the Public Domain.
+ * https://creativecommons.org/publicdomain/zero/1.0/ */
+
+add_task(async function () {
+ let select = document.createElement("select");
+ select.appendChild(new Option("abc"));
+ select.appendChild(new Option("defg"));
+ registerCleanupFunction(() => select.remove());
+ document.body.appendChild(select);
+ let popupShownPromise = BrowserTestUtils.waitForSelectPopupShown(window);
+ // We intentionally turn off this a11y check, because the following click
+ // is sent on an arbitrary web content that is not expected to be tested
+ // by itself with the browser mochitests, therefore this rule check shall
+ // be ignored by a11y-checks suite.
+ AccessibilityUtils.setEnv({ labelRule: false });
+ EventUtils.synthesizeMouseAtCenter(select, {});
+ AccessibilityUtils.resetEnv();
+
+ let popup = await popupShownPromise;
+ ok(!!popup, "Should've shown the popup");
+ let items = popup.querySelectorAll("menuitem");
+ is(items.length, 2, "Should have two options");
+ is(items[0].textContent, "abc", "First option should be correct");
+ is(items[1].textContent, "defg", "First option should be correct");
+});