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

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

Issue 2141993003: PointerEvents for long-press: fix double firing & canceling MEs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed formats. Created 4 years, 5 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 <style> 3 <style>
4 div.box { 4 div.box {
5 height: 100px; 5 height: 100px;
6 width: 100px; 6 width: 100px;
7 background-color: red; 7 background-color: red;
8 } 8 }
9 </style> 9 </style>
10 10
11 <div class="box" id="target"></div> 11 <div class="box" id="target"></div>
12 12
13 <div id="console"></div> 13 <div id="console"></div>
14 14
15 <script> 15 <script>
16 description("Verifies that canceling pointerdowns for touches correctly suppress es mouseevents."); 16 description("Verifies that canceling pointerdowns for touches correctly suppress es mouseevents.");
17 17
18 var preventDefaultPrimary = false; 18 var preventDefaultPrimary = false;
19 19
20 function init() { 20 function init() {
21 var events = [ 21 var events = [
22 "mouseup", 22 "mouseup",
23 "mousedown", 23 "mousedown",
24 "mousemove", 24 "mousemove",
25 "pointerup", 25 "pointerup",
26 "pointerdown", 26 "pointerdown",
27 "pointermove", 27 "pointermove",
28 "pointercancel",
28 "click", 29 "click",
29 "touchstart", 30 "touchstart",
30 "touchend", 31 "touchend",
31 "touchmove", 32 "touchmove",
33 "touchcancel",
32 ]; 34 ];
33 35
34 events.forEach(function(event) { 36 events.forEach(function(event) {
35 document.getElementById("target").addEventListener(event, function(e) { 37 document.getElementById("target").addEventListener(event, function(e) {
36 var isPrimary = e.isPrimary; 38 var isPrimary = e.isPrimary;
37 var desc = []; 39 var desc = [];
38 if (e.type.startsWith("pointer") && isPrimary) 40 if (e.type.startsWith("pointer") && isPrimary)
39 desc.push("primary"); 41 desc.push("primary");
40 if (e.type == "pointerdown" && preventDefaultPrimary == isPrimary) { 42 if (e.type == "pointerdown" && preventDefaultPrimary == isPrimary) {
41 e.preventDefault(); 43 e.preventDefault();
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 eventSender.releaseTouchPoint(0); 85 eventSender.releaseTouchPoint(0);
84 eventSender.touchEnd(); 86 eventSender.touchEnd();
85 87
86 eventSender.gestureTapDown(x, y, tapWidth, tapHeight, uniqueId+1); 88 eventSender.gestureTapDown(x, y, tapWidth, tapHeight, uniqueId+1);
87 eventSender.gestureTap(x, y); 89 eventSender.gestureTap(x, y);
88 90
89 eventSender.gestureTapDown(x, y, tapWidth, tapHeight, uniqueId+2); 91 eventSender.gestureTapDown(x, y, tapWidth, tapHeight, uniqueId+2);
90 eventSender.gestureTap(x, y); 92 eventSender.gestureTap(x, y);
91 } 93 }
92 94
95 function testLongPressWithPairedGE() {
96 var rect = document.getElementById("target").getBoundingClientRect();
97 var x = rect.left + 50;
98 var y = rect.top + 50;
99
100 var uniqueId = 1234;
101 var tapWidth = 30;
102 var tapHeight = 30;
103
104 eventSender.addTouchPoint(x, y);
105 eventSender.touchStart(uniqueId);
106 eventSender.gestureTapDown(x, y, tapWidth, tapHeight, uniqueId);
107
108 eventSender.cancelTouchPoint(0);
109 eventSender.touchCancel();
110
111 eventSender.gestureLongPress(x, y, tapWidth, tapHeight, uniqueId);
112 }
113
114 function testLongPressWithoutPairedGE() {
115 var rect = document.getElementById("target").getBoundingClientRect();
116 var x = rect.left + 50;
117 var y = rect.top + 50;
118
119 var uniqueId = 1234;
120 var tapWidth = 30;
121 var tapHeight = 30;
122
123 eventSender.addTouchPoint(x, y);
124 eventSender.touchStart(uniqueId);
125 eventSender.cancelTouchPoint(0);
126 eventSender.touchCancel();
127
128 eventSender.gestureTapDown(x, y, tapWidth, tapHeight, uniqueId+1);
129 eventSender.gestureLongPress(x, y);
130
131 eventSender.gestureTapDown(x, y, tapWidth, tapHeight, uniqueId+2);
132 eventSender.gestureLongPress(x, y);
133 }
134
93 function runTests() { 135 function runTests() {
94 [false, true, false].forEach(function(boolVal) { 136 [false, true, false].forEach(function(boolVal) {
95 debug("=== With primary pointerdown " + (boolVal ? "canceled" : "uncanceled" ) +" ==="); 137 debug("=== With primary pointerdown " + (boolVal ? "canceled" : "uncanceled" ) +" ===");
96 preventDefaultPrimary = boolVal; 138 preventDefaultPrimary = boolVal;
97 139
98 debug("-- Tap with paired GEs --"); 140 debug("-- Tap with paired GEs --");
99 testTapWithPairedGE(); 141 testTapWithPairedGE();
100 142
101 debug("-- Tap without paired GEs --"); 143 debug("-- Tap without paired GEs --");
102 testTapWithoutPairedGE(); 144 testTapWithoutPairedGE();
103 145
146 debug("-- Long-press with paired GEs --");
147 testLongPressWithPairedGE();
148
149 debug("-- Long-press without paired GEs --");
150 testLongPressWithoutPairedGE();
151
104 debug(""); 152 debug("");
105 }); 153 });
106 } 154 }
107 155
108 init(); 156 init();
109 if (window.eventSender) 157 if (window.eventSender)
110 runTests(); 158 runTests();
111 else 159 else
112 debug("This test requires eventSender"); 160 debug("This test requires eventSender");
113 161
114 </script> 162 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698