65 lines
1.6 KiB
HTML
65 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta name="viewport" content="width=device-width">
|
|
<script src="../../../resources/ui-helper.js"></script>
|
|
<script>
|
|
if (window.testRunner) {
|
|
testRunner.dumpAsText();
|
|
testRunner.waitUntilDone();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onkeydown="handleKeyDown(event)" onkeyup="handleKeyUp(event)">
|
|
<p>This tests that DOM keydown and keyup events are dispatched to a non-editable <body> on iOS when pressing the arrow keys on a hardware keyboard. To run this test manually, verify that two messages are emitted when you press the following keys: ↑, ↓, ←, →.</p>
|
|
<pre id="console"></pre>
|
|
<script>
|
|
var remainingKeysToPress = ["upArrow", "downArrow", "leftArrow", "rightArrow"]
|
|
|
|
async function nextKeyPress()
|
|
{
|
|
if (!remainingKeysToPress.length) {
|
|
if (window.testRunner)
|
|
testRunner.notifyDone();
|
|
return;
|
|
}
|
|
let nextKey = remainingKeysToPress.shift();
|
|
UIHelper.typeCharacter(nextKey);
|
|
}
|
|
|
|
function handleKeyDown(event)
|
|
{
|
|
logKeyEvent(event);
|
|
}
|
|
|
|
function handleKeyUp(event)
|
|
{
|
|
logKeyEvent(event);
|
|
nextKeyPress();
|
|
}
|
|
|
|
function log(message)
|
|
{
|
|
document.getElementById("console").appendChild(document.createTextNode(message + "\n"));
|
|
}
|
|
|
|
function logKeyEvent(event)
|
|
{
|
|
let pieces = [];
|
|
for (let propertyName of ["type", "key", "code", "keyIdentifier", "keyCode", "charCode", "keyCode", "which"])
|
|
pieces.push(`${propertyName}: ${event[propertyName]}`);
|
|
log(pieces.join(", "));
|
|
}
|
|
|
|
function runTest()
|
|
{
|
|
if (!window.testRunner)
|
|
return;
|
|
nextKeyPress();
|
|
}
|
|
|
|
runTest();
|
|
</script>
|
|
</body>
|
|
</html>
|