<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Bug 34529 - [CSSOM] issues with cssText and selectorText</title>
<style type="text/css">
/* Control characters */
.\01_class {
    color:green;
}
.\1f_class {
    color:green;
}
.\30_class {
    color:green;
}
.\39_class {
    color:green;
}
/* Characters following '-' */
.-\30_class {
    color:green;
}
.-\39_class {
    color:green;
}
.-\2d_class {
    color:green;
}
/* non-ASCII characters */
.\81_class {
    color:green;
}
/* unicode characters */
.日本語_class {
    color:green;
}
/* unicode supplementary characters (surrogate pairs) */
.𐐀_class {
    color:green;
}
/* plain characters */
.azAZ09_-_class {
    color:green;
}
.\(\/\:\@\[\~_class {
    color:green;
}
/* ID */
#a\.external\:visited {
    color:green;
}
/* String */
li[myattr="my\"value\\"] {
    color:green;
}

li {
    color:red;
}
</style>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<p id="description"></p>

List items must be green. Otherwise some selectors are invalid.
<ul>
<li class="&#001;_class">class="&amp;#001;_class"</li>
<li class="&#031;_class">class="&amp;#031;_class"</li>
<li class="0_class">class="0_class"</li>
<li class="9_class">class="9_class"</li>
<li class="-0_class">class="-0_class"</li>
<li class="-9_class">class="-9_class"</li>
<li class="--_class">class="--_class"</li>
<li class="&#129;_class">class="&amp;#129;_class"</li>
<li class="日本語_class">class="日本語_class"</li>
<li class="&#66560;_class">class="&#66560;_class"</li>
<li class="azAZ09_-_class">class="azAZ09_-_class"</li>
<li class="(/:@[~_class">class="(/:@[~_class"</li>
<li id="a.external:visited">id="a.external:visited"</li>
<li myattr="my&#034;value&#092;">myattr="my&#034;value&#092;"</li>
</ul>

<div id="console"></div>
<script type="text/javascript">
description("Test for Bug 34529 - [CSSOM] issues with cssText and selectorText");

var expectedTexts = [
    ".\\1 _class",
    ".\\1f _class",
    ".\\30 _class",
    ".\\39 _class",
    ".-\\30 _class",
    ".-\\39 _class",
    ".-\\-_class",
    ".\x81_class",
    ".日本語_class",
    ".𐐀_class",
    ".azAZ09_-_class",
    ".\\(\\/\\:\\@\\[\\~_class",
    "#a\\.external\\:visited",
    'li[myattr="my\\"value\\\\"]'
];

var rules = document.styleSheets[0].cssRules;
for (var i = 0; i < expectedTexts.length; i++) {
    shouldBe("rules[" + i + "].selectorText", "expectedTexts[" + i + "]");
    shouldBe("rules[" + i + "].cssText", "expectedTexts[" + i + "] + ' { color: green; }'");
}
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
