48 lines
1.6 KiB
HTML
48 lines
1.6 KiB
HTML
<p>This tests that modifier keys are propagated to the fake mouse event created when you press return and a link has focus.</p>
|
|
<p>If the test succeeds, you should see six "PASS" messages below.</p>
|
|
<p>This is the <a id="link" href="#" onclick="checkKeyState(event)" onmousedown="checkKeyState(event)" onmouseuup="checkKeyState(event)">link</a> used for testing.</p>
|
|
<pre id="console">
|
|
</pre>
|
|
<script>
|
|
|
|
if (window.testRunner)
|
|
testRunner.dumpAsText();
|
|
|
|
var link = document.getElementById("link");
|
|
link.focus();
|
|
|
|
var expectedCtrl;
|
|
var expectedAlt;
|
|
var expectedShift;
|
|
var expectedMeta;
|
|
|
|
function test(ctrlKey, altKey, shiftKey, metaKey)
|
|
{
|
|
expectedCtrl = ctrlKey;
|
|
expectedAlt = altKey;
|
|
expectedShift = shiftKey;
|
|
expectedMeta = metaKey;
|
|
var event = document.createEvent("KeyboardEvents");
|
|
event.initKeyboardEvent("keydown", true, true, document.defaultView, "Enter", 0, ctrlKey, altKey, shiftKey, metaKey, false);
|
|
link.dispatchEvent(event);
|
|
}
|
|
|
|
function checkKeyState(event)
|
|
{
|
|
if (event.ctrlKey == expectedCtrl && event.altKey == expectedAlt && event.shiftKey == expectedShift && event.metaKey == expectedMeta)
|
|
document.getElementById("console").innerHTML += "PASS: " + event.type + " event had all the right key state.\n";
|
|
else
|
|
document.getElementById("console").innerHTML += "FAIL: " + event.type + " event did not have the right key state.\n";
|
|
}
|
|
|
|
test(false, false, false, false);
|
|
test(true, false, false, false);
|
|
test(false, true, false, false);
|
|
test(false, false, true, false);
|
|
test(false, false, false, true);
|
|
test(true, true, true, true);
|
|
|
|
link.blur();
|
|
|
|
</script>
|