| Index: third_party/WebKit/LayoutTests/fast/events/pointerevents/touch-pointer-mouse.html
|
| diff --git a/third_party/WebKit/LayoutTests/fast/events/pointerevents/touch-pointer-mouse.html b/third_party/WebKit/LayoutTests/fast/events/pointerevents/touch-pointer-mouse.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..09d4991d0bc340954eecb7400e11f3abaedece00
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/fast/events/pointerevents/touch-pointer-mouse.html
|
| @@ -0,0 +1,114 @@
|
| +<!DOCTYPE HTML>
|
| +<script src="../../../resources/js-test.js"></script>
|
| +<style>
|
| +div.box {
|
| + height: 100px;
|
| + width: 100px;
|
| + background-color: red;
|
| +}
|
| +</style>
|
| +
|
| +<div class="box" id="target"></div>
|
| +
|
| +<div id="console"></div>
|
| +
|
| +<script>
|
| +description("Verifies that canceling pointerdowns for touches correctly suppresses mouseevents.");
|
| +
|
| +var preventDefaultPrimary = false;
|
| +
|
| +function init() {
|
| + var events = [
|
| + "mouseup",
|
| + "mousedown",
|
| + "mousemove",
|
| + "pointerup",
|
| + "pointerdown",
|
| + "pointermove",
|
| + "click",
|
| + "touchstart",
|
| + "touchend",
|
| + "touchmove",
|
| + ];
|
| +
|
| + events.forEach(function(event) {
|
| + document.getElementById("target").addEventListener(event, function(e) {
|
| + var isPrimary = e.isPrimary;
|
| + var desc = [];
|
| + if (e.type.startsWith("pointer") && isPrimary)
|
| + desc.push("primary");
|
| + if (e.type == "pointerdown" && preventDefaultPrimary == isPrimary) {
|
| + e.preventDefault();
|
| + desc.push("canceled");
|
| + }
|
| + debug("Received " + e.type + " " + desc);
|
| + });
|
| + });
|
| +}
|
| +
|
| +function testTapWithPairedGE() {
|
| + var rect = document.getElementById("target").getBoundingClientRect();
|
| + var x = rect.left + 50;
|
| + var y = rect.top + 50;
|
| +
|
| + var uniqueId = 1234;
|
| + var tapWidth = 30;
|
| + var tapHeight = 30;
|
| +
|
| + eventSender.addTouchPoint(x, y);
|
| + eventSender.touchStart(uniqueId);
|
| + eventSender.gestureTapDown(x, y, tapWidth, tapHeight, uniqueId);
|
| +
|
| + eventSender.releaseTouchPoint(0);
|
| + eventSender.touchEnd();
|
| + eventSender.gestureTap(x, y);
|
| +}
|
| +
|
| +function testTapWithoutPairedGE() {
|
| + var rect = document.getElementById("target").getBoundingClientRect();
|
| + var x = rect.left + 50;
|
| + var y = rect.top + 50;
|
| +
|
| + var uniqueId = 1234;
|
| + var tapWidth = 30;
|
| + var tapHeight = 30;
|
| +
|
| + eventSender.addTouchPoint(x, y);
|
| + eventSender.touchStart(uniqueId);
|
| + eventSender.releaseTouchPoint(0);
|
| + eventSender.touchEnd();
|
| +
|
| + eventSender.addTouchPoint(x, y);
|
| + eventSender.touchStart(uniqueId+1);
|
| + eventSender.releaseTouchPoint(0);
|
| + eventSender.touchEnd();
|
| +
|
| + eventSender.gestureTapDown(x, y, tapWidth, tapHeight, uniqueId+1);
|
| + eventSender.gestureTap(x, y);
|
| +
|
| + eventSender.gestureTapDown(x, y, tapWidth, tapHeight, uniqueId+2);
|
| + eventSender.gestureTap(x, y);
|
| +}
|
| +
|
| +function runTests() {
|
| + [false, true, false].forEach(function(boolVal) {
|
| + debug("=== With primary pointerdown " + (boolVal ? "canceled" : "uncanceled") +" ===");
|
| + preventDefaultPrimary = boolVal;
|
| +
|
| + debug("-- Tap with paired GEs --");
|
| + testTapWithPairedGE();
|
| +
|
| + debug("-- Tap without paired GEs --");
|
| + testTapWithoutPairedGE();
|
| +
|
| + debug("");
|
| + });
|
| +}
|
| +
|
| +init();
|
| +if (window.eventSender)
|
| + runTests();
|
| +else
|
| + debug("This test requires eventSender");
|
| +
|
| +</script>
|
|
|