| <!DOCTYPE html> |
| <script src="../../../resources/testharness.js"></script> |
| <script src="../../../resources/testharnessreport.js"></script> |
| <script src="../../../resources/gesture-util.js"></script> |
| <style> |
| body { |
| height: 2000px; |
| width: 2000px; |
| } |
| </style> |
| |
| <script> |
| // Turn on smooth scrolling. |
| internals.settings.setScrollAnimatorEnabled(true); |
| |
| var x = 20; |
| var y = 20; |
| var px_per_tick = 40; |
| var source = GestureSourceType.MOUSE_INPUT; |
| |
| promise_test(async () => { |
| // Scroll 3 ticks diagonally. |
| await smoothScroll(3 * px_per_tick , x, y, source, 'downright', |
| SPEED_INSTANT); |
| // Undo 2 ticks in each direction. |
| await smoothScroll(2 * px_per_tick, x, y, source, 'upleft', |
| SPEED_INSTANT); |
| |
| // 40px per tick. |
| await waitFor( () => { |
| return approx_equals(document.scrollingElement.scrollTop, 40, 4) && |
| approx_equals(document.scrollingElement.scrollLeft, 40, 4); |
| }); |
| |
| // Undo the last tick in each direction to reset the scroll state before |
| // starting the second test. |
| await smoothScroll(1 * px_per_tick, x, y, source, 'upleft', |
| SPEED_INSTANT); |
| await waitFor( () => { |
| return approx_equals(document.scrollingElement.scrollTop, 0, 4) && |
| approx_equals(document.scrollingElement.scrollLeft, 0, 4); |
| }); |
| |
| }, "This test ensures that consecutive mouse wheel ticks diagonally " + |
| "scroll to the right offset. The main purpose of this test is to " + |
| "ensure that smooth scrolling on the compositor works as intended " + |
| "(tested via virtual suite virtual/threaded/)."); |
| |
| promise_test(async () => { |
| // Scroll down 3 ticks. |
| await smoothScroll(1 * px_per_tick, x, y, source, 'down', |
| SPEED_INSTANT); |
| await smoothScroll(2 * px_per_tick, x, y, source, 'down', |
| SPEED_INSTANT); |
| // Scroll right 3 ticks. |
| await smoothScroll(1 * px_per_tick, x, y, source, 'right', |
| SPEED_INSTANT); |
| await smoothScroll(2 * px_per_tick, x, y, source, 'right', |
| SPEED_INSTANT); |
| // Undo 1 tick in each direction. |
| await smoothScroll(1 * px_per_tick, x, y, source, 'up', |
| SPEED_INSTANT); |
| await smoothScroll(1 * px_per_tick, x, y, source, 'left', |
| SPEED_INSTANT); |
| |
| // 40px per tick. |
| await waitFor( () => { |
| return approx_equals(document.scrollingElement.scrollTop, 80, 4) && |
| approx_equals(document.scrollingElement.scrollLeft, 80, 4); |
| }); |
| }, "This test ensures that consecutive mouse wheel ticks vertically or " + |
| "horizontally scroll to the right offset. The main purpose of this " + |
| "test is to ensure that smooth scrolling on the compositor works as " + |
| "intended (tested via virtual suite virtual/threaded/)."); |
| </script> |