blob: 26c2a7a09719a9c45b8ce1a35e04b006e7e074b4 [file] [log] [blame]
<html>
<head>
<script src="../resources/js-test.js"></script>
</head>
<body>
<p id="description"></p>
<div style="border: 1px solid #000; height: 5000px;">5000-pixel box</div>
<!-- The contents of this iframe, more nicely formatted:
<body>
<style>
button {
border: 0;
}
</style>
<div style='border: 1px solid #000; height: 5000px;'>5000-pixel box</div>
<div id='container' style='height: 100px; overflow: scroll'>
<div style='border: 1px solid #000; height: 5000px;'>5000-pixel box</div>
<button id='target'>Target</button>
<div style='border: 1px solid #000; height: 5000px;'>5000-pixel box</div>
</div>
<div style='border: 1px solid #000; height: 5000px;'>5000-pixel box</div>
</body>
-->
<iframe id="frame" src="data:text/html,<body><style>button { border: 0; }</style><div style='border: 1px solid #000; height: 5000px;'>5000-pixel box</div><div id='container' style='height: 100px; overflow: scroll'><div style='border: 1px solid #000; height: 5000px;'>5000-pixel box</div><button id='target'>Target</button><div style='border: 1px solid #000; height: 5000px;'>5000-pixel box</div></div><div style='border: 1px solid #000; height: 5000px;'>5000-pixel box</div></body>"></iframe>
<div style="border: 1px solid #000; height: 5000px;">5000-pixel box</div>
<div id="console"></div>
<script>
description("Tests that scrolling to move an element to a specific point successfully scrolls both an iframe and a div with overflow.");
if (window.testRunner)
testRunner.waitUntilDone();
window.jsTestIsAsync = true;
function runTest() {
window.frame = document.getElementById("frame");
window.frameWindow = frame.contentWindow;
window.frameDoc = frameWindow.document;
window.container = frameDoc.getElementById("container");
window.target = frameDoc.getElementById("target");
if (window.accessibilityController) {
target.focus();
var targetAccessibleObject = accessibilityController.focusedElement;
}
// Reset the initial scroll position (since calling focus() can scroll the page too).
window.scrollTo(0, 0);
frameWindow.scrollTo(0, 0);
container.scrollTop = 0;
shouldBe("window.pageYOffset", "0");
shouldBe("frameWindow.pageYOffset", "0");
shouldBe("container.scrollTop", "0");
// Scroll to various locations and check.
if (window.accessibilityController)
targetAccessibleObject.scrollToGlobalPoint(0, 0);
shouldBe("target.getBoundingClientRect().top", "0");
if (window.accessibilityController)
targetAccessibleObject.scrollToGlobalPoint(0, 300);
shouldBe("target.getBoundingClientRect().top", "300");
if (window.accessibilityController)
targetAccessibleObject.scrollToGlobalPoint(0, 3000);
shouldBe("target.getBoundingClientRect().top", "3000");
finishJSTest();
}
window.addEventListener('load', function() {
setTimeout(runTest, 10);
}, false);
</script>
</body>
</html>