<html>
<head>
    <link rel="stylesheet" href="resources/default.css">
    <script src="resources/text-based-repaint.js" type="text/javascript"></script>
    <script type="text/javascript">
        if (window.testRunner)
            testRunner.dumpAsTextWithPixelResults();
        function repaintTest()
        {
            var absoluteDiv = document.getElementById('absoluteDiv');
            absoluteDiv.parentNode.removeChild(absoluteDiv);
            document.body.appendChild(absoluteDiv);
        }
    </script>
</head>
<body style="height:2000px;" onload="runRepaintAndPixelTest()">
    <!-- You should see 1 green rectangle in the output and no red. -->
    <div style="top: 1000px;" class="fixed red"><div id="absoluteDiv" style="top:100px; left:100px;" class="absolute green"></div></div>
</body>
</html>
