<html>
<head>
<script>
function testRects()
{
    if (!window.testRunner || !window.internals)
        return;
    testRunner.dumpAsText();
    
    var div = document.getElementById("div");
    var rectList = div.getClientRects();
    window.internals.setPageScaleFactor(2, 0, 0);
    var scaledRectList = div.getClientRects();

    var result = document.getElementById("result");
    var rect = rectList[0];
    var scaledRect = scaledRectList[0];
    
    if (rect.left == scaledRect.left &&
        rect.top == scaledRect.top &&
        rect.right == scaledRect.right &&
        rect.bottom == scaledRect.bottom)
        result.innerHTML = "Pass";
    else
        result.innerHTML = "Fail";
    
}
</script>
</head>

<body onload="testRects();">
    <div id="div" style="width:100px; height:100px; background-color:green;"></div>
    <p id="result">This test must be run via DumpRenderTree.</p>
</body>
</html>
