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...) 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 |