blob: cc66ecd6c89d3dcd5b35d4a691222b69e88166ac [file] [log] [blame]
<!doctype html>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<style>
</style>
<h1>Viewport: scrollingElement scroll properties inert</h1>
<h4>
Test Description: This test checks that when the scroll properties are used
on the scrollingElement, they delegate to the layout viewport only.
</h4>
<script>
addEventListener("load", function() {
if (!window.internals)
return;
// Zoom into the page, innerWidth and innerHeight shouldn't be affected.
internals.setPageScaleFactor(2);
internals.setVisualViewportOffset(0, 0);
test(function() {
// Try scrollTo(). Since the page has no overflow, the only
// scroll possible is by panning the visual viewport. However,
// scrollingElement.scrollTo should apply only to the layout
// viewport, so make sure the visual viewport isn't affected.
document.scrollingElement.scrollTo(1000, 1000);
assert_equals(window.visualViewport.offsetLeft, 0);
assert_equals(window.visualViewport.offsetTop, 0);
}, "visualViewport not affected by scrollingElement.scrollTo");
test(function() {
// Try the same this for scrollBy.
document.scrollingElement.scrollBy(1000, 1000);
assert_equals(window.visualViewport.offsetLeft, 0);
assert_equals(window.visualViewport.offsetTop, 0);
}, "visualViewport not affected by scrollingElement.scrollBy");
test(function() {
// And finally, scroll(). (which is an alias for scrollTo).
document.scrollingElement.scroll(1000, 1000);
assert_equals(window.visualViewport.offsetLeft, 0);
assert_equals(window.visualViewport.offsetTop, 0);
}, "visualViewport not affected by scrollingElement.scroll");
test(function() {
// Ensure that setting scrollLeft and scrollTop doesn't affect
// the visual viewport.
document.scrollingElement.scrollLeft = 100;
document.scrollingElement.scrollTop = 100;
assert_equals(window.visualViewport.offsetLeft, 0);
assert_equals(window.visualViewport.offsetTop, 0);
// Ensure scrollLeft and scrollTop don't report visual viewport
// offset.
internals.setVisualViewportOffset(200, 200);
assert_equals(document.scrollingElement.scrollLeft, 0);
assert_equals(document.scrollingElement.scrollTop, 0);
}, "scrollLeft and scrollTop are layout-viewport relative");
});
</script>