| <!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true allowsLinkPreview=false ] --> |
| <html> |
| <head> |
| <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> |
| <script src="../../../resources/js-test.js"></script> |
| <script src="../../../resources/ui-helper.js"></script> |
| <script src="../../../resources/basic-gestures.js"></script> |
| <style> |
| html, body { |
| width: 100%; |
| margin: 0px; |
| padding: 0px; |
| } |
| |
| #content { |
| width: 100px; |
| height: 5000px; |
| box-sizing: border-box; |
| padding: 20px; |
| background: linear-gradient(to bottom, red 0%, green 50%, blue 100%); |
| } |
| </style> |
| <body onload="runTest()"> |
| <div id="content"></div> |
| </body> |
| <script> |
| jsTestIsAsync = true; |
| const minimumExpectedScrollTop = 1000; |
| let reachedMinimumScrollPosition = false; |
| |
| addEventListener("scroll", observeScrollEvent); |
| document.body.addEventListener("click", () => testFailed("Observed unexpected click event."), { once: true }); |
| |
| function noteTestProgress() { |
| if (!window.progress) |
| progress = 0; |
| if (++progress == 2) |
| finishJSTest(); |
| } |
| |
| async function observeScrollEvent() { |
| if (!window.testRunner || document.scrollingElement.scrollTop < minimumExpectedScrollTop || reachedMinimumScrollPosition) |
| return; |
| |
| reachedMinimumScrollPosition = true; |
| testPassed(`document.scrollingElement.scrollTop passed ${minimumExpectedScrollTop}`); |
| removeEventListener("scroll", observeScrollEvent); |
| await longPressAtPoint(160, document.scrollingElement.scrollTop + 350, 1); |
| await UIHelper.waitForDoubleTapDelay(); |
| noteTestProgress(); |
| } |
| |
| async function runTest() |
| { |
| description("Verifies that long pressing the page during momentum scrolling does not dispatch click events to the page. This test requires WebKitTestRunner."); |
| |
| if (!window.testRunner) |
| return; |
| |
| await UIHelper.dragFromPointToPoint(160, 450, 160, 50, 0.1); |
| noteTestProgress(); |
| } |
| </script> |
| </html> |