diff options
Diffstat (limited to 'gfx/layers/apz/test/mochitest/helper_drag_click.html')
-rw-r--r-- | gfx/layers/apz/test/mochitest/helper_drag_click.html | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/gfx/layers/apz/test/mochitest/helper_drag_click.html b/gfx/layers/apz/test/mochitest/helper_drag_click.html new file mode 100644 index 0000000000..01722c798d --- /dev/null +++ b/gfx/layers/apz/test/mochitest/helper_drag_click.html @@ -0,0 +1,69 @@ +<!DOCTYPE HTML> +<html> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width; initial-scale=1.0"> + <title>Sanity mouse-drag click test</title> + <script type="application/javascript" src="apz_test_native_event_utils.js"></script> + <script type="application/javascript" src="apz_test_utils.js"></script> + <script src="/tests/SimpleTest/paint_listener.js"></script> + <script type="application/javascript"> + +async function test() { + let clickPromise = new Promise(resolve => { + document.addEventListener("click", resolve); + }); + + // Ensure the pointer is inside the window + await promiseNativeMouseEventWithAPZ({ + target: document.getElementById("b"), + offsetX: 5, + offsetY: 5, + type: "mousemove", + }); + // mouse down, move it around, and release it near where it went down. this + // should generate a click at the release point + await promiseNativeMouseEventWithAPZ({ + target: document.getElementById("b"), + offsetX: 5, + offsetY: 5, + type: "mousedown", + }); + await promiseNativeMouseEventWithAPZ({ + target: document.getElementById("b"), + offsetX: 100, + offsetY: 100, + type: "mousemove", + }); + await promiseNativeMouseEventWithAPZ({ + target: document.getElementById("b"), + offsetX: 10, + offsetY: 10, + type: "mousemove", + }); + await promiseNativeMouseEventWithAPZ({ + target: document.getElementById("b"), + offsetX: 8, + offsetY: 8, + type: "mouseup", + }); + dump("Finished synthesizing click with a drag in the middle\n"); + + let e = await clickPromise; + // The mouse down at (5, 5) should not have generated a click, but the up + // at (8, 8) should have. + is(e.target, document.getElementById("b"), "Clicked on button, yay! (at " + e.clientX + "," + e.clientY + ")"); + is(e.clientX, 8 + Math.floor(document.getElementById("b").getBoundingClientRect().left), "x-coord of click event looks sane"); + is(e.clientY, 8 + Math.floor(document.getElementById("b").getBoundingClientRect().top), "y-coord of click event looks sane"); +} + +waitUntilApzStable() +.then(test) +.then(subtestDone, subtestFailed); + + </script> +</head> +<body> + <button id="b" style="width: 10px; height: 10px; padding: 0;"></button> +</body> +</html> |