summaryrefslogtreecommitdiffstats
path: root/dom/tests/browser/browser_cancel_keydown_keypress_event.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/tests/browser/browser_cancel_keydown_keypress_event.js')
-rw-r--r--dom/tests/browser/browser_cancel_keydown_keypress_event.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/dom/tests/browser/browser_cancel_keydown_keypress_event.js b/dom/tests/browser/browser_cancel_keydown_keypress_event.js
new file mode 100644
index 0000000000..de08aa17e9
--- /dev/null
+++ b/dom/tests/browser/browser_cancel_keydown_keypress_event.js
@@ -0,0 +1,41 @@
+const URL =
+ "https://example.com/browser/dom/tests/browser/prevent_return_key.html";
+
+const { PromptTestUtils } = ChromeUtils.importESModule(
+ "resource://testing-common/PromptTestUtils.sys.mjs"
+);
+
+// Wait for alert dialog and dismiss it immediately.
+function awaitAndCloseAlertDialog(browser) {
+ return PromptTestUtils.handleNextPrompt(
+ browser,
+ { modalType: Services.prompt.MODAL_TYPE_CONTENT, promptType: "alert" },
+ { buttonNumClick: 0 }
+ );
+}
+
+add_task(async function () {
+ let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, URL);
+ let browser = tab.linkedBrowser;
+
+ // Focus and enter random text on input.
+ await SpecialPowers.spawn(browser, [], async function () {
+ let input = content.document.getElementById("input");
+ input.focus();
+ input.value = "abcd";
+ });
+
+ // Send return key (cross process) to submit the form implicitly.
+ let dialogShown = awaitAndCloseAlertDialog(browser);
+ EventUtils.synthesizeKey("KEY_Enter");
+ await dialogShown;
+
+ // Check that the form should not have been submitted.
+ await SpecialPowers.spawn(browser, [], async function () {
+ let result = content.document.getElementById("result").innerHTML;
+ info("submit result: " + result);
+ is(result, "not submitted", "form should not have submitted");
+ });
+
+ gBrowser.removeCurrentTab();
+});