| <html><head></head> |
| <body> |
| <p>This test verifies that the correct sequence of keyboard events is generated for a keypress for certain special keys. To test manually, press keys and compare results to other browsers.</p> |
| <input type="text"></input> |
| <div id="log"></div> |
| |
| <script> |
| function log(msg) { |
| document.getElementById("log").innerHTML+= msg + "<br>"; |
| } |
| |
| function logEvent(e) { |
| var target = e.target; |
| var type = e.type; |
| |
| var info = target.tagName + " - " + type + ' - '; |
| if (type == "textInput") { |
| info += e.data; |
| } else if (type == "keydown" || type == "keypress" || type == "keyup") { |
| info += [e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.getModifierState('CapsLock')] + |
| ' - ' + e.key + |
| ' - ' + e.code + |
| ' - ' + e.keyIdentifier + |
| ' - ' + e.keyCode + |
| ' - ' + e.charCode; |
| } |
| info += '. Value: "' + target.value + '".'; |
| log(info); |
| } |
| |
| log("target - type - " + ["ctrlKey", "altKey", "shiftKey", "metaKey", "capsLockKey"] |
| + ' - ' + "key" |
| + ' - ' + "code" |
| + ' - ' + "keyIdentifier" |
| + ' - ' + "keyCode" |
| + ' - ' + "charCode"); |
| |
| var input = document.getElementsByTagName("input")[0]; |
| input.addEventListener('textInput', logEvent, false); |
| input.addEventListener('keypress', logEvent, false); |
| input.addEventListener('keydown', logEvent, false); |
| input.addEventListener('keyup', logEvent, false); |
| input.focus(); |
| |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| log("<br>Ampersand:"); |
| eventSender.keyDown("7", ["shiftKey"]); |
| log("<br>Backspace:"); |
| eventSender.keyDown("\x08", []); |
| log("<br>Percent:"); |
| eventSender.keyDown("5", ["shiftKey"]); |
| log("<br>Backspace:"); |
| eventSender.keyDown("\x08", []); |
| log("<br>Left parenthesis:"); |
| eventSender.keyDown("9", ["shiftKey"]); |
| log("<br>Backspace:"); |
| eventSender.keyDown("\x08", []); |
| log("<br>Right parenthesis:"); |
| eventSender.keyDown("0", ["shiftKey"]); |
| log("<br>Backspace:"); |
| eventSender.keyDown("\x08", []); |
| log("<br>Print screen:"); |
| eventSender.keyDown("printScreen", []); |
| log("<br>'a' key with Caps Lock:"); |
| eventSender.keyDown("a", ["capsLockKey"]); |
| } |
| </script> |
| </body></html> |