blob: afb88313dd4a560dbf8335b1032dc260f149df3b [file] [log] [blame]
<!DOCTYPE html>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/gesture-util.js"></script>
<div id="overflow" style="border:2px solid black;overflow:auto;height:200px;width:200px;">
<div style="background-color:red;height:200px;width:400px;"></div>
<div style="background-color:green;height:200px;width:400px;"></div>
<div style="background-color:red;height:200px;width:400px;"></div>
</div>
<div id="console"></div>
<script>
// scroll diagonally for 1 tick.
var expectedScroll = pixelsPerTick();
var overflowElement = document.getElementById("overflow");
overflowElement.addEventListener("mousewheel", mousewheelHandler, false);
var eventHandlerResolve;
eventHandlerPromise = new Promise(function(resolve) {
eventHandlerResolve = resolve;
});
promise_test (async () => {
var x = overflowElement.offsetLeft + 5;
var y = overflowElement.offsetTop + 5
await mouseMoveTo(x, y);
await smoothScroll(pixelsPerTick(), x, y, GestureSourceType.MOUSE_INPUT,
"downright", SPEED_INSTANT);
await waitFor( () => {
return overflowElement.scrollTop == expectedScroll &&
overflowElement.scrollLeft == expectedScroll;
});
// The test will timeout if the event handler doesn't resolve this promise.
await eventHandlerPromise;
});
function mousewheelHandler(e) {
// e.wheelDeltaX/Y is equal to number of ticks * 120. See kTickMultiplier
// in src/third_party/blink/renderer/core/events/wheel_event.h
if (e.deltaY == expectedScroll && e.deltaX == expectedScroll &&
e.wheelDeltaY == -120 && e.wheelDeltaX == -120 && e.wheelDelta == -120) {
eventHandlerResolve();
}
}
</script>