| <body |
| onkeypress="log(eventInfo(event))" |
| onkeydown="log(eventInfo(event))" |
| onkeyup="log(eventInfo(event))"> |
| <p>Test that arrow keys do not dispatch keypress events even if there is no default handler.</p> |
| <p>To test manually, press arrow keys and verify that no keypress events are logged.</p> |
| <div id="log"></div> |
| |
| <script> |
| function log(msg) { |
| document.getElementById("log").innerHTML+= msg + "<br />"; |
| } |
| |
| |
| function locationName(code) { |
| switch (code) { |
| case 0: |
| return "DOM_KEY_LOCATION_STANDARD"; |
| case 1: |
| return "DOM_KEY_LOCATION_LEFT"; |
| case 2: |
| return "DOM_KEY_LOCATION_RIGHT"; |
| case 3: |
| return "DOM_KEY_LOCATION_NUMPAD"; |
| default: |
| return code.toString(); |
| } |
| } |
| |
| function eventInfo(event, where) { |
| try { |
| if (!event) |
| event = window.event; |
| target = event.srcElement ? event.srcElement : event.target; |
| if (event.type == "textInput") |
| return (where ? "(" + where + ") " : "") + target.tagName + " - " + event.type + " - " + event.data |
| + '. Value: "' + target.value + '".'; |
| else if (event.type == "keydown" || event.type == "keypress" || event.type == "keyup") |
| return (where ? "(" + where + ") " : "") + target.tagName |
| + (target.tagName == "INPUT" ? " " + target.type : "") |
| + " - " + event.type |
| + ' - ' + [event.ctrlKey, event.altKey, event.shiftKey, event.metaKey] |
| + ' - ' + event.keyIdentifier |
| + ' - ' + (event.location === undefined ? "undefined" : locationName(event.location)) |
| + ' - ' + event.keyCode |
| + ' - ' + event.charCode; |
| |
| } catch (ex) { |
| alert(ex); |
| } |
| } |
| log("target - type - " + ["ctrlKey", "altKey", "shiftKey", "metaKey"] |
| + ' - ' + "keyIdentifier" |
| + ' - ' + "location" |
| + ' - ' + "keyCode" |
| + ' - ' + "charCode"); |
| |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| eventSender.keyDown("leftArrow", []); |
| } |
| |
| </script> |
| |
| </body> |