Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 <!DOCTYPE html> | |
| 2 <html> | |
| 3 <head> | |
| 4 <link rel="help" href="http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardE vent-getModifierState" /> | |
| 5 <script src="../js/resources/js-test-pre.js"></script> | |
| 6 </head> | |
| 7 <body> | |
| 8 <script> | |
| 9 description("Tests KeyboardEvent.getModifierState()"); | |
| 10 | |
| 11 var lastKeyboardEvent; | |
| 12 | |
| 13 function recordKeyEvent(ev) { | |
| 14 ev = ev || event; | |
|
arv (Not doing code reviews)
2013/07/31 16:22:54
why?
event is not defined (unless you count the d
| |
| 15 ev.keyCode = (ev.which || ev.keyCode); | |
|
arv (Not doing code reviews)
2013/07/31 16:22:54
This looks bad. Why are we assigning keyCode to `w
| |
| 16 if (window.eventSender) { | |
| 17 lastKeyboardEvent = ev; | |
| 18 } else { | |
| 19 debug("Type=" + ev.type + "," + | |
| 20 "keyCode=" + ev.keyCode + ',' + | |
| 21 "ctrlKey=" + ev.getModifierState("Control") + "," + | |
| 22 "shiftKey=" + ev.getModifierState("Shift") + "," + | |
| 23 "altKey=" + ev.getModifierState("Alt") + "," + | |
| 24 "metaKey=" + ev.getModifierState("Meta")); | |
| 25 } | |
| 26 } | |
| 27 | |
| 28 var allEventModifiers = ["ctrlKey", "shiftKey", "metaKey", "altKey"]; | |
| 29 var allKeyModifiers = ["Control", "Shift", "Meta", "Alt"]; | |
| 30 | |
| 31 function testKeyEventWithModifiers(evString, eventModifiers, expectedKeyCode) { | |
| 32 eventSender.keyDown(evString, eventModifiers); | |
| 33 shouldBe("lastKeyboardEvent.type", '"keydown"'); | |
| 34 shouldEvaluateTo("lastKeyboardEvent.keyCode", expectedKeyCode); | |
| 35 for (var i = 0; i < allEventModifiers.length; ++i) { | |
| 36 var expectedModifierState = eventModifiers.indexOf(allEventModifiers[i]) >= 0; | |
| 37 shouldEvaluateTo("lastKeyboardEvent.getModifierState('" + allKeyModifier s[i] + "')", expectedModifierState); | |
| 38 shouldEvaluateTo("lastKeyboardEvent." + allEventModifiers[i], expectedMo difierState); | |
| 39 } | |
| 40 } | |
| 41 | |
| 42 var textarea = document.createElement("textarea"); | |
| 43 textarea.addEventListener("keydown", recordKeyEvent, false); | |
| 44 document.body.insertBefore(textarea, document.body.firstChild); | |
| 45 textarea.focus(); | |
| 46 | |
| 47 if (window.eventSender) { | |
| 48 testKeyEventWithModifiers("pageUp", ["ctrlKey"], 33); | |
| 49 testKeyEventWithModifiers("pageDown", ["shiftKey"], 34); | |
| 50 testKeyEventWithModifiers("home", ["altKey"], 36); | |
| 51 testKeyEventWithModifiers("end", ["metaKey"], 35); | |
| 52 testKeyEventWithModifiers("leftArrow", ["ctrlKey", "shiftKey"], 37); | |
| 53 testKeyEventWithModifiers("rightArrow", ["ctrlKey", "shiftKey", "altKey"], 3 9); | |
| 54 testKeyEventWithModifiers("upArrow", ["ctrlKey", "shiftKey", "altKey", "meta Key"], 38); | |
| 55 } else { | |
| 56 debug("This test requires DumpRenderTree. To manually test, 1) focus on the textarea above and press keys while holding modifiers 2) see if the ctrlKey/shi ftKey/altKey/metaKey= values are correctly reported."); | |
| 57 } | |
| 58 </script> | |
| 59 <script src="../js/resources/js-test-post.js"></script> | |
| 60 </body> | |
| 61 </html> | |
| OLD | NEW |