<script src="resources/property-names.js"></script>
<script>
function test()
{
    if (window.testRunner)
        testRunner.dumpAsText();
    var style = document.defaultView.getComputedStyle(document.body, "");
    var text = "";
    for (var i = 0; i != style.length; ++i) {
        var name = style.item(i);
        if (!propertiesToTest[name])
            continue;
        var value = style.getPropertyValue(name);
        text += name + ": " + value + ";\n";
    }
    document.getElementById("exposed").textContent = text;
    text = "";
    for (var i = 0; i != hiddenComputedStyleProperties.length; ++i) {
        var name = hiddenComputedStyleProperties[i];
        var value = style.getPropertyValue(name);
        text += name + ": " + value + ";\n";
    }
    document.getElementById("hidden").textContent = text;
}
</script>
<body onload="test()">
<p>Attributes that are exposed in the CSS computed style object:</p>
<p id="exposed" style="white-space: pre"></p>
<p>Other attributes that the computed style class supports:</p>
<p id="hidden" style="white-space: pre"></p>
</body>
