<!DOCTYPE html>
<head>
<script src="../resources/js-test.js"></script>
<style>
button {
  border: 0;
}
</style>
</head>
<body>

<p id="description"></p>

<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 id="console"></div>

<script>
description("Tests that scrolling an element to a specific point successfully scrolls the main window.");

function runTest() {
    var target = document.getElementById("target");

    if (window.accessibilityController) {
        target.focus();
        internals.updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks();
        var targetAccessibleObject = accessibilityController.focusedElement;
    }

    // Reset the initial scroll position (since calling focus() can scroll the page too).
    window.scrollTo(0, 0);
    shouldBe("window.pageYOffset", "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();
}

runTest();

</script>

</body>
</html>
