| <!DOCTYPE html> <!-- webkit-test-runner [ ScrollAnimatorEnabled=false ] --> |
| <html> |
| <head> |
| <style> |
| .box { |
| width: 200px; |
| height: 200px; |
| } |
| |
| .gallery { |
| overflow: scroll; |
| } |
| </style> |
| <script src="../../resources/js-test.js"></script> |
| <script src="../../resources/ui-helper.js"></script> |
| <script> |
| window.jsTestIsAsync = true; |
| |
| function clickOnElement(targetElement) { |
| var clientRect = targetElement.getBoundingClientRect(); |
| eventSender.mouseMoveTo(clientRect.x + 5, clientRect.y + 5); |
| eventSender.mouseDown(); |
| } |
| |
| async function runTests() |
| { |
| try { |
| var container = document.getElementById("container"); |
| |
| clickOnElement(container); |
| await UIHelper.keyDown("pageDown"); |
| |
| expectTrue(container.scrollTop != 0, "paging moved container"); |
| let defaultPagePosition = container.scrollTop; |
| let pageProportion = container.scrollTop / container.clientHeight; |
| |
| container.scrollTop = 0; |
| container.style.scrollPaddingTop = "10px"; |
| await UIHelper.keyDown("pageDown"); |
| |
| let expected = (container.clientHeight - 10) * pageProportion; |
| expectTrue(container.scrollTop != 0, "paging moved padded container"); |
| shouldBeCloseTo("container.scrollTop", expected, 1); |
| |
| container.scrollTop = 0; |
| container.style.scrollPaddingTop = "0px"; |
| container.style.scrollPaddingBottom = "10px"; |
| await UIHelper.keyDown("pageDown"); |
| |
| expectTrue(container.scrollTop != 0, "paging moved padded container"); |
| shouldBeCloseTo("container.scrollTop", expected, 1); |
| |
| container.scrollTop = 0; |
| container.style.scrollPaddingTop = "10px"; |
| container.style.scrollPaddingBottom = "10px"; |
| await UIHelper.keyDown("pageDown"); |
| |
| expected = (container.clientHeight - 20) * pageProportion; |
| expectTrue(container.scrollTop != 0, "paging moved padded container"); |
| shouldBeCloseTo("container.scrollTop", expected, 1); |
| } catch (e) { |
| console.log(e); |
| } finally { |
| finishJSTest(); |
| } |
| } |
| |
| function onLoad() |
| { |
| if (window.eventSender) { |
| runTests(); |
| } else { |
| var console = document.getElementById('console'); |
| console.innerText = "This test cannot be run manually." |
| } |
| } |
| </script> |
| </head> |
| <body onload="onLoad();"> |
| <div id="console"></div> |
| <div id="container" class="box" style="overflow: scroll;"> |
| <div class="box" style="background: green;"></div> |
| <div class="box" style="background: red;"></div> |
| <div class="box" style="background: pink;"></div> |
| <div class="box" style="background: yellow;"></div> |
| <div class="box" style="background: orange;"></div> |
| </div> |
| </body> |
| </html> |