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 @@ ...@@ -6,6 +6,9 @@
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css"> <link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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> <script src="pointerevent_support.js"></script>
<style> <style>
#target0 { #target0 {
...@@ -124,6 +127,9 @@ ...@@ -124,6 +127,9 @@
on_event(target0, 'pointerup', function(event) { on_event(target0, 'pointerup', function(event) {
firstTouchCompleted = true; firstTouchCompleted = true;
}); });
// Inject touch inputs.
touchScrollInTarget(target0, 'down');
} }
</script> </script>
<h1>touch-action: auto to none</h1> <h1>touch-action: auto to none</h1>
......
...@@ -5,6 +5,9 @@ ...@@ -5,6 +5,9 @@
<meta name="viewport" content="width=device-width"> <meta name="viewport" content="width=device-width">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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"> <link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<!-- Additional helper script for common checks across event types --> <!-- Additional helper script for common checks across event types -->
<script type="text/javascript" src="pointerevent_support.js"></script> <script type="text/javascript" src="pointerevent_support.js"></script>
...@@ -66,6 +69,9 @@ ...@@ -66,6 +69,9 @@
}); });
test_pointerEvent.done(); test_pointerEvent.done();
}); });
// Inject touch inputs.
touchScrollInTarget(target0, 'down');
} }
</script> </script>
<h1>Pointer Events pointercancel Tests</h1> <h1>Pointer Events pointercancel Tests</h1>
......
...@@ -6,6 +6,9 @@ ...@@ -6,6 +6,9 @@
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css"> <link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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 --> <!-- Additional helper script for common checks across event types -->
<script type="text/javascript" src="pointerevent_support.js"></script> <script type="text/javascript" src="pointerevent_support.js"></script>
</head> </head>
...@@ -54,6 +57,9 @@ ...@@ -54,6 +57,9 @@
} }
} }
}); });
// Inject touch inputs.
touchScrollInTarget(target0, 'down');
} }
</script> </script>
......
...@@ -6,6 +6,9 @@ ...@@ -6,6 +6,9 @@
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css"> <link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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 --> <!-- Additional helper script for common checks across event types -->
<script type="text/javascript" src="pointerevent_support.js"></script> <script type="text/javascript" src="pointerevent_support.js"></script>
</head> </head>
...@@ -55,6 +58,9 @@ ...@@ -55,6 +58,9 @@
} }
} }
}); });
// Inject touch inputs.
touchScrollInTarget(target0, 'down');
} }
</script> </script>
......
...@@ -6,6 +6,9 @@ ...@@ -6,6 +6,9 @@
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css"> <link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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> <script src="pointerevent_support.js"></script>
</head> </head>
<body class="scrollable"> <body class="scrollable">
...@@ -64,6 +67,9 @@ ...@@ -64,6 +67,9 @@
event_log.push('pointercancel@target0'); event_log.push('pointercancel@target0');
pointercancelGot = true; pointercancelGot = true;
}); });
// Inject touch inputs.
touchScrollInTarget(target0, 'down');
} }
</script> </script>
<h1>Pointer Events Capture Test</h1> <h1>Pointer Events Capture Test</h1>
......
...@@ -252,3 +252,35 @@ function setup_pointerevent_test(testName, supportedPointerTypes) { ...@@ -252,3 +252,35 @@ function setup_pointerevent_test(testName, supportedPointerTypes) {
function checkPointerEventType(event) { function checkPointerEventType(event) {
assert_equals(event.pointerType, expectedPointerType, "pointerType should be the same as the requested device."); 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 @@ ...@@ -6,6 +6,9 @@
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css"> <link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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> <script src="pointerevent_support.js"></script>
<style> <style>
#target0 { #target0 {
...@@ -118,6 +121,10 @@ ...@@ -118,6 +121,10 @@
updateDescriptionComplete(); updateDescriptionComplete();
} }
}); });
// Inject touch inputs.
touchScrollInTarget(target0, 'down').then(function() {
return touchScrollInTarget(target0, 'right'); });
} }
</script> </script>
<h1>touch-action: auto</h1> <h1>touch-action: auto</h1>
......
...@@ -6,6 +6,9 @@ ...@@ -6,6 +6,9 @@
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css"> <link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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> <script src="pointerevent_support.js"></script>
<style> <style>
#divParent { #divParent {
...@@ -118,6 +121,10 @@ ...@@ -118,6 +121,10 @@
updateDescriptionComplete(); updateDescriptionComplete();
} }
}); });
// Inject touch inputs.
touchScrollInTarget(scrollTarget, 'down').then(function() {
return touchScrollInTarget(scrollTarget, 'right'); });
} }
function enableScrolling() { function enableScrolling() {
......
...@@ -6,6 +6,9 @@ ...@@ -6,6 +6,9 @@
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css"> <link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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> <script src="pointerevent_support.js"></script>
<style> <style>
#target0 { #target0 {
...@@ -115,6 +118,10 @@ ...@@ -115,6 +118,10 @@
updateDescriptionComplete(); updateDescriptionComplete();
} }
}); });
// Inject touch inputs.
touchScrollInTarget(target0, 'down').then(function() {
return touchScrollInTarget(target0, 'right'); });
} }
</script> </script>
<h1>touch-action: pan-x pan-y</h1> <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 @@ ...@@ -84,6 +84,7 @@
for (let i = 0; i < actions.length; i++) { for (let i = 0; i < actions.length; i++) {
var last_x_position = 0; var last_x_position = 0;
var last_y_position = 0; var last_y_position = 0;
var first_pointer_down = false;
for (let j = 0; j < actions[i].actions.length; j++) { for (let j = 0; j < actions[i].actions.length; j++) {
if ('origin' in actions[i].actions[j]) { if ('origin' in actions[i].actions[j]) {
if (actions[i].actions[j].origin == "viewport") { if (actions[i].actions[j].origin == "viewport") {
...@@ -126,6 +127,16 @@ ...@@ -126,6 +127,16 @@
actions[i].actions[j].x = last_x_position; actions[i].actions[j].x = last_x_position;
actions[i].actions[j].y = last_y_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