89 lines
2.2 KiB
HTML
89 lines
2.2 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<style id="style-container">
|
|
</style>
|
|
</head>
|
|
<body>
|
|
</body>
|
|
<script>
|
|
description('Test the parsing of :lang(stringList) for querySelector and style.');
|
|
|
|
function testValidLanguageRange(languageRangeString, expectedSerializedLanguageRange) {
|
|
shouldNotThrow('document.querySelector(\':lang(' + languageRangeString.replace(/\\/g, '\\\\') + ')\')');
|
|
|
|
var styleContainer = document.getElementById('style-container');
|
|
styleContainer.innerHTML = ':lang(' + languageRangeString + ') { }';
|
|
shouldBe("document.getElementById('style-container').sheet.cssRules.length", "1");
|
|
if (!expectedSerializedLanguageRange)
|
|
expectedSerializedLanguageRange = languageRangeString;
|
|
expectedSerializedLanguageRange = expectedSerializedLanguageRange.replace(/\\/g, '');
|
|
if (expectedSerializedLanguageRange.indexOf('"') != 0)
|
|
expectedSerializedLanguageRange = '"' + expectedSerializedLanguageRange + '"';
|
|
shouldBeEqualToString("document.getElementById('style-container').sheet.cssRules[0].selectorText", ':lang(' + expectedSerializedLanguageRange + ')');
|
|
styleContainer.innerHTML = '';
|
|
}
|
|
|
|
var validLanguageRanges = [
|
|
|
|
"e",
|
|
"en",
|
|
"en-",
|
|
"en--",
|
|
"en---",
|
|
"en-fr",
|
|
"en-fr-",
|
|
"en-fr--",
|
|
"en--fr",
|
|
"en---fr",
|
|
"en---fr---",
|
|
|
|
"de-DE",
|
|
"de-DE-1996",
|
|
"de-Latn-DE",
|
|
"de-Latf-DE",
|
|
"de-Latn-DE-1996",
|
|
"de-CH",
|
|
"it-CH",
|
|
"fr-CH",
|
|
"rm-CH",
|
|
|
|
'"*-CH"',
|
|
'"*-DE-1996"',
|
|
'"*-br-zh"',
|
|
"id-\\*-sumatra",
|
|
'"*-en-\\*-fr"',
|
|
'"*-en-\\*-\\*"',
|
|
|
|
"\\*",
|
|
'"*-\\*"',
|
|
'"*-\\*-\\*"',
|
|
'"*-\\*-\\*"',
|
|
|
|
'"ab-\\*"',
|
|
'"*-ab-\\*"',
|
|
'"*-ab-\\*-"',
|
|
'"*-ab-\\*--"',
|
|
'"*-ab-\\*---"',
|
|
|
|
'"*-foo-\\:"',
|
|
'"*-foo-\\:"',
|
|
'"*-foo-\\:\\`\\)"',
|
|
'"*-foo-\\:\\*"',
|
|
|
|
'"en-\\*"',
|
|
'"fr-*"'
|
|
];
|
|
|
|
debug("valid language ranges");
|
|
for (var i = 0; i < validLanguageRanges.length; ++i) {
|
|
var languageRangeString = validLanguageRanges[i];
|
|
testValidLanguageRange(languageRangeString);
|
|
testValidLanguageRange(languageRangeString + " ", languageRangeString);
|
|
}
|
|
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</html>
|