<html>
<head>
    <script>
        function log(msg)
        {
            document.getElementById('console').appendChild(document.createTextNode(msg + "\n"));
        }

        function test()
        {
            if (window.testRunner)
                testRunner.dumpAsText();

            log("document.body.clientWidth = " + document.body.clientWidth);
            log("document.body.clientHeight = " + document.body.clientHeight);
        }
    </script>
</head>
<body onload="test()">
    <p>This tests that document.body.clientWidth and document.body.clientHeight cause a layout on use.  The test has passed if they have positive values.</p>
    <pre id="console"></pre>
</body>
</html>
