Commit 35d5999d authored by Lan Wei's avatar Lan Wei Committed by Commit Bot

Add pause to wait for scroll stop in WPT pointerevent touch test

In order to run the web-platform-tests automatically, we will use
testdriver Action API in all the wpt to simulate inputs. Here we are
changing some pointerevent touch input tests which are doing scrolling.

We are using "pause" action in the action sequence to  wait for the
scroll to stop to avoid fling and the memory leak.

Bug: 606367
Change-Id: Ic55144000c710789639e0996a3a3fab5ce3bdd42
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1503899
Commit-Queue: Lan Wei <lanwei@chromium.org>
Reviewed-by: default avatarNavid Zolghadr <nzolghadr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#641698}
parent 3b8ce268
......@@ -5,6 +5,9 @@
<meta name="viewport" content="width=device-width">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-actions.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<!-- Additional helper script for common checks across event types -->
<script type="text/javascript" src="pointerevent_support.js"></script>
......@@ -28,6 +31,7 @@
var pointerdown_event = null;
var pointercancel_event = null;
var received_pointerleave = false;
function run() {
var target0 = document.getElementById("target0");
......@@ -64,6 +68,14 @@
assert_equals(event.pointerType, pointerdown_event.pointerType, "pointerType should be the same for pointerleave and pointercancel");
assert_equals(event.isPrimary, pointerdown_event.isPrimary, "isPrimary should be the same for pointerleave and pointercancel");
});
received_pointerleave = true;
});
// Inject touch inputs and wait for all the actions finish to end the test.
touchScrollInTarget(target0, 'down').then(function() {
test_pointerEvent.step(function () {
assert_true(received_pointerleave, "pointerleave should be received before the test finished");
});
test_pointerEvent.done();
});
}
......
......@@ -252,3 +252,36 @@ function setup_pointerevent_test(testName, supportedPointerTypes) {
function checkPointerEventType(event) {
assert_equals(event.pointerType, expectedPointerType, "pointerType should be the same as the requested device.");
}
function touchScrollInTarget(target, direction) {
var x_delta = 0;
var y_delta = 0;
if (direction == "down") {
x_delta = 0;
y_delta = -10;
} else if (direction == "up") {
x_delta = 0;
y_delta = 10;
} else if (direction == "right") {
x_delta = -10;
y_delta = 0;
} else if (direction == "left") {
x_delta = 10;
y_delta = 0;
} else {
throw("scroll direction '" + direction + "' is not expected, direction should be 'down', 'up', 'left' or 'right'");
}
return new test_driver.Actions()
.addPointer("pointer1", "touch")
.pointerMove(0, 0, {origin: target})
.pointerDown()
.pointerMove(x_delta, y_delta, {origin: target})
.pointerMove(2 * x_delta, 2 * y_delta, {origin: target})
.pointerMove(3 * x_delta, 3 * y_delta, {origin: target})
.pointerMove(4 * x_delta, 4 * y_delta, {origin: target})
.pointerMove(5 * x_delta, 5 * y_delta, {origin: target})
.pointerMove(6 * x_delta, 6 * y_delta, {origin: target})
.pause(100)
.pointerUp()
.send();
}
importAutomationScript('/pointerevents/pointerevent_common_input.js');
function inject_input() {
return touchScrollInTarget('#target0', 'down');
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment