diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /widget/tests/test_key_event_counts.xhtml | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'widget/tests/test_key_event_counts.xhtml')
-rw-r--r-- | widget/tests/test_key_event_counts.xhtml | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/widget/tests/test_key_event_counts.xhtml b/widget/tests/test_key_event_counts.xhtml new file mode 100644 index 0000000000..6eda6a52fb --- /dev/null +++ b/widget/tests/test_key_event_counts.xhtml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<?xml-stylesheet href="chrome://global/skin" type="text/css"?> +<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?> + +<!-- We've had issues on Mac OS X where native key events either don't get processed + or they get processed twice. This test tests some of those scenarios. --> + +<window id="window1" title="Test Key Event Counts" onload="runTest()" + xmlns:html="http://www.w3.org/1999/xhtml" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> + + <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/> + <script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"/> + <script src="chrome://mochikit/content/tests/SimpleTest/NativeKeyCodes.js"/> + + <!-- test results are displayed in the html:body --> + <body xmlns="http://www.w3.org/1999/xhtml"> + <p id="display"></p> + <div id="content" style="display: none"></div> + <pre id="test"></pre> + </body> + + <script type="application/javascript"><![CDATA[ + var gKeyPressEventCount = 0; + var gKeyDownEventCount = 0; + + function onKeyDown(e) + { + gKeyDownEventCount++; + } + + function onKeyPress(e) + { + gKeyPressEventCount++; + e.preventDefault(); + } + + function* testBody() + { + window.addEventListener("keydown", onKeyDown); + window.addEventListener("keypress", onKeyPress); + + // Test ctrl-tab + gKeyDownEventCount = 0; + gKeyPressEventCount = 0; + yield synthesizeNativeKey(KEYBOARD_LAYOUT_EN_US, MAC_VK_Tab, {ctrlKey:1}, "\t", "\t", continueTest); + is(gKeyDownEventCount, 1); + is(gKeyPressEventCount, 0, "ctrl-tab should be consumed by tabbox of tabbrowser at keydown"); + + // Test cmd+shift+a + gKeyDownEventCount = 0; + gKeyPressEventCount = 0; + yield synthesizeNativeKey(KEYBOARD_LAYOUT_EN_US, MAC_VK_ANSI_A, {metaKey:1, shiftKey:1}, "a", "A", continueTest); + is(gKeyDownEventCount, 1); + is(gKeyPressEventCount, 1); + + // Test cmd-; + gKeyDownEventCount = 0; + gKeyPressEventCount = 0; + yield synthesizeNativeKey(KEYBOARD_LAYOUT_EN_US, MAC_VK_ANSI_Semicolon, {metaKey:1}, ";", ";", continueTest); + is(gKeyDownEventCount, 1); + is(gKeyPressEventCount, 1); + + window.removeEventListener("keydown", onKeyDown); + window.removeEventListener("keypress", onKeyPress); + } + + var gTestContinuation = null; + + function continueTest() + { + if (!gTestContinuation) { + gTestContinuation = testBody(); + } + var ret = gTestContinuation.next(); + if (ret.done) { + SimpleTest.finish(); + } else { + is(ret.value, true, "Key synthesized successfully"); + } + } + + function runTest() + { + SimpleTest.waitForExplicitFinish(); + continueTest(); + } + ]]></script> + +</window> |