gecko-dev/dom/events/test/test_bug493251.html
Masayuki Nakano 8917ac460f Bug 1436926 - part 2: Remove unnecessary KeyboardEvent.code specification of callers of EventUtils.synthesizeKey() r=smaug
Now, callers of EventUtils.synthesizeKey() don't need to specify
KeyboardEvent.code value anymore if they assume that active keyboard layout
is US keyboard layout.

Note that this patch changes the meaning of only test_bug551434.html.
Some callers in it don't match the key value and code value but that looks
like that they don't checking such odd keyboard events.  So, they must be
bug of the test.

MozReview-Commit-ID: Itxo7yZ9rkK

--HG--
extra : rebase_source : 856ef3715c924ca16e993ea57d92d1243b5cc6be
2018-02-09 19:17:26 +09:00

182 lines
6.4 KiB
HTML

<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=493251
-->
<head>
<title>Test for Bug 493251</title>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=493251">Mozilla Bug 493251</a>
<p id="display">
</p>
<div id="content" style="display: none">
</div>
<pre id="test">
<script type="application/javascript">
/** Test for Bug 493251 **/
var win;
var mouseDown = 0;
var mouseUp = 0;
var mouseClick = 0;
var keyDown = 0;
var keyPress = 0;
var keyUp = 0;
function suppressEventHandling(aSuppress) {
var utils = SpecialPowers.getDOMWindowUtils(win);
ok(true, "suppressEventHandling: aSuppress=" + aSuppress);
utils.suppressEventHandling(aSuppress);
}
function dispatchMouseEvent(aType, aX, aY, aButton, aClickCount, aModifiers) {
var utils = SpecialPowers.getDOMWindowUtils(win);
ok(true, "Dipatching mouse event: aType=" + aType + ", aX=" + aX + ", aY" +
aY + ", aButton=" + aButton + ", aClickCount=" + aClickCount +
", aModifiers=" + aModifiers);
utils.sendMouseEvent(aType, aX, aY, aButton, aClickCount, aModifiers);
}
function dumpEvent(aEvent) {
var detail = "target=" + aEvent.target + ", originalTarget=" +
aEvent.originalTarget + ", defaultPrevented=" +
aEvent.defaultPrevented + ", isTrusted=" + aEvent.isTrusted;
switch (aEvent.type) {
case "keydown":
case "keypress":
case "keyup":
detail += ", charCode=0x" + aEvent.charCode.toString(16) +
", keyCode=0x" + aEvent.keyCode.toString(16) +
", altKey=" + (aEvent.altKey ? "PRESSED" : "no") +
", ctrlKey=" + (aEvent.ctrlKey ? "PRESSED" : "no") +
", shiftKey=" + (aEvent.shiftKey ? "PRESSED" : "no") +
", metaKey=" + (aEvent.metaKey ? "PRESSED" : "no");
break;
case "mousedown":
case "mouseup":
case "click":
detail += ", screenX=" + aEvent.screenX + ", screenY=" + aEvent.screenY +
", clientX=" + aEvent.clientX + ", clientY=" + aEvent.clientY +
", altKey=" + (aEvent.altKey ? "PRESSED" : "no") +
", ctrlKey=" + (aEvent.ctrlKey ? "PRESSED" : "no") +
", shiftKey=" + (aEvent.shiftKey ? "PRESSED" : "no") +
", metaKey=" + (aEvent.metaKey ? "PRESSED" : "no") +
", button=" + aEvent.button +
", relatedTarget=" + aEvent.relatedTarget;
break;
}
ok(true, aEvent.type + " event is handled: " + detail);
var fm = SpecialPowers.Cc["@mozilla.org/focus-manager;1"].
getService(SpecialPowers.Ci.nsIFocusManager);
ok(true, "focused element is \"" + fm.focusedElement +
"\" and focused window is \"" + fm.focusedWindow +
"\" (the testing window is \"" + win + "\"");
}
function doTest() {
win.document.getElementsByTagName("input")[0].focus();
win.addEventListener("keydown",
function(e) { dumpEvent(e); ++keyDown; }, true);
win.addEventListener("keypress",
function(e) { dumpEvent(e); ++keyPress; }, true);
win.addEventListener("keyup",
function(e) { dumpEvent(e); ++keyUp; }, true);
win.addEventListener("mousedown",
function(e) { dumpEvent(e); ++mouseDown; }, true);
win.addEventListener("mouseup",
function(e) { dumpEvent(e); ++mouseUp; }, true);
win.addEventListener("click",
function(e) { dumpEvent(e); ++mouseClick; }, true);
ok(true, "doTest #1...");
synthesizeKey("a", {}, win);
is(keyDown, 1, "Wrong number events (1)");
is(keyPress, 1, "Wrong number events (2)");
is(keyUp, 1, "Wrong number events (3)");
ok(true, "doTest #2...");
suppressEventHandling(true);
synthesizeKey("a", {}, win);
is(keyDown, 1, "Wrong number events (4)");
is(keyPress, 1, "Wrong number events (5)");
is(keyUp, 1, "Wrong number events (6)");
suppressEventHandling(false);
is(keyDown, 1, "Wrong number events (7)");
is(keyPress, 1, "Wrong number events (8)");
is(keyUp, 1, "Wrong number events (9)");
setTimeout(continueTest1, 0);
}
function continueTest1() {
ok(true, "continueTest1...");
win.addEventListener("keydown", () => { suppressEventHandling(true); }, {once: true});
synthesizeKey("a", {}, win);
is(keyDown, 2, "Wrong number events (10)");
is(keyPress, 1, "Wrong number events (11)");
is(keyUp, 1, "Wrong number events (12)");
suppressEventHandling(false);
setTimeout(continueTest2, 0);
}
function continueTest2() {
ok(true, "continueTest2 #1...");
is(keyDown, 2, "Wrong number events (13)");
is(keyPress, 2, "Wrong number events (14)");
is(keyUp, 2, "Wrong number events (15)");
dispatchMouseEvent("mousedown", 5, 5, 0, 1, 0);
dispatchMouseEvent("mouseup", 5, 5, 0, 1, 0);
is(mouseDown, 1, "Wrong number events (16)");
is(mouseUp, 1, "Wrong number events (17)");
is(mouseClick, 1, "Wrong number events (18)");
ok(true, "continueTest2 #2...");
suppressEventHandling(true);
dispatchMouseEvent("mousedown", 5, 5, 0, 1, 0);
dispatchMouseEvent("mouseup", 5, 5, 0, 1, 0);
suppressEventHandling(false);
is(mouseDown, 1, "Wrong number events (19)");
is(mouseUp, 1, "Wrong number events (20)");
is(mouseClick, 1, "Wrong number events (21)");
setTimeout(continueTest3, 0);
}
function continueTest3() {
ok(true, "continueTest3...");
dispatchMouseEvent("mousedown", 5, 5, 0, 1, 0);
suppressEventHandling(true);
dispatchMouseEvent("mouseup", 5, 5, 0, 1, 0);
suppressEventHandling(false);
setTimeout(continueTest4, 1000);
}
function continueTest4() {
ok(true, "continueTest4...");
is(mouseDown, 2, "Wrong number events (19)");
is(mouseUp, 2, "Wrong number events (20)");
is(mouseClick, 2, "Wrong number events (21)");
win.close();
SimpleTest.finish();
}
SimpleTest.waitForExplicitFinish();
SimpleTest.requestFlakyTimeout("untriaged");
win = window.open("window_bug493251.html", "_blank" , "width=500,height=500");
</script>
</pre>
</body>
</html>