blob: f4a2b4bd8b030fdae16c123e0ae4e5c500a9775c [file] [log] [blame]
<!DOCTYPE html>
<script src="../../../resources/js-test.js"></script>
<style>
body {
height: 2000px;
width: 2000px;
}
</style>
<script>
window.jsTestIsAsync = true;
var numCalls = 0;
description("This test verifies that that visualviewportchanged event gets \
fired when the visual viewport is scaled or scrolled.");
function verifySetViewportOffsets() {
// Set viewport offset. Listener called twice.
window.visualViewport.scrollTop = 20;
requestAnimationFrame(function() {
shouldBe("numCalls", "3");
window.visualViewport.scrollLeft = 0;
requestAnimationFrame(function() {
shouldBe("numCalls", "4");
finishJSTest();
});
});
}
function runTest() {
if (!window.eventSender || !window.internals) {
finishJSTest();
return;
}
// Turn off smooth scrolling.
internals.settings.setScrollAnimatorEnabled(false);
window.addEventListener('visualviewportchanged', function(e) {
numCalls++;
});
// Scroll both viewports. Listner not called.
eventSender.mouseMoveTo(100, 100);
eventSender.continuousMouseScrollBy(100, 100);
shouldBe("numCalls", "0");
// Scale and scroll visual viewport. Listener called twice.
internals.setPageScaleFactor(2);
requestAnimationFrame(function() {
shouldBe("numCalls", "1");
internals.setVisualViewportOffset(10, 10);
requestAnimationFrame(function() {
shouldBe("numCalls", "2");
verifySetViewportOffsets();
});
});
}
</script>
<body onload="runTest()"></body>