<script>
    function test()
    {
        if (window.testRunner)
            testRunner.dumpAsText();

        var rules = getMatchedCSSRules(document.body, "");
        if (rules && rules.length) {
            log("FAIL: Expected 0 matched rules, but found " + rules.length + ":");
            for (var i = 0; i < rules.length; ++i)
                log(rules[i].cssText);
            return;
        }

        log("PASS");
    }

    function log(msg)
    {
        document.getElementById("log").appendChild(document.createTextNode(msg + "\n"));
    }
</script>
<style>
body {
    word-break: solid;
    -webkit-user-modify: solid;
}
</style>
<body onload="test()">
<p>This page tests that invalid values for the <tt>word-break</tt> and <tt>-webkit-user-modify</tt> properties are rejected by the CSS parser.</p>
<pre id="log"></pre>
</body>
