<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 (!name.match(/^font/))
            continue;
        var value = style.getPropertyValue(name);
        text += name + ": " + value + ";\n";
    }
    document.getElementById("exposed").textContent = text;
}
</script>
<body onload="test()" style="font-family: monospace, 'Lucida Grande', sans-serif">
<p>Font attributes. The font-family should list three families:</p>
<p id="exposed" style="white-space: pre"></p>
</body>
