| 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.box { | 5 div.box { |
| 6 margin: 10px; | 6 margin: 10px; |
| 7 padding: 50px; | 7 padding: 50px; |
| 8 float: left; | 8 float: left; |
| 9 } | 9 } |
| 10 </style> | 10 </style> |
| 11 | 11 |
| 12 <div id="target" class="box" style="background-color:red"> | 12 <div id="target" class="box" style="background-color:red"> |
| 13 </div> | 13 </div> |
| 14 | 14 |
| 15 <div id="console"></div> | 15 <div id="console"></div> |
| 16 | 16 |
| 17 <script> | 17 <script> |
| 18 window.name = "mainWindow"; | 18 window.name = "mainWindow"; |
| 19 description("Verifies that pointer event parameters are correct when fired for m
ouse events."); | 19 description("Verifies that pointer event parameters are correct when fired throu
gh mouse events."); |
| 20 |
| 21 var checkKeyModifiers = false; |
| 22 |
| 23 var pointerType = ""; |
| 24 var penId = 0; |
| 25 var penPressure = 0; |
| 26 var penTiltX = 0; |
| 27 var penTiltY = 0; |
| 20 | 28 |
| 21 var testEventList = ["mouseenter", "mouseleave", "mouseover", "mouseout", "mouse
up", "mousedown", "mousemove", | 29 var testEventList = ["mouseenter", "mouseleave", "mouseover", "mouseout", "mouse
up", "mousedown", "mousemove", |
| 22 "pointerenter", "pointerleave", "pointerover", "pointerout",
"pointerup", "pointerdown", "pointermove"]; | 30 "pointerenter", "pointerleave", "pointerover", "pointerout",
"pointerup", "pointerdown", "pointermove"]; |
| 23 var lastPointerEvents = []; | 31 var lastPointerEvents = []; |
| 24 | 32 |
| 25 var checkKeyModifiers = false; | |
| 26 | |
| 27 var numericAttributes = [ | 33 var numericAttributes = [ |
| 28 "clientX", | 34 "clientX", |
| 29 "clientY", | 35 "clientY", |
| 30 "layerX", | 36 "layerX", |
| 31 "layerY", | 37 "layerY", |
| 32 "movementX", | 38 "movementX", |
| 33 "movementY", | 39 "movementY", |
| 34 "offsetX", | 40 "offsetX", |
| 35 "offsetY", | 41 "offsetY", |
| 36 "pageX", | 42 "pageX", |
| 37 "pageY", | 43 "pageY", |
| 38 "screenX", | 44 "screenX", |
| 39 "screenY", | 45 "screenY", |
| 40 "x", | 46 "x", |
| 41 "y", | 47 "y", |
| 42 "button", | 48 "button", |
| 43 "buttons", | 49 "buttons", |
| 44 "pressure", | 50 "pressure", |
| 51 "tiltX", |
| 52 "tiltY", |
| 45 "width", | 53 "width", |
| 46 "height", | 54 "height", |
| 47 ]; | 55 ]; |
| 48 | 56 |
| 49 function init() { | 57 function init() { |
| 50 var targetDiv = document.getElementById("target"); | 58 var targetDiv = document.getElementById("target"); |
| 51 | 59 |
| 52 testEventList.forEach(function(eventName) { | 60 testEventList.forEach(function(eventName) { |
| 53 | 61 |
| 54 targetDiv.addEventListener(eventName, function(event) { | 62 targetDiv.addEventListener(eventName, function(event) { |
| (...skipping 13 matching lines...) Expand all Loading... |
| 68 if (!checkKeyModifiers) { | 76 if (!checkKeyModifiers) { |
| 69 | 77 |
| 70 if (lastPointerEvents[0].type=="pointerenter" || lastPointerEvents[0].
type=="pointerleave") { | 78 if (lastPointerEvents[0].type=="pointerenter" || lastPointerEvents[0].
type=="pointerleave") { |
| 71 shouldBeFalse("lastPointerEvents[0].bubbles"); | 79 shouldBeFalse("lastPointerEvents[0].bubbles"); |
| 72 shouldBeFalse("lastPointerEvents[0].cancelable"); | 80 shouldBeFalse("lastPointerEvents[0].cancelable"); |
| 73 } else { | 81 } else { |
| 74 shouldBeTrue("lastPointerEvents[0].bubbles"); | 82 shouldBeTrue("lastPointerEvents[0].bubbles"); |
| 75 shouldBeTrue("lastPointerEvents[0].cancelable"); | 83 shouldBeTrue("lastPointerEvents[0].cancelable"); |
| 76 } | 84 } |
| 77 | 85 |
| 78 shouldBeEqualToNumber("lastPointerEvents[0].pointerId", 1); | 86 shouldBeEqualToNumber("lastPointerEvents[0].pointerId", |
| 79 shouldBeEqualToString("lastPointerEvents[0].pointerType", "mouse"); | 87 (pointerType == "mouse")? 1 : penId); |
| 88 shouldBeEqualToString("lastPointerEvents[0].pointerType", pointerType)
; |
| 80 shouldBeTrue("lastPointerEvents[0].isPrimary"); | 89 shouldBeTrue("lastPointerEvents[0].isPrimary"); |
| 81 | 90 |
| 82 numericAttributes.forEach(function(attribute) { | 91 numericAttributes.forEach(function(attribute) { |
| 83 var expectedValue = eval("event." + attribute); | 92 var expectedValue = eval("event." + attribute); |
| 84 if (attribute == "button" && event.type != "mousedown" && event.type
!= "mouseup") | 93 if (attribute == "button" && event.type != "mousedown" && event.type
!= "mouseup") |
| 85 expectedValue = -1; | 94 expectedValue = -1; |
| 86 if (attribute == "width" || attribute == "height") | 95 else if (attribute == "width" || attribute == "height") |
| 87 expectedValue = 1; | 96 expectedValue = 1; |
| 88 if (attribute == "pressure") { | 97 else if (attribute == "pressure") { |
| 89 if (event.buttons == 0) | 98 if (pointerType == "mouse") |
| 90 expectedValue = 0.0; | 99 expectedValue = (event.buttons == 0)? 0.0 : 0.5; |
| 91 else | 100 else |
| 92 expectedValue = 0.5; | 101 expectedValue = penPressure; |
| 93 } | 102 } |
| 103 else if (attribute == "tiltX") |
| 104 expectedValue = (pointerType == "mouse")? 0 : penTiltX; |
| 105 else if (attribute == "tiltY") |
| 106 expectedValue = (pointerType == "mouse")? 0 : penTiltY; |
| 107 |
| 94 shouldBeEqualToNumber("lastPointerEvents[0]." + attribute, expectedV
alue); | 108 shouldBeEqualToNumber("lastPointerEvents[0]." + attribute, expectedV
alue); |
| 95 }); | 109 }); |
| 96 shouldBeEqualToString("lastPointerEvents[0].view.name", "mainWindow"); | 110 shouldBeEqualToString("lastPointerEvents[0].view.name", "mainWindow"); |
| 97 | 111 |
| 98 } else { | 112 } else { |
| 99 | 113 |
| 100 forEachModifier(function(attr, modifierName) { | 114 forEachModifier(function(attr, modifierName) { |
| 101 var getModifierStateStr = ".getModifierState('" + modifierName + "')
;" | 115 var getModifierStateStr = ".getModifierState('" + modifierName + "')
;" |
| 102 if (eval("event" + getModifierStateStr)) | 116 if (eval("event" + getModifierStateStr)) |
| 103 shouldBeTrue("lastPointerEvents[0]" + getModifierStateStr); | 117 shouldBeTrue("lastPointerEvents[0]" + getModifierStateStr); |
| 104 else | 118 else |
| 105 shouldBeFalse("lastPointerEvents[0]" + getModifierStateStr); | 119 shouldBeFalse("lastPointerEvents[0]" + getModifierStateStr); |
| 106 }); | 120 }); |
| 107 | 121 |
| 108 } | 122 } |
| 109 | 123 |
| 110 lastPointerEvents.splice(0, 1); | 124 lastPointerEvents.splice(0, 1); |
| 111 } | 125 } |
| 112 }); | 126 }); |
| 113 | 127 |
| 114 }); | 128 }); |
| 115 } | 129 } |
| 116 | 130 |
| 117 function runTests() { | 131 function runMouseTests(x, y) { |
| 118 var rect = document.getElementById("target").getBoundingClientRect(); | 132 debug("===== mouse tests ====="); |
| 133 pointerType = "mouse"; |
| 119 | 134 |
| 120 debug("--- move mouse into target ---"); | 135 debug("--- move mouse into target ---"); |
| 121 eventSender.mouseMoveTo(rect.left + 5, rect.top + 5); | 136 eventSender.mouseMoveTo(x + 5, y + 5); |
| 122 debug(""); | 137 debug(""); |
| 123 | 138 |
| 124 debug("--- move within target ---"); | 139 debug("--- move within target ---"); |
| 125 eventSender.mouseMoveTo(rect.left + 7, rect.top + 15); | 140 eventSender.mouseMoveTo(x + 7, y + 15); |
| 126 eventSender.mouseMoveTo(rect.left + 5, rect.top + 5); | 141 eventSender.mouseMoveTo(x + 5, y + 5); |
| 127 debug(""); | 142 debug(""); |
| 128 | 143 |
| 129 debug("--- click each button ---"); | 144 debug("--- click each button ---"); |
| 130 for (var button = 0; button <=2; button++) { | 145 for (var button = 0; button <=2; button++) { |
| 131 eventSender.mouseDown(button); | 146 eventSender.mouseDown(button); |
| 132 eventSender.mouseUp(button); | 147 eventSender.mouseUp(button); |
| 133 // TODO(crbug.com/548226): Investigate missing events in win_chromium_rel_ng
on 3rd down/up. | 148 // TODO(crbug.com/548226): Investigate missing events in win_chromium_rel_ng
on 3rd down/up. |
| 134 } | 149 } |
| 135 debug(""); | 150 debug(""); |
| 136 | 151 |
| 137 debug("--- click with each modifier ---"); | 152 debug("--- click with each modifier ---"); |
| 138 checkKeyModifiers = true; | 153 checkKeyModifiers = true; |
| 139 forEachModifier(function(attr, modifierName, eventSenderName) { | 154 forEachModifier(function(attr, modifierName, eventSenderName) { |
| 140 eventSender.mouseDown(0, [eventSenderName]); | 155 eventSender.mouseDown(0, [eventSenderName]); |
| 141 eventSender.mouseUp(0, [eventSenderName]); | 156 eventSender.mouseUp(0, [eventSenderName]); |
| 142 }); | 157 }); |
| 143 checkKeyModifiers = false; | 158 checkKeyModifiers = false; |
| 144 debug(""); | 159 debug(""); |
| 145 | 160 |
| 146 debug("--- move mouse out of target ---"); | 161 debug("--- move mouse out of target ---"); |
| 147 eventSender.mouseMoveTo(rect.left - 5, rect.top - 5); | 162 eventSender.mouseMoveTo(x - 5, y - 5); |
| 163 |
| 164 debug(""); |
| 165 } |
| 166 |
| 167 function runPenTests(x, y) { |
| 168 debug("===== pen tests ====="); |
| 169 pointerType = "pen"; |
| 170 penId = 2; |
| 171 penPressure = 0.0; |
| 172 penTiltX = 0; |
| 173 penTiltY = 0; |
| 174 |
| 175 debug("--- move pen into target ---"); |
| 176 eventSender.mouseMoveTo(x + 5, y + 5, [], "pen", penId, penPressure, penTiltX,
penTiltY); |
| 177 debug(""); |
| 178 |
| 179 debug("--- move within target & tap ---"); |
| 180 penTiltX = 45; |
| 181 penTiltY = -34; |
| 182 eventSender.mouseMoveTo(x + 15, y + 15, [], "pen", penId, penPressure, penTilt
X, penTiltY); |
| 183 penPressure = 0.75; |
| 184 eventSender.mouseDown(0, [], "pen", penId, penPressure, penTiltX, penTiltY); |
| 185 penPressure = 0.0; |
| 186 eventSender.mouseUp(0, [], "pen", penId, penPressure, penTiltX, penTiltY); |
| 187 |
| 188 debug("--- move pen out of target ---"); |
| 189 eventSender.mouseMoveTo(x - 5, y - 5, [], "pen", penId, penPressure, penTiltX,
penTiltY); |
| 190 |
| 191 debug(""); |
| 192 } |
| 193 |
| 194 function runAllTests() { |
| 195 var rect = document.getElementById("target").getBoundingClientRect(); |
| 196 |
| 197 runMouseTests(rect.left, rect.top); |
| 198 runPenTests(rect.left, rect.top); |
| 148 } | 199 } |
| 149 | 200 |
| 150 init(); | 201 init(); |
| 151 if (window.eventSender) | 202 if (window.eventSender) |
| 152 runTests(); | 203 runAllTests(); |
| 153 else | 204 else |
| 154 debug("This test requires eventSender"); | 205 debug("This test requires eventSender"); |
| 155 | 206 |
| 156 </script> | 207 </script> |
| OLD | NEW |