| OLD | NEW |
| 1 <!DOCTYPE HTML> | 1 <!DOCTYPE HTML> |
| 2 <script src="../../../resources/js-test.js"></script> | 2 <script src="../../../resources/js-test.js"></script> |
| 3 <script src="../resources/input-modifiers.js"></script> | 3 <script src="../resources/input-modifiers.js"></script> |
| 4 <style> | 4 <style> |
| 5 div { | 5 div.box { |
| 6 margin: 10px; | 6 margin: 10px; |
| 7 padding: 50px; | 7 padding: 50px; |
| 8 float: left; | 8 float: left; |
| 9 } | 9 } |
| 10 #console { | |
| 11 padding: 0px; | |
| 12 float: none; | |
| 13 } | |
| 14 </style> | 10 </style> |
| 15 | 11 |
| 16 <div id="target" style="background-color:red"> | 12 <div id="target" class="box" style="background-color:red"> |
| 17 </div> | 13 </div> |
| 18 | 14 |
| 19 <div id="console"></div> | 15 <div id="console"></div> |
| 20 | 16 |
| 21 <script> | 17 <script> |
| 22 description("Verifies that pointer event parameters are correct when fired for m
ouse events."); | 18 description("Verifies that pointer event parameters are correct when fired for m
ouse events."); |
| 23 | 19 |
| 24 // TODO(mustaq): Grow the list as we add support for more PEs | 20 // TODO(mustaq): Grow the list as we add support for more PEs |
| 25 var testEventList = ["mouseenter", "mouseleave", "mouseover", "mouseout", | 21 var testEventList = ["mouseenter", "mouseleave", "mouseover", "mouseout", "mouse
up", "mousedown", |
| 26 "pointerenter", "pointerleave", "pointerover", "pointerout"]; | 22 "pointerenter", "pointerleave", "pointerover", "pointerout",
"pointerup", "pointerdown"]; |
| 27 var lastPointerEvent = null; | 23 var lastPointerEvent = null; |
| 28 | 24 |
| 25 var checkKeyModifiers = false; |
| 26 |
| 29 var numericAttributes = [ | 27 var numericAttributes = [ |
| 30 "clientX", | 28 "clientX", |
| 31 "clientY", | 29 "clientY", |
| 32 "layerX", | 30 "layerX", |
| 33 "layerY", | 31 "layerY", |
| 34 "movementX", | 32 "movementX", |
| 35 "movementY", | 33 "movementY", |
| 36 "offsetX", | 34 "offsetX", |
| 37 "offsetY", | 35 "offsetY", |
| 38 "pageX", | 36 "pageX", |
| (...skipping 12 matching lines...) Expand all Loading... |
| 51 testEventList.forEach(function(eventName) { | 49 testEventList.forEach(function(eventName) { |
| 52 | 50 |
| 53 targetDiv.addEventListener(eventName, function(event) { | 51 targetDiv.addEventListener(eventName, function(event) { |
| 54 | 52 |
| 55 debug("Received " + event.type); | 53 debug("Received " + event.type); |
| 56 | 54 |
| 57 if (event.type.startsWith("pointer")) | 55 if (event.type.startsWith("pointer")) |
| 58 lastPointerEvent = event; | 56 lastPointerEvent = event; |
| 59 else { | 57 else { |
| 60 shouldBeNonNull("lastPointerEvent"); | 58 shouldBeNonNull("lastPointerEvent"); |
| 59 shouldBeEqualToString("lastPointerEvent.type", event.type.replace("mouse
", "pointer")); |
| 61 | 60 |
| 62 shouldBeEqualToString("lastPointerEvent.type", event.type.replace("mouse
", "pointer")); | 61 if (!checkKeyModifiers) { |
| 63 if (lastPointerEvent.type=="pointerenter" || lastPointerEvent.type=="poi
nterleave") { | 62 |
| 64 shouldBeFalse("lastPointerEvent.bubbles"); | 63 if (lastPointerEvent.type=="pointerenter" || lastPointerEvent.type=="p
ointerleave") { |
| 65 shouldBeFalse("lastPointerEvent.cancelable"); | 64 shouldBeFalse("lastPointerEvent.bubbles"); |
| 65 shouldBeFalse("lastPointerEvent.cancelable"); |
| 66 } else { |
| 67 shouldBeTrue("lastPointerEvent.bubbles"); |
| 68 shouldBeTrue("lastPointerEvent.cancelable"); |
| 69 } |
| 70 |
| 71 shouldBeEqualToNumber("lastPointerEvent.pointerId", 0); |
| 72 shouldBeEqualToString("lastPointerEvent.pointerType", "mouse"); |
| 73 shouldBeTrue("lastPointerEvent.isPrimary"); |
| 74 |
| 75 numericAttributes.forEach(function(attribute) { |
| 76 shouldBeEqualToNumber("lastPointerEvent." + attribute, eval("event."
+ attribute)); |
| 77 }); |
| 78 |
| 66 } else { | 79 } else { |
| 67 shouldBeTrue("lastPointerEvent.bubbles"); | 80 |
| 68 shouldBeTrue("lastPointerEvent.cancelable"); | 81 forEachModifier(function(attr, modifierName) { |
| 82 var getModifierStateStr = ".getModifierState('" + modifierName + "')
;" |
| 83 if (eval("event" + getModifierStateStr)) |
| 84 shouldBeTrue("lastPointerEvent" + getModifierStateStr); |
| 85 else |
| 86 shouldBeFalse("lastPointerEvent" + getModifierStateStr); |
| 87 }); |
| 88 |
| 69 } | 89 } |
| 70 | 90 |
| 71 shouldBeEqualToNumber("lastPointerEvent.pointerId", 0); | |
| 72 shouldBeEqualToString("lastPointerEvent.pointerType", "mouse"); | |
| 73 shouldBeTrue("lastPointerEvent.isPrimary"); | |
| 74 | |
| 75 numericAttributes.forEach(function(attribute) { | |
| 76 shouldBeEqualToNumber("lastPointerEvent." + attribute, eval("event." +
attribute)); | |
| 77 }); | |
| 78 | |
| 79 forEachModifier(function(attr, modifierName) { | |
| 80 var getModifierStateStr = ".getModifierState('" + modifierName + "');" | |
| 81 if (eval("event" + getModifierStateStr)) | |
| 82 shouldBeTrue("lastPointerEvent" + getModifierStateStr); | |
| 83 else | |
| 84 shouldBeFalse("lastPointerEvent" + getModifierStateStr); | |
| 85 }); | |
| 86 | |
| 87 lastPointerEvent = null; | 91 lastPointerEvent = null; |
| 88 } | 92 } |
| 89 }); | 93 }); |
| 90 | 94 |
| 91 }); | 95 }); |
| 92 } | 96 } |
| 93 | 97 |
| 94 function runTests() { | 98 function runTests() { |
| 95 var rect = document.getElementById("target").getBoundingClientRect(); | 99 var rect = document.getElementById("target").getBoundingClientRect(); |
| 100 |
| 101 debug("--- move mouse into target ---"); |
| 96 eventSender.mouseMoveTo(rect.left + 5, rect.top + 5); | 102 eventSender.mouseMoveTo(rect.left + 5, rect.top + 5); |
| 103 debug(""); |
| 104 |
| 105 debug("--- click each button ---"); |
| 106 for (var button = 0; button <=2; button++) { |
| 107 eventSender.mouseDown(button); |
| 108 eventSender.mouseUp(button); |
| 109 // TODO(crbug.com/548226): Investigate missing events in win_chromium_rel_ng
on 3rd down/up. |
| 110 } |
| 111 debug(""); |
| 112 |
| 113 debug("--- click with each modifier ---"); |
| 114 checkKeyModifiers = true; |
| 115 forEachModifier(function(attr, modifierName, eventSenderName) { |
| 116 eventSender.mouseDown(0, [eventSenderName]); |
| 117 eventSender.mouseUp(0, [eventSenderName]); |
| 118 }); |
| 119 checkKeyModifiers = false; |
| 120 debug(""); |
| 121 |
| 122 debug("--- move mouse out of target ---"); |
| 97 eventSender.mouseMoveTo(rect.left - 5, rect.top - 5); | 123 eventSender.mouseMoveTo(rect.left - 5, rect.top - 5); |
| 98 | |
| 99 //TODO(mustaq): add tests for buttons & modifierStates when doing pointerdown/
up. | |
| 100 } | 124 } |
| 101 | 125 |
| 102 init(); | 126 init(); |
| 103 if (window.eventSender) | 127 if (window.eventSender) |
| 104 runTests(); | 128 runTests(); |
| 105 else | 129 else |
| 106 debug("This test requires eventSender"); | 130 debug("This test requires eventSender"); |
| 107 | 131 |
| 108 </script> | 132 </script> |
| OLD | NEW |