| <!DOCTYPE html> <!-- webkit-test-runner [ internal:useMockScrollbars=false internal:AsyncOverflowScrollingEnabled=true ] --> |
| <html> |
| <head> |
| <style> |
| body { |
| height: 1000px; |
| } |
| select { |
| display: block; |
| font-size: 12pt; |
| margin: 10px; |
| border: 1px solid black; |
| } |
| </style> |
| <script src="../../../../resources/js-test-pre.js"></script> |
| <script src="../../../../resources/ui-helper.js"></script> |
| |
| <script> |
| jsTestIsAsync = true; |
| |
| if (window.internals) |
| internals.setUsesOverlayScrollbars(true); |
| |
| async function doTest() |
| { |
| description('Test maybegin and cancelled on a scrolling list'); |
| if (!window.internals) { |
| finishJSTest(); |
| return; |
| } |
| |
| const select = document.getElementsByTagName('select')[0]; |
| const selectBounds = select.getBoundingClientRect(); |
| const x = selectBounds.left + 10; |
| const y = selectBounds.top + 10; |
| |
| debug('Initial state'); |
| debug(internals.verticalScrollbarState(select)); |
| |
| debug('MayBegin should show the scrollbar'); |
| await UIHelper.mouseWheelMayBeginAt(x, y); |
| await UIHelper.waitForCondition(() => { |
| let state = internals.verticalScrollbarState(select); |
| let visible = state.indexOf('visible_thumb') != -1; |
| if (visible) |
| testPassed('Scrollbar state: ' + state); |
| return visible; |
| }); |
| |
| debug('Cancelled should hide the scrollbar'); |
| await UIHelper.mouseWheelCancelAt(x, y); |
| |
| await UIHelper.waitForCondition(() => { |
| let state = internals.verticalScrollbarState(select); |
| let hidden = state.indexOf('visible_thumb') == -1; |
| if (hidden) |
| testPassed('Scrollbar state: ' + state); |
| return hidden; |
| }); |
| |
| finishJSTest(); |
| } |
| |
| window.addEventListener('load', () => { |
| doTest(); |
| }, false); |
| </script> |
| </head> |
| <body> |
| <select size="5"> |
| <option>January</option> |
| <option>February</option> |
| <option>March</option> |
| <option>April</option> |
| <option>May</option> |
| <option>June</option> |
| <option>July</option> |
| <option>August</option> |
| <option>September</option> |
| <option>October</option> |
| <option>November</option> |
| <option>December</option> |
| </select> |
| <div id="console"></div> |
| <script src="../../../../resources/js-test-post.js"></script> |
| </body> |
| </html> |