blob: 327683d20a69a6b6221136a6afb53472339092ae [file] [log] [blame]
<!DOCTYPE html>
<script src='../resources/testharness.js'></script>
<script src='../resources/testharnessreport.js'></script>
<script src='../resources/gesture-util.js'></script>
<style>
body, html {
margin: 0;
height: 10000px;
}
</style>
<script>
// This test ensures that animated mouse wheel scrolls with tiny amounts are
// accurately propagated in the renderer.
async function tryScroll(distance, source) {
const x = 400;
const y = 300;
const precise_deltas = false;
const scrollYBefore = window.scrollY;
await waitForCompositorCommit();
await smoothScroll(distance,
x, y,
source,
'down',
SPEED_INSTANT,
precise_deltas);
await waitFor(() => { return window.scrollY - scrollYBefore >= distance; },
"Didn't scroll by expected amount: " + distance);
await waitForCompositorCommit();
}
window.onload = async () => {
const source_type = GestureSourceType.MOUSE_INPUT;
promise_test(async () => {
assert_equals(window.scrollY, 0);
await tryScroll(1, source_type);
assert_equals(window.scrollY, 1);
}, 'Synthetic animated ' + GestureSourceType.ToString(source_type) +
' gestures accurately scroll delta (0, 1).');
promise_test(async () => {
assert_equals(window.scrollY, 1);
await tryScroll(2, source_type);
assert_equals(window.scrollY, 3);
window.scrollTo(0, 0);
}, 'Synthetic animated ' + GestureSourceType.ToString(source_type) +
' gestures accurately scroll delta (0, 2).');
}
</script>