56 lines
1.7 KiB
HTML
56 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<style>
|
|
body { position: relative; height: 2000px; }
|
|
</style>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<script>
|
|
description('This tests that window.scrollBy respects the page\'s zoom and scale factor when scrolling.');
|
|
|
|
function zoomBy(zoomFactor)
|
|
{
|
|
while (zoomFactor > 0) {
|
|
window.eventSender.zoomPageIn();
|
|
zoomFactor--;
|
|
}
|
|
while (zoomFactor < 0) {
|
|
window.eventSender.zoomPageOut();
|
|
zoomFactor++;
|
|
}
|
|
}
|
|
function testScroll(zoomFactor, scaleFactor) {
|
|
debug('Testing at zoom ' + zoomFactor + ' and scale ' + scaleFactor);
|
|
if (window.testRunner && window.eventSender) {
|
|
var y = 221;
|
|
eventSender.scalePageBy(scaleFactor, 0, 0);
|
|
zoomBy(zoomFactor);
|
|
window.scrollTo(10, 10);
|
|
window.scrollBy(0, y);
|
|
shouldBeCloseTo('window.pageYOffset', y+10, 3, false);
|
|
zoomBy(-zoomFactor);
|
|
}
|
|
else
|
|
testFailed('This test only operates in DumpRenderTree.');
|
|
}
|
|
|
|
function runTests() {
|
|
testScroll(-1,1.2);
|
|
var zoomLevels = [-3, -2, -1, 0, 1, 3, 5];
|
|
var scaleLevels = [0.75, 1, 1.2, 1.6];
|
|
for (zoom in zoomLevels)
|
|
for (scale in scaleLevels)
|
|
testScroll(zoomLevels[zoom], scaleLevels[scale]);
|
|
|
|
wasPostTestScriptParsed = true;
|
|
finishJSTest();
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body onload="runTests()">
|
|
<div id="target"></div>
|
|
</body>
|
|
</html>
|
|
|