blob: 4b54000810ccea2195b1a006367324bb61bd1962 [file] [edit]
<!DOCTYPE html>
<script src="../../../resources/js-test.js"></script>
<script>
description("Pan scrolling");
const LEFT_BUTTON = 0;
const MIDDLE_BUTTON = 1;
function waitForScrollPosition(condition) {
return new Promise(resolve => {
let listener = (event) => {
if (condition(window.document.documentElement.scrollLeft, window.document.documentElement.scrollTop)) {
event.target.removeEventListener('scroll', listener);
resolve();
}
}
window.addEventListener('scroll', listener);
});
}
onload = async () => {
window.jsTestIsAsync = true;
debug("Start pan scrolling");
window.eventSender?.mouseMoveTo(200, 200);
window.eventSender?.mouseDown(MIDDLE_BUTTON);
window.eventSender?.mouseUp(MIDDLE_BUTTON);
debug("Scroll down");
window.eventSender?.mouseMoveTo(200, 300);
await waitForScrollPosition((x, y) => !x && y > 300);
debug("Scroll right");
window.eventSender?.mouseMoveTo(300, 200);
await waitForScrollPosition((x, y) => x > 300 && y > 300);
debug("Scroll up left");
window.eventSender?.mouseMoveTo(100, 100);
await waitForScrollPosition((x, y) => !x && !y);
window.eventSender?.mouseDown(LEFT_BUTTON);
window.eventSender?.mouseUp(LEFT_BUTTON);
finishJSTest();
};
</script>
<style>
body {
width: 200vw;
height: 200vh;
}
</style>