Commit 6cf9dcc6 authored by Lan Wei's avatar Lan Wei Committed by Commit Bot

Use testdriver Action API in WPT pointerevent touch tests

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.

Bug: 606367
Change-Id: Ibdabcbb973ac641174ca6faadccd737fa8c678b4
Reviewed-on: https://chromium-review.googlesource.com/c/1461504Reviewed-by: default avatarNavid Zolghadr <nzolghadr@chromium.org>
Commit-Queue: Lan Wei <lanwei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#632251}
parent 2b5e47fd
......@@ -6,6 +6,9 @@
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<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>
<script src="pointerevent_support.js"></script>
<style>
#target0 {
......@@ -124,6 +127,9 @@
on_event(target0, 'pointerup', function(event) {
firstTouchCompleted = true;
});
// Inject touch inputs.
touchScrollInTarget(target0, 'down');
}
</script>
<h1>touch-action: auto to none</h1>
......
......@@ -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>
......@@ -66,6 +69,9 @@
});
test_pointerEvent.done();
});
// Inject touch inputs.
touchScrollInTarget(target0, 'down');
}
</script>
<h1>Pointer Events pointercancel Tests</h1>
......
......@@ -6,6 +6,9 @@
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<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>
<!-- Additional helper script for common checks across event types -->
<script type="text/javascript" src="pointerevent_support.js"></script>
</head>
......@@ -54,6 +57,9 @@
}
}
});
// Inject touch inputs.
touchScrollInTarget(target0, 'down');
}
</script>
......
......@@ -6,6 +6,9 @@
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<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>
<!-- Additional helper script for common checks across event types -->
<script type="text/javascript" src="pointerevent_support.js"></script>
</head>
......@@ -55,6 +58,9 @@
}
}
});
// Inject touch inputs.
touchScrollInTarget(target0, 'down');
}
</script>
......
......@@ -6,6 +6,9 @@
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<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>
<script src="pointerevent_support.js"></script>
</head>
<body class="scrollable">
......@@ -64,6 +67,9 @@
event_log.push('pointercancel@target0');
pointercancelGot = true;
});
// Inject touch inputs.
touchScrollInTarget(target0, 'down');
}
</script>
<h1>Pointer Events Capture Test</h1>
......
......@@ -252,3 +252,35 @@ 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})
.pointerUp()
.send();
}
......@@ -6,6 +6,9 @@
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<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>
<script src="pointerevent_support.js"></script>
<style>
#target0 {
......@@ -118,6 +121,10 @@
updateDescriptionComplete();
}
});
// Inject touch inputs.
touchScrollInTarget(target0, 'down').then(function() {
return touchScrollInTarget(target0, 'right'); });
}
</script>
<h1>touch-action: auto</h1>
......
......@@ -6,6 +6,9 @@
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<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>
<script src="pointerevent_support.js"></script>
<style>
#divParent {
......@@ -118,6 +121,10 @@
updateDescriptionComplete();
}
});
// Inject touch inputs.
touchScrollInTarget(scrollTarget, 'down').then(function() {
return touchScrollInTarget(scrollTarget, 'right'); });
}
function enableScrolling() {
......
......@@ -6,6 +6,9 @@
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<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>
<script src="pointerevent_support.js"></script>
<style>
#target0 {
......@@ -115,6 +118,10 @@
updateDescriptionComplete();
}
});
// Inject touch inputs.
touchScrollInTarget(target0, 'down').then(function() {
return touchScrollInTarget(target0, 'right'); });
}
</script>
<h1>touch-action: pan-x pan-y</h1>
......
importAutomationScript('/pointerevents/pointerevent_common_input.js');
function inject_input() {
return touchScrollInTarget('#target0', 'down');
}
importAutomationScript('/pointerevents/pointerevent_common_input.js');
function inject_input() {
return touchScrollInTarget('#target0', 'down');
}
importAutomationScript('/pointerevents/pointerevent_common_input.js');
function inject_input() {
return touchScrollInTarget('#target0', 'down');
}
importAutomationScript('/pointerevents/pointerevent_common_input.js');
function inject_input() {
return touchScrollInTarget('#target0', 'down');
}
importAutomationScript('/pointerevents/pointerevent_common_input.js');
function inject_input() {
return touchScrollInTarget('#target0', 'down');
}
importAutomationScript('/pointerevents/pointerevent_common_input.js');
function inject_input() {
return touchScrollInTarget('#target0', 'down').then(function() {
return touchScrollInTarget('#target0', 'right');
});
}
importAutomationScript('/pointerevents/pointerevent_common_input.js');
function inject_input() {
return touchScrollInTarget('#scrollTarget', 'down').then(function() {
return touchScrollInTarget('#scrollTarget', 'right');
});
}
importAutomationScript('/pointerevents/pointerevent_common_input.js');
function inject_input() {
return touchScrollInTarget('#target0', 'down').then(function() {
return touchScrollInTarget('#target0', 'right');
});
}
......@@ -84,6 +84,7 @@
for (let i = 0; i < actions.length; i++) {
var last_x_position = 0;
var last_y_position = 0;
var first_pointer_down = false;
for (let j = 0; j < actions[i].actions.length; j++) {
if ('origin' in actions[i].actions[j]) {
if (actions[i].actions[j].origin == "viewport") {
......@@ -126,6 +127,16 @@
actions[i].actions[j].x = last_x_position;
actions[i].actions[j].y = last_y_position;
}
if ('parameters' in actions[i] && actions[i].parameters.pointerType == "touch") {
if (actions[i].actions[j].type == "pointerMove" && !first_pointer_down) {
actions[i].actions.splice(j--, 1);
} else if (actions[i].actions[j].type == "pointerDown") {
first_pointer_down = true;
} else if (actions[i].actions[j].type == "pointerUp") {
first_pointer_down = false;
}
}
}
}
......
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