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

Side by Side Diff: third_party/WebKit/LayoutTests/external/wpt_automation/pointerevents/pointerevent_common_input.js

Issue 2621353003: Replace mouse actions in pointer event tests with pointerActionSequence (Closed)
Patch Set: pointer mouse event Created 3 years, 11 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 // This file contains the commonly used functions in pointerevent tests. 1 // This file contains the commonly used functions in pointerevent tests.
2 2
3 const scrollOffset = 30; 3 const scrollOffset = 30;
4 const boundaryOffset = 5; 4 const boundaryOffset = 5;
5 const touchSourceType = 1; 5 const touchSourceType = 1;
6 6
7 function delayPromise(delay) { 7 function delayPromise(delay) {
8 return new Promise(function(resolve, reject) { 8 return new Promise(function(resolve, reject) {
9 window.setTimeout(resolve, delay); 9 window.setTimeout(resolve, delay);
10 }); 10 });
11 } 11 }
12 12
13 function scrollPageIfNeeded(targetSelector, targetDocument) { 13 function scrollPageIfNeeded(targetSelector, targetDocument) {
14 var target = targetDocument.querySelector(targetSelector); 14 var target = targetDocument.querySelector(targetSelector);
15 var targetRect = target.getBoundingClientRect(); 15 var targetRect = target.getBoundingClientRect();
16 if (targetRect.top < 0 || targetRect.left < 0 || targetRect.bottom > window.in nerHeight || targetRect.right > window.innerWidth) 16 if (targetRect.top < 0 || targetRect.left < 0 || targetRect.bottom > window.in nerHeight || targetRect.right > window.innerWidth)
17 window.scrollTo(targetRect.left, targetRect.top); 17 window.scrollTo(targetRect.left, targetRect.top);
18 } 18 }
19 19
20 // Mouse inputs. 20 // Mouse inputs.
21 function mouseMoveToDocument() { 21 function mouseMoveToDocument() {
22 return new Promise(function(resolve, reject) { 22 return new Promise(function(resolve, reject) {
23 if (window.eventSender) { 23 if (window.chrome && chrome.gpuBenchmarking) {
24 eventSender.mouseMoveTo(0, 0); 24 chrome.gpuBenchmarking.pointerActionSequence(
25 resolve(); 25 [{
26 'source': 'mouse',
27 'actions': [{'name': 'pointerMove', 'x': 0, 'y': 0}]
28 }],
29 resolve);
26 } else { 30 } else {
27 reject(); 31 reject();
28 } 32 }
29 }); 33 });
30 } 34 }
31 35
32 function mouseMoveIntoTarget(targetSelector, targetFrame) { 36 function mouseMoveIntoTarget(targetSelector, targetFrame) {
33 var targetDocument = document; 37 var targetDocument = document;
34 var frameLeft = 0; 38 var frameLeft = 0;
35 var frameTop = 0; 39 var frameTop = 0;
36 if (targetFrame !== undefined) { 40 if (targetFrame !== undefined) {
37 targetDocument = targetFrame.contentDocument; 41 targetDocument = targetFrame.contentDocument;
38 var frameRect = targetFrame.getBoundingClientRect(); 42 var frameRect = targetFrame.getBoundingClientRect();
39 frameLeft = frameRect.left; 43 frameLeft = frameRect.left;
40 frameTop = frameRect.top; 44 frameTop = frameRect.top;
41 } 45 }
42 return new Promise(function(resolve, reject) { 46 return new Promise(function(resolve, reject) {
43 if (window.eventSender) { 47 if (window.chrome && chrome.gpuBenchmarking) {
44 scrollPageIfNeeded(targetSelector, targetDocument); 48 scrollPageIfNeeded(targetSelector, targetDocument);
45 var target = targetDocument.querySelector(targetSelector); 49 var target = targetDocument.querySelector(targetSelector);
46 var targetRect = target.getBoundingClientRect(); 50 var targetRect = target.getBoundingClientRect();
47 eventSender.mouseMoveTo(frameLeft + targetRect.left + boundaryOffset, fram eTop + targetRect.top + boundaryOffset); 51 var xPosition = frameLeft + targetRect.left + boundaryOffset;
48 resolve(); 52 var yPosition = frameTop + targetRect.top + boundaryOffset;
53 chrome.gpuBenchmarking.pointerActionSequence(
54 [{
55 'source': 'mouse',
56 'actions':
57 [{'name': 'pointerMove', 'x': xPosition, 'y': yPosition}]
58 }],
59 resolve);
49 } else { 60 } else {
50 reject(); 61 reject();
51 } 62 }
52 }); 63 });
53 } 64 }
54 65
55 function mouseButtonPress(button) { 66 function mouseChordedButtonPress(targetSelector) {
56 return new Promise(function(resolve, reject) { 67 return new Promise(function(resolve, reject) {
57 if (window.eventSender) { 68 if (window.chrome && chrome.gpuBenchmarking) {
58 eventSender.mouseDown(button); 69 scrollPageIfNeeded(targetSelector, document);
59 resolve(); 70 var target = document.querySelector(targetSelector);
60 } else { 71 var targetRect = target.getBoundingClientRect();
61 reject(); 72 var xPosition = targetRect.left + boundaryOffset;
62 } 73 var yPosition = targetRect.top + boundaryOffset;
63 }); 74 chrome.gpuBenchmarking.pointerActionSequence(
64 } 75 [{
65 76 'source': 'mouse',
66 function mouseButtonRelease(button) { 77 'actions': [
67 return new Promise(function(resolve, reject) { 78 {
68 if (window.eventSender) { 79 'name': 'pointerDown',
69 eventSender.mouseUp(button); 80 'x': xPosition,
70 resolve(); 81 'y': yPosition,
71 } else { 82 'button': 'left'
83 },
84 {
85 'name': 'pointerDown',
86 'x': xPosition,
87 'y': yPosition,
88 'button': 'middle'
89 },
90 {'name': 'pointerUp', 'button': 'middle'},
91 {'name': 'pointerUp', 'button': 'left'}
92 ]
93 }],
94 resolve);
95 } else {
72 reject(); 96 reject();
73 } 97 }
74 }); 98 });
75 } 99 }
76 100
77 function mouseClickInTarget(targetSelector, targetFrame) { 101 function mouseClickInTarget(targetSelector, targetFrame) {
78 return mouseMoveIntoTarget(targetSelector, targetFrame).then(function() { 102 var targetDocument = document;
79 return new Promise(function(resolve, reject) { 103 var frameLeft = 0;
80 if (window.eventSender) { 104 var frameTop = 0;
81 eventSender.mouseDown(0); 105 if (targetFrame !== undefined) {
82 eventSender.mouseUp(0); 106 targetDocument = targetFrame.contentDocument;
83 resolve(); 107 var frameRect = targetFrame.getBoundingClientRect();
84 } else { 108 frameLeft = frameRect.left;
85 reject(); 109 frameTop = frameRect.top;
86 } 110 }
87 }); 111 return new Promise(function(resolve, reject) {
112 if (window.chrome && chrome.gpuBenchmarking) {
113 scrollPageIfNeeded(targetSelector, targetDocument);
114 var target = targetDocument.querySelector(targetSelector);
115 var targetRect = target.getBoundingClientRect();
116 var xPosition = frameLeft + targetRect.left + boundaryOffset;
117 var yPosition = frameTop + targetRect.top + boundaryOffset;
118 chrome.gpuBenchmarking.pointerActionSequence(
119 [{
120 'source': 'mouse',
121 'actions': [
122 {'name': 'pointerMove', 'x': xPosition, 'y': yPosition},
123 {'name': 'pointerDown', 'x': xPosition, 'y': yPosition},
124 {'name': 'pointerUp'}
125 ]
126 }],
127 resolve);
128 } else {
129 reject();
130 }
88 }); 131 });
89 } 132 }
90 133
91 function mouseDragInTargets(targetSelectorList) { 134 function mouseDragInTargets(targetSelectorList) {
92 return new Promise(function(resolve, reject) { 135 return new Promise(function(resolve, reject) {
93 if (window.eventSender) { 136 if (window.chrome && chrome.gpuBenchmarking) {
94 mouseMoveIntoTarget(targetSelectorList[0]).then(function() { 137 scrollPageIfNeeded(targetSelectorList[0], document);
95 eventSender.mouseDown(0); 138 var target = document.querySelector(targetSelectorList[0]);
96 for (var i=1; i<targetSelectorList.length; i++) 139 var targetRect = target.getBoundingClientRect();
97 mouseMoveIntoTarget(targetSelectorList[i]); 140 var xPosition = targetRect.left + boundaryOffset;
98 eventSender.mouseUp(0); 141 var yPosition = targetRect.top + boundaryOffset;
99 resolve(); 142 var pointerActions = [{'source': 'mouse'}];
100 }); 143 var pointerAction = pointerActions[0];
144 pointerAction.actions = [];
145 pointerAction.actions.push(
146 {'name': 'pointerDown', 'x': xPosition, 'y': yPosition});
147 for (var i = 1; i < targetSelectorList.length; i++) {
148 scrollPageIfNeeded(targetSelectorList[i], document);
149 target = document.querySelector(targetSelectorList[i]);
150 targetRect = target.getBoundingClientRect();
151 xPosition = targetRect.left + boundaryOffset;
152 yPosition = targetRect.top + boundaryOffset;
153 pointerAction.actions.push(
154 {'name': 'pointerMove', 'x': xPosition, 'y': yPosition});
155 }
156 pointerAction.actions.push({'name': 'pointerUp'});
157 chrome.gpuBenchmarking.pointerActionSequence(pointerActions, resolve);
101 } else { 158 } else {
102 reject(); 159 reject();
103 } 160 }
104 }); 161 });
105 } 162 }
106 163
107 function mouseDragInTarget(targetSelector) { 164 function mouseDragInTarget(targetSelector) {
108 return mouseDragInTargets([targetSelector, targetSelector]); 165 return mouseDragInTargets([targetSelector, targetSelector]);
109 } 166 }
110 167
111 function mouseWheelScroll(direction) { 168 function mouseWheelScroll(targetSelector, direction) {
112 return new Promise(function(resolve, reject) { 169 return new Promise(function(resolve, reject) {
113 if (window.eventSender) { 170 if (window.eventSender) {
171 scrollPageIfNeeded(targetSelector, document);
172 var target = document.querySelector(targetSelector);
173 var targetRect = target.getBoundingClientRect();
174 eventSender.mouseMoveTo(
175 targetRect.left + boundaryOffset, targetRect.top + boundaryOffset);
176 eventSender.mouseDown(0);
177 eventSender.mouseUp(0);
114 if (direction == 'down') 178 if (direction == 'down')
115 eventSender.continuousMouseScrollBy(-scrollOffset, 0); 179 eventSender.continuousMouseScrollBy(-scrollOffset, 0);
116 else if (direction == 'right') 180 else if (direction == 'right')
117 eventSender.continuousMouseScrollBy(0, -scrollOffset); 181 eventSender.continuousMouseScrollBy(0, -scrollOffset);
118 else 182 else
119 reject(); 183 reject();
120 resolve(); 184 resolve();
121 } else { 185 } else {
122 reject(); 186 reject();
123 } 187 }
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 255
192 function pinchZoomInTarget(targetSelector, scale) { 256 function pinchZoomInTarget(targetSelector, scale) {
193 return new Promise(function(resolve, reject) { 257 return new Promise(function(resolve, reject) {
194 if (window.chrome && chrome.gpuBenchmarking) { 258 if (window.chrome && chrome.gpuBenchmarking) {
195 scrollPageIfNeeded(targetSelector, document); 259 scrollPageIfNeeded(targetSelector, document);
196 var target = document.querySelector(targetSelector); 260 var target = document.querySelector(targetSelector);
197 var targetRect = target.getBoundingClientRect(); 261 var targetRect = target.getBoundingClientRect();
198 var xPosition = targetRect.left + (targetRect.width/2); 262 var xPosition = targetRect.left + (targetRect.width/2);
199 var yPosition1 = targetRect.top + (targetRect.height/2) - 10; 263 var yPosition1 = targetRect.top + (targetRect.height/2) - 10;
200 var yPosition2 = targetRect.top + (targetRect.height/2) + 10; 264 var yPosition2 = targetRect.top + (targetRect.height/2) + 10;
201 var text = '[{"source": "touch", "actions": [{ "name": "pointerDown", "x": ' + xPosition +', "y":' + yPosition1 +' },'; 265 var pointerActions = [{'source': 'touch'}, {'source': 'touch'}];
202 for (var offset=10; offset<80; offset+=10) 266 var pointerAction1 = pointerActions[0];
203 text += '{ "name": "pointerMove", "x":' + xPosition +', "y":' + (yPositi on1 - offset) +' },'; 267 var pointerAction2 = pointerActions[1];
204 text += '{ "name": "pointerUp" }]}, {"source": "touch", "actions": [{ "nam e": "pointerDown", "x":' + xPosition +', "y":' + yPosition2 +' },'; 268 pointerAction1.actions = [];
205 for (var offset=10; offset<80; offset+=10) 269 pointerAction2.actions = [];
206 text += '{ "name": "pointerMove", "x":' + xPosition +', "y":' + (yPositi on2 + offset) +' },'; 270 pointerAction1.actions.push(
207 text += '{ "name": "pointerUp" }]}]'; 271 {'name': 'pointerDown', 'x': xPosition, 'y': yPosition1});
208 chrome.gpuBenchmarking.pointerActionSequence(JSON.parse(text), resolve); 272 pointerAction2.actions.push(
273 {'name': 'pointerDown', 'x': xPosition, 'y': yPosition2});
274 for (var offset = 10; offset < 80; offset += 10) {
275 pointerAction1.actions.push({
276 'name': 'pointerMove',
277 'x': xPosition,
278 'y': (yPosition1 - offset)
279 });
280 pointerAction2.actions.push({
281 'name': 'pointerMove',
282 'x': xPosition,
283 'y': (yPosition2 + offset)
284 });
285 }
286 pointerAction1.actions.push({'name': 'pointerUp'});
287 pointerAction2.actions.push({'name': 'pointerUp'});
288 chrome.gpuBenchmarking.pointerActionSequence(pointerActions, resolve);
209 } else { 289 } else {
210 reject(); 290 reject();
211 } 291 }
212 }); 292 });
213 } 293 }
214 294
215 // Pen inputs. 295 // Pen inputs.
216 function penMoveToDocument() { 296 function penMoveToDocument() {
217 return new Promise(function(resolve, reject) { 297 return new Promise(function(resolve, reject) {
218 if (window.eventSender) { 298 if (window.eventSender) {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 } 358 }
279 359
280 { 360 {
281 var pointerevent_automation = async_test("PointerEvent Automation"); 361 var pointerevent_automation = async_test("PointerEvent Automation");
282 // Defined in every test and should return a promise that gets resolved when i nput is finished. 362 // Defined in every test and should return a promise that gets resolved when i nput is finished.
283 inject_input().then(function() { 363 inject_input().then(function() {
284 pointerevent_automation.done(); 364 pointerevent_automation.done();
285 }); 365 });
286 } 366 }
287 367
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698