| <!DOCTYPE html> <!-- webkit-test-runner [ AsyncOverflowScrollingEnabled=true LegacyOverflowScrollingTouchEnabled=false ] --> |
| <html> |
| <head> |
| <meta charset=utf-8> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <style> |
| |
| #scrollable { |
| position: absolute; |
| left: 0; |
| top: 0; |
| width: 200px; |
| height: 200px; |
| |
| overflow: scroll; |
| background-color: green; |
| } |
| |
| </style> |
| </head> |
| <body> |
| <div id="scrollable"></div> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script src="../utils.js"></script> |
| <script src="../../resources/basic-gestures.js"></script> |
| <script> |
| |
| 'use strict'; |
| |
| target_test({ width: "200px", height: "2000px" }, (target, test) => { |
| const scrollable = document.querySelector("#scrollable"); |
| scrollable.appendChild(target); |
| |
| target.style.touchAction = "pan-y"; |
| target.style.backgroundColor = "blue"; |
| |
| const eventTracker = new EventTracker(target, ["pointerdown", "pointerup", "pointercancel"]); |
| |
| touchAndDragFromPointToPoint(150, 100, 50, 100) |
| .then(() => touchAndDragFromPointToPoint(50, 100, 50, 50)) |
| .then(() => liftUpAtPoint(50, 50)) |
| .then(() => { |
| assert_equals(scrollable.scrollTop, 0, "The page was not scrolled vertically."); |
| eventTracker.assertMatchesEvents([ |
| { type: "pointerdown" }, |
| { type: "pointerup" } |
| ]); |
| test.done(); |
| }); |
| }, "Testing that panning in the x-axis first on an element with touch-action: pan-y prevents future vertical scrolling within an 'overflow: scroll' element."); |
| |
| </script> |
| </body> |
| </html> |