chromium/third_party/blink/web_tests/fast/events/wheel/continuous-platform-wheelevent-in-scrolling-div.html

<!DOCTYPE html>
<style>
  #overflow {
    border: 2px solid black;
    overflow: auto;
    height: 200px;
    width: 200px;
  }
  .block {
    height: 200px;
    width: 400px;
  }
  .block:nth-child(even) {
    background-color: red;
  }
  .block:nth-child(odd) {
    background-color: green;
  }
</style>
<script src='../../../resources/gesture-util.js'></script>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/percent-based-util.js"></script>
<div id="overflow">
    <div class="block"></div>
    <div class="block"></div>
    <div class="block"></div>
</div>

<script>
const SCROLL_TOP = isPercentBasedScrollingEnabled() ? pixelsPerTick() * 2 : 200;
const SCROLL_LEFT = isPercentBasedScrollingEnabled() ? pixelsPerTick() : 100;
const SOURCE = GestureSourceType.MOUSE_INPUT;
const NUM_TICKS_X = SCROLL_LEFT / pixelsPerTick();
const NUM_TICKS_Y = SCROLL_TOP / pixelsPerTick();
const EXPECTED_WHEEL_DELTA_X = NUM_TICKS_X * LEGACY_MOUSE_WHEEL_TICK_MULTIPLIER;
const EXPECTED_WHEEL_DELTA_Y = NUM_TICKS_Y * LEGACY_MOUSE_WHEEL_TICK_MULTIPLIER;

let last_event = null;

const overflowElement = document.getElementById("overflow");
overflowElement.addEventListener("mousewheel", mousewheelHandler, false);

const { x: expectedScrollLeft, y: expectedScrollTop } = calculateExpectedScroll(
  overflowElement, SCROLL_LEFT, SCROLL_TOP
);

function mousewheelHandler(e) {
  last_event = e;
}

promise_test(async () => {
  await gestureScroll(() => {
    return smoothScroll(SCROLL_LEFT, 100, 110, SOURCE, 'right', SPEED_INSTANT, !isPercentBasedScrollingEnabled());
  }, overflowElement);
  assert_approx_equals(overflowElement.scrollLeft, Math.round(expectedScrollLeft * 100) / 100, 0.001);
  assert_equals(last_event.wheelDeltaX, -Math.floor(EXPECTED_WHEEL_DELTA_X));
  assert_equals(last_event.wheelDelta, -Math.floor(EXPECTED_WHEEL_DELTA_X));

  last_event = null;

  await gestureScroll(() => {
    return smoothScroll(SCROLL_TOP, 100, 110, SOURCE, 'down', SPEED_INSTANT,
                        !isPercentBasedScrollingEnabled());
  }, overflowElement);
  assert_approx_equals(overflowElement.scrollTop, Math.round(expectedScrollTop * 100) / 100, 0.001);
  assert_equals(last_event.wheelDeltaY, -Math.floor(EXPECTED_WHEEL_DELTA_Y));
  assert_equals(last_event.wheelDelta, -Math.floor(EXPECTED_WHEEL_DELTA_Y));
}, 'This test checks the wheel delta value of wheel events, which should be ' +
   'the number of ticks multiplies the legacy mouse wheel tick multiplier.');

</script>