summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/infrastructure/testdriver/actions/multiTouchPointsReleaseSecondPoint.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/infrastructure/testdriver/actions/multiTouchPointsReleaseSecondPoint.html')
-rw-r--r--testing/web-platform/tests/infrastructure/testdriver/actions/multiTouchPointsReleaseSecondPoint.html69
1 files changed, 69 insertions, 0 deletions
diff --git a/testing/web-platform/tests/infrastructure/testdriver/actions/multiTouchPointsReleaseSecondPoint.html b/testing/web-platform/tests/infrastructure/testdriver/actions/multiTouchPointsReleaseSecondPoint.html
new file mode 100644
index 0000000000..58a2263f5b
--- /dev/null
+++ b/testing/web-platform/tests/infrastructure/testdriver/actions/multiTouchPointsReleaseSecondPoint.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>TestDriver actions: two touch points with one moving one pause</title>
+<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="touchEvents.js"></script>
+
+<style>
+div#test1{
+ position: fixed;
+ touch-action: none;
+ top: 0;
+ left: 0;
+ width: 100px;
+ height: 100px;
+ background-color: blue;
+}
+
+</style>
+
+<div id="test1">
+</div>
+
+<script>
+promise_test(async t => {
+ let test1 = document.getElementById("test1");
+
+ const events = [];
+ addPointerEventListeners(t, test1, events);
+
+ await new test_driver.Actions()
+ .addPointer("touchPointer1", "touch")
+ .addPointer("touchPointer2", "touch")
+ .pointerMove(0, 0, {origin: test1, sourceName: "touchPointer1"})
+ .pointerMove(10, 0, {origin: test1, sourceName: "touchPointer2"})
+ .pointerDown({sourceName: "touchPointer1"})
+ .pointerDown({sourceName: "touchPointer2"})
+ .pointerMove(10, 10, {origin: test1, sourceName: "touchPointer1"})
+ .addTick()
+ .pointerUp({sourceName: "touchPointer2"})
+ .addTick()
+ .pointerUp({sourceName: "touchPointer1"})
+ .send();
+
+ eventEquals(events[0], {type: "pointerdown", pointerId: 2, clientX: 50, clientY: 50});
+ eventEquals(events[1], {type: "pointerdown", pointerId: 3, clientX: 60, clientY: 50});
+ // Allow one or two pointermove events
+ let index = 3;
+ const moveEvents = [events[2]];
+ if (events[3].type === "pointermove") {
+ index += 1;
+ moveEvents.push(events[3]);
+ }
+ for (const event of moveEvents) {
+ if (event.pointerId === 2) {
+ eventEquals(event, {type: "pointermove", clientX: 60, clientY: 60});
+ } else {
+ eventEquals(event, {type: "pointermove", pointerId: 3, clientX: 60, clientY: 50});
+ }
+ }
+ let remainingEvents = events.slice(index);
+ assert_equals(remainingEvents.length, 2);
+ eventEquals(remainingEvents[0], {type: "pointerup", pointerId: 3, clientX: 60, clientY: 50});
+ eventEquals(remainingEvents[1], {type: "pointerup", pointerId: 2, clientX: 60, clientY: 60});
+});
+</script>