blob: c0a8ffce6ff8c07bfd5b568ba0e80258414eef96 [file] [log] [blame]
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<style>
* {
margin: 0;
}
#pusher {
width: 1000px;
height: 1000px;
outline: 1px solid black;
}
</style>
<div id="console"></div>
<div id="testArea">
<div id="pusher">This box is here to create scrollbars.</div>
</div>
<script>
const floatPrecision = 0.00001;
function sendMouseDownAt(x, y) {
return new Promise(function(resolve, reject) {
if (window.chrome && chrome.gpuBenchmarking) {
var pointerActions =
[{source: "mouse",
actions: [
{ name: "pointerDown", x: x, y: y },
{ name: "pointerUp" },
]}];
chrome.gpuBenchmarking.pointerActionSequence(pointerActions, resolve);
}
else {
reject();
}
});
}
function PointerDown(event) {
eventFired = true;
lastEvent = event;
}
window.addEventListener("pointerdown", PointerDown, false);
promise_test(async () => {
eventFired = false;
await sendMouseDownAt(100, 100);
assert_true(eventFired);
assert_equals(lastEvent.clientX, 100, "clientX");
assert_equals(lastEvent.clientY, 100, "clientY");
assert_equals(lastEvent.pageX, 100, "pageX");
assert_equals(lastEvent.pageY, 100, "pageY");
assert_equals(lastEvent.offsetX, 100, "offsetX");
assert_equals(lastEvent.offsetY, 100, "offsetY");
}, 'Default');
promise_test(async () => {
eventFired = false;
testRunner.setPageZoomFactor(1.2);
await sendMouseDownAt(100, 100);
assert_true(eventFired);
assert_approx_equals(lastEvent.clientX, 83.33333, floatPrecision, "clientX");
assert_approx_equals(lastEvent.clientY, 83.33333, floatPrecision, "clientY");
assert_approx_equals(lastEvent.pageX, 83.33333, floatPrecision, "pageX");
assert_approx_equals(lastEvent.pageY, 83.33333, floatPrecision, "pageY");
assert_approx_equals(lastEvent.offsetX, 83.33333, floatPrecision, "offsetX");
assert_approx_equals(lastEvent.offsetY, 83.33333, floatPrecision, "offsetY");
}, 'Zoomed');
promise_test(async () => {
eventFired = false;
window.scrollTo(50, 50);
testRunner.setPageZoomFactor(1.0)
await sendMouseDownAt(100, 100);
assert_true(eventFired);
assert_equals(lastEvent.clientX, 100, "clientX");
assert_equals(lastEvent.clientY, 100, "clientY");
assert_equals(lastEvent.pageX, 150, "pageX");
assert_equals(lastEvent.pageY, 150, "pageY");
assert_equals(lastEvent.offsetX, 150, "offsetX");
assert_equals(lastEvent.offsetY, 150, "offsetY");
window.scrollTo(0, 0);
}, 'Scrolled');
promise_test(async () => {
eventFired = false;
testRunner.setPageZoomFactor(1.2);
window.scrollTo(50, 50);
await sendMouseDownAt(100, 100);
assert_true(eventFired);
assert_approx_equals(lastEvent.clientX, 83.33333, floatPrecision, "clientX");
assert_approx_equals(lastEvent.clientY, 83.33333, floatPrecision, "clientY");
assert_approx_equals(lastEvent.pageX, 133.33333, floatPrecision, "pageX");
assert_approx_equals(lastEvent.pageY, 133.33333, floatPrecision, "pageY");
assert_approx_equals(lastEvent.offsetX, 133.33333, floatPrecision, "offsetX");
assert_approx_equals(lastEvent.offsetY, 133.33333, floatPrecision, "offsetY");
testRunner.setPageZoomFactor(1.0)
window.scrollTo(0, 0);
}, 'Zoomed and scrolled');
</script>