Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Side by Side Diff: third_party/WebKit/LayoutTests/fast/events/pointerevents/mouse-pointer-event-properties.html

Issue 2296303002: Make a pen in eraser mode visible thru PointerEvent.buttons (Closed)
Patch Set: nzolghadr's comments. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 throu gh mouse events."); 19 description("Verifies that pointer event parameters are correct when fired throu gh mouse events.");
20 20
21 var checkKeyModifiers = false; 21 var checkKeyModifiers = false;
22 22
23 var inputPointerType = "";
24
23 var pointerType = ""; 25 var pointerType = "";
24 var penId = 0; 26 var penId = 0;
25 var penPressure = 0; 27 var penPressure = 0;
26 var penTiltX = 0; 28 var penTiltX = 0;
27 var penTiltY = 0; 29 var penTiltY = 0;
28 30
29 var testEventList = ["mouseenter", "mouseleave", "mouseover", "mouseout", "mouse up", "mousedown", "mousemove", 31 var testEventList = ["mouseenter", "mouseleave", "mouseover", "mouseout", "mouse up", "mousedown", "mousemove",
30 "pointerenter", "pointerleave", "pointerover", "pointerout", "pointerup", "pointerdown", "pointermove"]; 32 "pointerenter", "pointerleave", "pointerover", "pointerout", "pointerup", "pointerdown", "pointermove"];
31 var lastPointerEvents = []; 33 var lastPointerEvents = [];
32 34
(...skipping 14 matching lines...) Expand all
47 "y", 49 "y",
48 "button", 50 "button",
49 "buttons", 51 "buttons",
50 "pressure", 52 "pressure",
51 "tiltX", 53 "tiltX",
52 "tiltY", 54 "tiltY",
53 "width", 55 "width",
54 "height", 56 "height",
55 ]; 57 ];
56 58
59 function getExpectedNumericAttributeValueForPE(mouseEvent, attribute) {
60 var expectedValue = eval("mouseEvent." + attribute);
61
62 // Fix expectedValue for the cases where PE & ME differs
63 if (attribute == "button") {
64 if (mouseEvent.type != "mousedown" && mouseEvent.type != "mouseup")
65 expectedValue = -1;
66 else if (inputPointerType == "eraser")
67 expectedValue = 5;
68 } else if (attribute == "buttons") {
69 if (inputPointerType == "eraser" && mouseEvent.type == "mousedown")
70 expectedValue = 32;
71 } else if (attribute == "width" || attribute == "height") {
72 expectedValue = 1;
73 } else if (attribute == "pressure") {
74 if (pointerType == "mouse")
75 expectedValue = (mouseEvent.buttons == 0)? 0.0 : 0.5;
76 else
77 expectedValue = penPressure;
78 } else if (attribute == "tiltX") {
79 expectedValue = (pointerType == "mouse")? 0 : penTiltX;
80 } else if (attribute == "tiltY") {
81 expectedValue = (pointerType == "mouse")? 0 : penTiltY;
82 }
83 return expectedValue;
84 }
85
57 function init() { 86 function init() {
58 var targetDiv = document.getElementById("target"); 87 var targetDiv = document.getElementById("target");
59 88
60 testEventList.forEach(function(eventName) { 89 testEventList.forEach(function(eventName) {
61 90
62 targetDiv.addEventListener(eventName, function(event) { 91 targetDiv.addEventListener(eventName, function(event) {
63 92
64 debug("Received " + event.type); 93 debug("Received " + event.type);
65 94
66 if (event.type.startsWith("pointer")) 95 if (event.type.startsWith("pointer"))
(...skipping 15 matching lines...) Expand all
82 shouldBeTrue("lastPointerEvents[0].bubbles"); 111 shouldBeTrue("lastPointerEvents[0].bubbles");
83 shouldBeTrue("lastPointerEvents[0].cancelable"); 112 shouldBeTrue("lastPointerEvents[0].cancelable");
84 } 113 }
85 114
86 shouldBeEqualToNumber("lastPointerEvents[0].pointerId", 115 shouldBeEqualToNumber("lastPointerEvents[0].pointerId",
87 (pointerType == "mouse")? 1 : penId); 116 (pointerType == "mouse")? 1 : penId);
88 shouldBeEqualToString("lastPointerEvents[0].pointerType", pointerType) ; 117 shouldBeEqualToString("lastPointerEvents[0].pointerType", pointerType) ;
89 shouldBeTrue("lastPointerEvents[0].isPrimary"); 118 shouldBeTrue("lastPointerEvents[0].isPrimary");
90 119
91 numericAttributes.forEach(function(attribute) { 120 numericAttributes.forEach(function(attribute) {
92 var expectedValue = eval("event." + attribute); 121 var expectedValue = getExpectedNumericAttributeValueForPE(event, att ribute);
93 if (attribute == "button" && event.type != "mousedown" && event.type != "mouseup")
94 expectedValue = -1;
95 else if (attribute == "width" || attribute == "height")
96 expectedValue = 1;
97 else if (attribute == "pressure") {
98 if (pointerType == "mouse")
99 expectedValue = (event.buttons == 0)? 0.0 : 0.5;
100 else
101 expectedValue = penPressure;
102 }
103 else if (attribute == "tiltX")
104 expectedValue = (pointerType == "mouse")? 0 : penTiltX;
105 else if (attribute == "tiltY")
106 expectedValue = (pointerType == "mouse")? 0 : penTiltY;
107
108 shouldBeEqualToNumber("lastPointerEvents[0]." + attribute, expectedV alue); 122 shouldBeEqualToNumber("lastPointerEvents[0]." + attribute, expectedV alue);
109 }); 123 });
124
110 shouldBeEqualToString("lastPointerEvents[0].view.name", "mainWindow"); 125 shouldBeEqualToString("lastPointerEvents[0].view.name", "mainWindow");
111 126
112 } else { 127 } else {
113 128
114 forEachModifier(function(attr, modifierName) { 129 forEachModifier(function(attr, modifierName) {
115 var getModifierStateStr = ".getModifierState('" + modifierName + "') ;" 130 var getModifierStateStr = ".getModifierState('" + modifierName + "') ;"
116 if (eval("event" + getModifierStateStr)) 131 if (eval("event" + getModifierStateStr))
117 shouldBeTrue("lastPointerEvents[0]" + getModifierStateStr); 132 shouldBeTrue("lastPointerEvents[0]" + getModifierStateStr);
118 else 133 else
119 shouldBeFalse("lastPointerEvents[0]" + getModifierStateStr); 134 shouldBeFalse("lastPointerEvents[0]" + getModifierStateStr);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 }); 172 });
158 checkKeyModifiers = false; 173 checkKeyModifiers = false;
159 debug(""); 174 debug("");
160 175
161 debug("--- move mouse out of target ---"); 176 debug("--- move mouse out of target ---");
162 eventSender.mouseMoveTo(x - 5, y - 5); 177 eventSender.mouseMoveTo(x - 5, y - 5);
163 178
164 debug(""); 179 debug("");
165 } 180 }
166 181
167 function runPenTests(x, y) { 182 function runPenTests(x, y, id, eraseMode) {
168 debug("===== pen tests ====="); 183 debug("===== pen tests " + (eraseMode? "(erase mode)" : "(draw mode)") + " === ==");
169 pointerType = "pen"; 184 pointerType = "pen";
170 penId = 2; 185 inputPointerType = eraseMode? "eraser" : "pen";
186 penId = id;
171 penPressure = 0.0; 187 penPressure = 0.0;
172 penTiltX = 0; 188 penTiltX = 0;
173 penTiltY = 0; 189 penTiltY = 0;
174 190
175 debug("--- move pen into target ---"); 191 debug("--- move pen into target ---");
176 eventSender.mouseMoveTo(x + 5, y + 5, [], "pen", penId, penPressure, penTiltX, penTiltY); 192 eventSender.mouseMoveTo(x + 5, y + 5, [], inputPointerType, penId, penPressure , penTiltX, penTiltY);
177 debug(""); 193 debug("");
178 194
179 debug("--- move within target & tap ---"); 195 debug("--- move within target & tap ---");
180 penTiltX = 45; 196 penTiltX = 45;
181 penTiltY = -34; 197 penTiltY = -34;
182 eventSender.mouseMoveTo(x + 15, y + 15, [], "pen", penId, penPressure, penTilt X, penTiltY); 198 eventSender.mouseMoveTo(x + 15, y + 15, [], inputPointerType, penId, penPressu re, penTiltX, penTiltY);
183 penPressure = 0.75; 199 penPressure = 0.75;
184 eventSender.mouseDown(0, [], "pen", penId, penPressure, penTiltX, penTiltY); 200 eventSender.mouseDown(0, [], inputPointerType, penId, penPressure, penTiltX, p enTiltY);
185 penPressure = 0.0; 201 penPressure = 0.0;
186 eventSender.mouseUp(0, [], "pen", penId, penPressure, penTiltX, penTiltY); 202 eventSender.mouseUp(0, [], inputPointerType, penId, penPressure, penTiltX, pen TiltY);
187 203
188 debug("--- move pen out of target ---"); 204 debug("--- move pen out of target ---");
189 eventSender.mouseMoveTo(x - 5, y - 5, [], "pen", penId, penPressure, penTiltX, penTiltY); 205 eventSender.mouseMoveTo(x - 5, y - 5, [], inputPointerType, penId, penPressure , penTiltX, penTiltY);
190 206
191 debug(""); 207 debug("");
192 } 208 }
193 209
194 function runAllTests() { 210 function runAllTests() {
195 var rect = document.getElementById("target").getBoundingClientRect(); 211 var rect = document.getElementById("target").getBoundingClientRect();
196 212
197 runMouseTests(rect.left, rect.top); 213 runMouseTests(rect.left, rect.top);
198 runPenTests(rect.left, rect.top); 214 runPenTests(rect.left, rect.top, 2, false);
215 runPenTests(rect.left, rect.top, 3, true);
199 } 216 }
200 217
201 init(); 218 init();
202 if (window.eventSender) 219 if (window.eventSender)
203 runAllTests(); 220 runAllTests();
204 else 221 else
205 debug("This test requires eventSender"); 222 debug("This test requires eventSender");
206 223
207 </script> 224 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698