chromium/third_party/blink/web_tests/fast/events/touch/gesture/gesture-scrollbar.html

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<script src="../../../../resources/testharness.js"></script>
<script src="../../../../resources/testharnessreport.js"></script>
<script src="../../../../resources/gesture-util.js"></script>
<style type="text/css">
::-webkit-scrollbar {
  background-color: #ccc;
  height: 15px;
  width: 15px;
}

::-webkit-scrollbar-button {
  display: none;
}

::-webkit-scrollbar-thumb {
  background-color: #777;
  height: 15px;
  width: 15px;
}

#scrollable {
  height: 300px;
  width: 300px;
  overflow: scroll;
}

.large {
  height: 600px;
  width: 600px;
}
</style>
<div id="scrollable">
  <div class="large">
  </div>
</div>

<script type="text/javascript">
var movingDiv = document.getElementById('scrollable');
promise_test (async () => {
  await waitForCompositorCommit();
  var scrollbarX = movingDiv.offsetLeft + movingDiv.offsetWidth - 5;
  var scrollThumbSafeOffset = 80;
  var scrollbarY = movingDiv.offsetTop + scrollThumbSafeOffset;
  assert_equals(movingDiv.scrollTop, 0);
  await smoothScroll(20, scrollbarX, scrollbarY, GestureSourceType.TOUCH_INPUT,
                     "up", SPEED_INSTANT);
  await waitFor( () => { return movingDiv.scrollTop >= 20;});
  await smoothScroll(60, scrollbarX, scrollbarY, GestureSourceType.TOUCH_INPUT,
                     "up", SPEED_INSTANT);
  await waitFor( () => { return movingDiv.scrollTop >= 85;});
}, 'This tests scroll gesture events on a vertical scroll bar. The ' +
   'scrollable div below should be slightly scrolled down if successful.');

promise_test (async () => {
  await waitForCompositorCommit();
  var scrollbarY = movingDiv.offsetTop + movingDiv.offsetHeight - 5;
  var scrollThumbSafeOffset = 80;
  var scrollbarX = movingDiv.offsetLeft + scrollThumbSafeOffset;
  assert_equals(movingDiv.scrollLeft, 0);
  await smoothScroll(20, scrollbarX, scrollbarY, GestureSourceType.TOUCH_INPUT,
                     "left", SPEED_INSTANT);
  await waitFor( () => { return movingDiv.scrollLeft >= 20;});
  await smoothScroll(60, scrollbarX, scrollbarY, GestureSourceType.TOUCH_INPUT,
                     "left", SPEED_INSTANT);
  await waitFor( () => { return movingDiv.scrollLeft >= 85; });
}, 'This tests scroll gesture events on a horizontal scroll bar. The ' +
   'scrollable div below should be slightly scrolled right if successful.');
</script>