| OLD | NEW |
| 1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> | 1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <script src="../js/resources/js-test-pre.js"></script> | 4 <script src="../js/resources/js-test-pre.js"></script> |
| 5 </head> | 5 </head> |
| 6 <body> | 6 <body> |
| 7 <script> | 7 <script> |
| 8 description("This tests keyboard events with KeyLocationCode argument."); | 8 description("This tests keyboard events with KeyLocationCode argument."); |
| 9 | 9 |
| 10 var lastKeyboardEvent; | 10 var lastKeyboardEvent; |
| 11 var VK_SHIFT = 16; | 11 var VK_SHIFT = 16; |
| 12 var VK_CONTROL = 17; | 12 var VK_CONTROL = 17; |
| 13 var VK_MENU = 18; | 13 var VK_MENU = 18; |
| 14 var KEY_LOCATION_LEFT = 1; | 14 var KEY_LOCATION_LEFT = 1; |
| 15 var KEY_LOCATION_RIGHT = 2; | 15 var KEY_LOCATION_RIGHT = 2; |
| 16 | 16 |
| 17 function recordKeyEvent(ev) { | 17 function recordKeyEvent(ev) { |
| 18 ev = ev || event; | 18 ev = ev || event; |
| 19 ev.keyCode = (ev.which || ev.keyCode); | 19 ev.keyCode = (ev.which || ev.keyCode); |
| 20 if (window.eventSender) { | 20 if (window.eventSender) { |
| 21 lastKeyboardEvent = ev; | 21 lastKeyboardEvent = ev; |
| 22 } else { | 22 } else { |
| 23 debug('Type=' + ev.type + ',' + | 23 debug('Type=' + ev.type + ',' + |
| 24 'keyCode=' + ev.keyCode + ',' + | 24 'keyCode=' + ev.keyCode + ',' + |
| 25 'ctrlKey=' + ev.ctrlKey + ',' + | 25 'ctrlKey=' + ev.ctrlKey + ',' + |
| 26 'shiftKey=' + ev.shiftKey + ',' + | 26 'shiftKey=' + ev.shiftKey + ',' + |
| 27 'altKey=' + ev.altKey + ',' + | 27 'altKey=' + ev.altKey + ',' + |
| 28 'metaKey=' + ev.metaKey + ',' + | 28 'metaKey=' + ev.metaKey + ',' + |
| 29 'location=' + ev.keyLocation); | 29 'location=' + ev.location); |
| 30 } | 30 } |
| 31 } | 31 } |
| 32 | 32 |
| 33 function testKeyEventWithLocation(evString, expectedKeyCode, expectedLocation) { | 33 function testKeyEventWithLocation(evString, expectedKeyCode, expectedLocation) { |
| 34 eventSender.keyDown(evString, []); | 34 eventSender.keyDown(evString, []); |
| 35 shouldBe("lastKeyboardEvent.type", '"keydown"'); | 35 shouldBe("lastKeyboardEvent.type", '"keydown"'); |
| 36 shouldEvaluateTo("lastKeyboardEvent.keyCode", expectedKeyCode); | 36 shouldEvaluateTo("lastKeyboardEvent.keyCode", expectedKeyCode); |
| 37 shouldEvaluateTo("lastKeyboardEvent.keyLocation", expectedLocation); | 37 shouldEvaluateTo("lastKeyboardEvent.location", expectedLocation); |
| 38 } | 38 } |
| 39 | 39 |
| 40 var textarea = document.createElement("textarea"); | 40 var textarea = document.createElement("textarea"); |
| 41 textarea.addEventListener("keydown", recordKeyEvent, false); | 41 textarea.addEventListener("keydown", recordKeyEvent, false); |
| 42 document.body.insertBefore(textarea, document.body.firstChild); | 42 document.body.insertBefore(textarea, document.body.firstChild); |
| 43 textarea.focus(); | 43 textarea.focus(); |
| 44 | 44 |
| 45 if (window.eventSender) { | 45 if (window.eventSender) { |
| 46 // location=0 indicates that we send events as standard keys. | 46 // location=0 indicates that we send events as standard keys. |
| 47 testKeyEventWithLocation("leftShift", VK_SHIFT, "KEY_LOCATION_LEFT"); | 47 testKeyEventWithLocation("leftShift", VK_SHIFT, "KEY_LOCATION_LEFT"); |
| 48 testKeyEventWithLocation("leftControl", VK_CONTROL, "KEY_LOCATION_LEFT"); | 48 testKeyEventWithLocation("leftControl", VK_CONTROL, "KEY_LOCATION_LEFT"); |
| 49 testKeyEventWithLocation("leftAlt", VK_MENU, "KEY_LOCATION_LEFT"); | 49 testKeyEventWithLocation("leftAlt", VK_MENU, "KEY_LOCATION_LEFT"); |
| 50 | 50 |
| 51 testKeyEventWithLocation("rightShift", VK_SHIFT, "KEY_LOCATION_RIGHT"); | 51 testKeyEventWithLocation("rightShift", VK_SHIFT, "KEY_LOCATION_RIGHT"); |
| 52 testKeyEventWithLocation("rightControl", VK_CONTROL, "KEY_LOCATION_RIGHT"); | 52 testKeyEventWithLocation("rightControl", VK_CONTROL, "KEY_LOCATION_RIGHT"); |
| 53 testKeyEventWithLocation("rightAlt", VK_MENU, "KEY_LOCATION_RIGHT"); | 53 testKeyEventWithLocation("rightAlt", VK_MENU, "KEY_LOCATION_RIGHT"); |
| 54 } else { | 54 } else { |
| 55 debug("This test requires DumpRenderTree."); | 55 debug("This test requires DumpRenderTree."); |
| 56 } | 56 } |
| 57 </script> | 57 </script> |
| 58 <script src="../js/resources/js-test-post.js"></script> | 58 <script src="../js/resources/js-test-post.js"></script> |
| 59 </body> | 59 </body> |
| 60 </html> | 60 </html> |
| OLD | NEW |