<head>
    <style>
        html, body { margin:0; overflow: hidden; }
    </style>
    <script src="../../resources/js-test-pre.js"></script>
</head>

<div>This tests that a usually overflow: hidden viewport should be scrollable when scaled. Otherwise, you can't get to content
    you would have been able to get to had you not been zoomed it.</div>
<div id="console"></div>

<div style='font-size:40px; height: 1000px;'>
</div>

<script>
    (function() {
        if (!window.testRunner) {
            debug("This test only works in the test runner.");
            return;
        }
        
        // Force a layout.
        document.body.offsetLeft;

        if (window.internals)
            window.internals.setPageScaleFactor(2, 0, 0);

        shouldBe("window.document.body.scrollTop", "0");

        if (window.eventSender) {
            eventSender.mouseMoveTo(100, 100);
            eventSender.mouseScrollBy(0, -5);
        }

        shouldBe("window.document.body.scrollTop", "100");
    })();
</script>
