Bug 1560891 [wpt PR 17402] - Reland "Automate pointerevent pointerlock tests", a=testonly

Automatic update from web-platform-tests
Reland "Automate pointerevent pointerlock tests"

This reverts commit c1e32fe0a44fc0eef45c526df9a730a9b91d312b.

Reason for revert: Reland

Original change's description:
> Revert "Automate pointerevent pointerlock tests"
>
> This reverts commit de87ca945cfee1a8cf2471e9fffc2597b143e20c.
>
> Reason for revert:
> external/wpt/pointerevents/pointerlock/pointerevent_movementxy.html fails on
> https://ci.chromium.org/p/chromium/builders/ci/WebKit%20Mac10.13%20%28retina%29/15841
>
> external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture.html
> * external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture.html cause memory leak
> https://ci.chromium.org/p/chromium/builders/ci/WebKit%20Linux%20Leak/934
>
> Original change's description:
> > Automate pointerevent pointerlock tests
> >
> > Move from gpubenchmarking automation to test driver
> >
> > Bug: 606367
> > Change-Id: I4fbb3c9fcdda698178c8463397af4d31d0ce5080
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1660796
> > Commit-Queue: Ella Ge <eirage@chromium.org>
> > Reviewed-by: Lan Wei <lanwei@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#670527}
>
> TBR=lanwei@chromium.org,nzolghadr@chromium.org,eirage@chromium.org
>
> Change-Id: Iaba73cad638554ec19c21fdf821e0cf796807d47
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 606367
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1667752
> Reviewed-by: Lan Wei <lanwei@chromium.org>
> Commit-Queue: Lan Wei <lanwei@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#670570}

TBR=lanwei@chromium.org,nzolghadr@chromium.org,eirage@chromium.org

Change-Id: Icb9ed5bf1d39def760aeecca898415f446ead3f1
Bug: 606367
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1668050
Reviewed-by: Ella Ge <eirage@chromium.org>
Commit-Queue: Ella Ge <eirage@chromium.org>
Cr-Commit-Position: refs/heads/master@{#670733}

--

wpt-commits: 98186075ea53e8bdef46d1d7a207fb9a73a68ee5
wpt-pr: 17402
This commit is contained in:
Ella Ge 2019-07-19 12:37:02 +00:00 коммит произвёл James Graham
Родитель 85c7faa169
Коммит f5533bb9fd
5 изменённых файлов: 116 добавлений и 23 удалений

Просмотреть файл

@ -2,11 +2,14 @@
<html>
<head>
<title>Pointer Events properties tests</title>
<meta name="timeout" content="long">
<meta name="timeout" content="long">
<meta name="viewport" content="width=device-width">
<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>
<style>
@ -45,8 +48,21 @@
lastScreenY = 0;
}
function injectInput(pointerType) {
var pointerId = pointerType + "Pointer1";
return new test_driver.Actions()
.addPointer(pointerId, pointerType)
.pointerMove(0, 0, {origin: box1})
.pointerDown()
.pointerMove(20, 30, {origin: box1})
.pointerMove(60, 40, {origin: box1})
.pointerMove(0, 0, {origin: box2})
.pointerUp()
.send();
}
function run() {
var test_pointerEvent = setup_pointerevent_test("pointerevent attributes", ['mouse', 'touch']);
var test_pointerEvent = setup_pointerevent_test("pointerevent attributes", ALL_POINTERS);
[document, document.getElementById('innerFrame').contentDocument].forEach(function(element) {
on_event(element, 'pointermove', function (event) {
@ -73,14 +89,22 @@
startSummation = false;
test_pointerEvent.done();
});
// Inject input
injectInput("mouse").then(function(){
return injectInput("touch")
}).then(function() {
return injectInput("pen")
})
}
</script>
</head>
<body onload="run()">
<h1>Pointer Events movementX/Y attribute test</h1>
<h2 id="pointerTypeDescription"></h2>
<h4>
Test Description: This test checks the properties of pointer events that do not support hover.
Test Description: This test checks the movementX/Y properties of pointer events.
<ol>
<li>Press down on the black square.</li>
<li>Move your pointer slowly along a straight line to the red square.</li>

Просмотреть файл

@ -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>
<script>
@ -24,15 +27,6 @@
on_event(div1, 'pointerdown', function(event) {
div2.setPointerCapture(event.pointerId);
});
on_event(div1, 'pointermove', function(event) {
if (lost_capture) {
test_pointerEvent.step(function() {
assert_equals(document.pointerLockElement, div1, "document.pointerLockElement should be div1.");
assert_true(lost_capture, "Pointer capture was lost after got a pointer lock.");
});
test_pointerEvent.done();
}
});
on_event(document, 'contextmenu', function(event) {
event.preventDefault();
});
@ -51,6 +45,29 @@
on_event(document,"pointerlockerror", function() {
assert_unreached("Pointer lock error");
})
injectInput().then(function(){
test_pointerEvent.step(function(){
assert_true(lost_capture, "Pointer capture was lost after got a pointer lock.");
assert_equals(document.pointerLockElement, div1, "document.pointerLockElement should be div1.");
});
test_pointerEvent.done();
})
}
// Inject mouse input
function injectInput() {
var actions = new test_driver.Actions();
return actions.pointerMove(0, 0, {origin: div1})
.pointerDown({button: actions.ButtonType.LEFT})
.pointerMove(30, 30, {origin: div1})
.pointerMove(30, 0, {origin: div1})
.pointerDown({button: actions.ButtonType.RIGHT})
.pointerMove(60, 30, {origin: div1})
.pointerMove(20, 20, {origin: div1})
.pointerUp({button: actions.ButtonType.RIGHT})
.pointerUp({button: actions.ButtonType.LEFT})
.send();
}
</script>
</head>

Просмотреть файл

@ -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>
<script>
@ -20,14 +23,14 @@
var test_pointerEvent = setup_pointerevent_test("no pointercapture while pointerlock", ['mouse']);
var div1 = document.getElementById("div1");
var div2 = document.getElementById("div2");
on_event(div1, 'pointerdown', function(event) {
div2.setPointerCapture(event.pointerId);
div1.requestPointerLock();
});
on_event(div1, 'pointermove', function(event) {
mouse_move_count++
if (lock_change_count == 1) {
mouse_move_count++;
if (mouse_move_count == 2) {
try {
div2.setPointerCapture(event.pointerId);
@ -44,14 +47,6 @@
mouse_move_count = 0;
}
} else if (lock_change_count == 2) {
mouse_move_count++;
if (mouse_move_count == 2) {
test_pointerEvent.step(function() {
assert_equals(capture_count, 0, "There shouldn't be any capture events fired.");
});
test_pointerEvent.done();
}
}
});
on_event(div2, 'gotpointercapture', function(event) {
@ -69,6 +64,30 @@
assert_equals(document.pointerLockElement, null, "document.pointerLockElement should be null.");
});
});
injectInput().then(function(){
test_pointerEvent.step(function(){
assert_equals(lock_change_count, 2, "Pointer is unlocked");
assert_greater_than(mouse_move_count, 1, "More than 1 pointermove has been received after unlocked");
assert_equals(capture_count, 0, "There shouldn't be any capture events fired.");
});
test_pointerEvent.done();
})
}
// Inject mouse input
function injectInput() {
var actions = new test_driver.Actions();
return actions.pointerMove(0, 0, {origin: div1})
.pointerDown()
.pointerMove(30, 30, {origin: div1})
.pointerMove(60, 30, {origin: div1})
.pointerMove(30, 20, {origin: div1})
.pointerMove(10, 50, {origin: div1})
.pointerMove(40, 10, {origin: div1})
.pointerMove(5, 30, {origin: div1})
.pointerMove(-5, 15, {origin: div1})
.pointerUp()
.send();
}
</script>
</head>

