chromium/third_party/blink/web_tests/fast/events/autoscroll-upwards-propagation-overflow-hidden-body.html

<!DOCTYPE html>
<style>
  body {
    width: 800px;
    height: 800px;
    overflow-y: hidden;
  }

  #text-wrapper {
    padding: 20px;
    overflow-y: scroll;
    background-color:#ccc;
    height: 40px;
    width: 100px;
  }
</style>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script type="text/javascript">
  var scrollTopBefore;
  var maxScrollLeft;

  const testCase = async_test(
    "If an autoscroll starts from within a " +
    "scrollable div, it does not propagate to its non-scrollable document " +
    "body. Furthermore, it tests that if the body has only one of overflowX " +
    "or overflowY set to hidden, the scrollable axis actually scrolls. Note " +
    "that this test is pertaining to crbug.com/531525.");

  const finishTest = testCase.step_func_done(() => {
    eventSender.mouseUp();
    // Because only overflowY:hidden is set, horizontal scroll should happen and
    // vertical scroll shouldn't.
    assert_equals(document.scrollingElement.scrollTop, scrollTopBefore);
    assert_equals(document.scrollingElement.scrollLeft, maxScrollLeft);
    document.getElementById('text-wrapper').style.display = 'none';
  });

  window.onload = function () {
    scrollTopBefore = document.scrollingElement.scrollTop;
    maxScrollLeft = document.scrollingElement.scrollWidth - window.innerWidth;

    var element = document.getElementById('select');
    var x = element.offsetLeft + 7;
    var y = element.offsetTop + 7;
    eventSender.dragMode = false;
    eventSender.mouseMoveTo(x, y);
    eventSender.mouseDown();
    eventSender.mouseMoveTo(x + 795, y);
    eventSender.mouseMoveTo(x + 795, y + 795);
    window.requestAnimationFrame(finishTest);
  }
</script>

<div id="text-wrapper">
  <span id="select">This text could be anything but should be long enough to be scrollable.</span>
</div>