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

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

            var element = document.getElementById('nonPositionedDiv');
            var compStyle = element.ownerDocument.defaultView.getComputedStyle(element, null);
            log("Non-positioned Div:");
            log("    Computed Style = " + compStyle.zIndex + " (Should be auto)");
            log("    element.style.zIndex = " + element.style.zIndex + " (Should be 20)");
            log("");

            element = document.getElementById('positionedDiv');
            compStyle = element.ownerDocument.defaultView.getComputedStyle(element, null);
            log("Positioned Div:");
            log("    Computed Style = " + compStyle.zIndex + " (Should be 20)");
            log("    element.style.zIndex = " + element.style.zIndex + " (Should be 20)");
        }
    </script>
</head>
<body onload="test();">
    <div style="z-index:20" id='nonPositionedDiv'></div>
    <div style="z-index:20; position: absolute" id='positionedDiv'></div>
    <pre id='console'></pre>
</body>
</html>