Просмотреть файл

@ -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>
@ -58,9 +61,25 @@
});
}
});
on_event(target0, "click", function(event) {
target0.requestPointerLock();
});
var x = innerframe.getBoundingClientRect().x + target1.getBoundingClientRect().x;
var y = innerframe.getBoundingClientRect().y + target1.getBoundingClientRect().y;
// Inject mouse input
new test_driver.Actions()
.pointerMove(5, 5, {origin: target0})
.pointerDown()
.pointerUp()
.pointerMove(100, 300, {origin: target0})
.pointerMove(x+10, y+10)
.pointerDown()
.pointerUp()
.pointerMove(5, 5, {origin: target0})
.send();
}
</script>

Просмотреть файл

@ -7,6 +7,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>
@ -14,7 +17,7 @@
<h2>PointerMove</h2>
<h4>Test Description: This test checks if pointermove event are triggered by button state changes
<ol>
<li>Lick on the black rectangle to lock the pointer </li>
<li>Click on the black rectangle to lock the pointer </li>
<li>Press a button and hold it</li>
<li>Press a second button</li>
<li>Release the second button</li>
@ -86,6 +89,17 @@
on_event(target0, "contextmenu", function (event) {
event.preventDefault();
});
// Inject mouse input
var actions = new test_driver.Actions();
actions.pointerMove(0, 0, {origin: target0})
.pointerDown({button: actions.ButtonType.LEFT})
.pointerUp({button: actions.ButtonType.LEFT})
.pointerDown({button: actions.ButtonType.LEFT})
.pointerDown({button: actions.ButtonType.MIDDLE})
.pointerUp({button: actions.ButtonType.MIDDLE})
.pointerUp({button: actions.ButtonType.LEFT})
.send();
}
</script>
<h1>Pointer Lock Pointer Events pointermove on button state changes Tests</h1>