blob: f91dbeaf8eba611ee0e179d919039e03cc4067c7 [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 synthetic scrolls with tiny amounts are accurately
// propagated to the renderer.
async function tryScroll(distance, source) {
const x = 400;
const y = 300;
const precise_deltas = true;
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 is_mac = navigator.platform.indexOf('Mac') == 0;
const sources_to_test = [];
sources_to_test.push(GestureSourceType.DEFAULT_INPUT);
// TODO(bokan): Mac doesn't support even synthetic touches.
// https://crbug.com/613672.
if (!is_mac)
sources_to_test.push(GestureSourceType.TOUCH_INPUT);
// Touchpad and Mouse are currently treated the same, if that changes, be
// sure to test both.
if (GestureSourceType.MOUSE_INPUT != GestureSourceType.TOUCHPAD_INPUT)
sources_to_test.push(GestureSourceType.MOUSE_INPUT);
sources_to_test.push(GestureSourceType.TOUCHPAD_INPUT);
// TODO(bokan): Pen input doesn't yet pass this test. crbug.com/897520.
//sources_to_test.push(GestureSourceType.PEN_INPUT);
for (let source_type of sources_to_test) {
promise_test(async () => {
assert_equals(window.scrollY, 0);
await tryScroll(1, source_type);
assert_equals(window.scrollY, 1);
}, 'Synthetic ' + 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 ' + GestureSourceType.ToString(source_type) +
' gestures accurately scroll delta (0, 2).');
}
}
</script>