89 lines
3.6 KiB
HTML
89 lines
3.6 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<style>
|
|
body {
|
|
margin: 0;
|
|
}
|
|
|
|
.box {
|
|
width: 100vw;
|
|
height: 100vh;
|
|
}
|
|
</style>
|
|
<script src="../../resources/js-test.js"></script>
|
|
<script src="../../resources/ui-helper.js"></script>
|
|
<script>
|
|
window.jsTestIsAsync = true;
|
|
|
|
async function runTests()
|
|
{
|
|
try {
|
|
await UIHelper.keyDown("pageDown");
|
|
await UIHelper.waitForTargetScrollAnimationToSettle(document.scrollingElement);
|
|
|
|
expectTrue(document.scrollingElement.scrollTop != 0, "paging moved body");
|
|
let defaultPagePosition = document.scrollingElement.scrollTop;
|
|
let viewportHeight = document.scrollingElement.clientHeight;
|
|
let pageProportion = document.scrollingElement.scrollTop / viewportHeight;
|
|
|
|
document.scrollingElement.scrollTop = 0;
|
|
await UIHelper.waitForTargetScrollAnimationToSettle(document.scrollingElement);
|
|
|
|
document.documentElement.style.scrollPaddingTop = "10px";
|
|
await UIHelper.keyDown("pageDown");
|
|
await UIHelper.waitForTargetScrollAnimationToSettle(document.scrollingElement);
|
|
|
|
let expected = (viewportHeight - 10) * pageProportion;
|
|
expectTrue(document.scrollingElement.scrollTop != 0, "paging moved padded body");
|
|
shouldBeCloseTo("document.scrollingElement.scrollTop", expected, 1);
|
|
|
|
document.scrollingElement.scrollTop = 0;
|
|
await UIHelper.waitForTargetScrollAnimationToSettle(document.scrollingElement);
|
|
|
|
document.documentElement.style.scrollPaddingTop = "0px";
|
|
document.documentElement.style.scrollPaddingBottom = "10px";
|
|
await UIHelper.keyDown("pageDown");
|
|
await UIHelper.waitForTargetScrollAnimationToSettle(document.scrollingElement);
|
|
|
|
expectTrue(document.scrollingElement.scrollTop != 0, "paging moved padded body");
|
|
shouldBeCloseTo("document.scrollingElement.scrollTop", expected, 1);
|
|
|
|
document.scrollingElement.scrollTop = 0;
|
|
await UIHelper.waitForTargetScrollAnimationToSettle(document.scrollingElement);
|
|
|
|
document.documentElement.style.scrollPaddingTop = "10px";
|
|
document.documentElement.style.scrollPaddingBottom = "10px";
|
|
await UIHelper.keyDown("pageDown");
|
|
await UIHelper.waitForTargetScrollAnimationToSettle(document.scrollingElement);
|
|
|
|
expected = (viewportHeight - 20) * pageProportion;
|
|
expectTrue(document.scrollingElement.scrollTop != 0, "paging moved padded body");
|
|
shouldBeCloseTo("document.scrollingElement.scrollTop", expected, 2);
|
|
} 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 class="box" style="background: green;"><div id="console"></div></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>
|
|
</body>
|
|
</html>
|