diff options
Diffstat (limited to 'testing/web-platform/tests/infrastructure/testdriver/actions/multiTouchPointsReleaseSecondPoint.html')
-rw-r--r-- | testing/web-platform/tests/infrastructure/testdriver/actions/multiTouchPointsReleaseSecondPoint.html | 69 |
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> |