<html>
<head>
    <link rel="stylesheet" href="resources/default.css"></style>
    <script src="resources/text-based-repaint.js" type="text/javascript"></script>
    <script type="text/javascript">
        if (window.testRunner)
            testRunner.dumpAsTextWithPixelResults();

        window.onload = function() {
            window.scrollTo(1000, 1000);
            runRepaintAndPixelTest();
        };

        function repaintTest()
        {
            var moveMeElement = document.getElementById('moveMe');
            moveMeElement.scrollTop = 100;
            moveMeElement.scrollLeft = 150;
        }
    </script>
</head>
<body style="height:2000px;">
    <!-- You should see 1 green rectangle in the output and no red. -->
    <div id="moveMe" style="top: 150px; left: 100px;" class="fixed clipped">
        <div class="absolute green" style="top: 100px; left: 150px;"></div>
        <div class="absolute red" style="top:0px; left: 0px;"></div>
    </div>
    <!-- Make sure we are scrolled -->
    <div style="top: 0px; left: 0px;" class="absolute red"></div>
</body>
</html>
