<style>
#a { content: attr(b); }
#c { content: attr("x"); }
#d { content: attr(0); }
#e { content: attr(0.0); }
#f { content: attr(0%); }
#g { content: attr(0px); }
#h { content: attr(); }
#i { content: attr(+0); }
#j { content: attr(-k); }
#l { content: attr(0m); }
#n { content: attr(-0p); }
#q { content: attr(url(http://webkit.org)); }
#r { content: attr(U+0020); }
#s { content: attr(U+0020-00FF); }
#t { content: attr(#123456); }
#u { content: attr(#); }
</style>

<p id="message">TEST DID NOT COMPLETE</p>

<p>Rules from the stylesheet:</p>

<pre id="result"></pre>

<p>Expected result:</p>

<pre id="expected">#a { content: attr(b); }
#c { }
#d { }
#e { }
#f { }
#g { }
#h { }
#i { }
#j { }
#l { }
#n { }
#q { }
#r { }
#s { }
#t { }
#u { }
</pre>

<script>

if (window.layoutTestController)
    layoutTestController.dumpAsText();

var rules = document.styleSheets[0].cssRules;
var text = "";
for (var i = 0; i < rules.length; i++) {
    text += rules.item(i).cssText;
    text += "\n";
}

document.getElementById("result").appendChild(document.createTextNode(text));

if (document.getElementById("result").firstChild.data === document.getElementById("expected").firstChild.data)
    document.getElementById("message").firstChild.data = "SUCCESS";
else
    document.getElementById("message").firstChild.data = "FAILURE";

</script>
