blob: cfb4167b3446e1f9274d814cf5a992399007bad9 [file] [log] [blame]
<!DOCTYPE html>
<style>
body {
height: 2000px;
width: 2000px;
}
::-webkit-scrollbar {
width: 0px;
height: 0px;
}
</style>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script>
function viewport() {
return window.visualViewport;
}
async_test(function(t) {
window.onload = t.step_func(function() {
// Turn off smooth scrolling.
internals.settings.setScrollAnimatorEnabled(false);
// Scroll both viewports.
eventSender.mouseMoveTo(100, 100);
eventSender.continuousMouseScrollBy(100, 100);
// Initial viewport dimensions.
assert_equals(viewport().clientWidth, 800, "initial clientWidth");
assert_equals(viewport().clientHeight, 600, "initial clientHeight");
assert_equals(viewport().scrollLeft, 0, "initial scrollLeft");
assert_equals(viewport().scrollTop, 0, "initial scrollTop");
assert_equals(viewport().scale, 1, "initial scale");
// Scale and scroll visual viewport.
internals.setPageScaleFactor(2);
internals.setVisualViewportOffset(10, 10);
assert_equals(viewport().clientWidth, 400, "scaled width");
assert_equals(viewport().clientHeight, 300, "scaled height");
assert_equals(viewport().scrollLeft, 10, "scrolled left viewport");
assert_equals(viewport().scrollTop, 10, "scrolled top viewport");
assert_equals(viewport().scale, 2, "scale");
// Set scrollTop/Left.
internals.setVisualViewportOffset(0, 20);
assert_equals(viewport().scrollTop, 20, "set scrollTop");
assert_equals(viewport().scrollLeft, 0, "set scrollLeft");
internals.setVisualViewportOffset(-20, -20);
assert_equals(viewport().scrollTop, 0, "negative scrollTop");
assert_equals(viewport().scrollTop, 0, "negative scrollLeft");
t.done();
});
}, 'Verify viewport dimensions');
</script>