50 lines
1.1 KiB
HTML
50 lines
1.1 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 :is(selectorList) for querySelector and style.');
|
|
|
|
function testInvalidSelector(selectorString) {
|
|
var styleContainer = document.getElementById('style-container');
|
|
styleContainer.innerHTML = ':is(' + selectorString + ') { }';
|
|
const parsed = document.getElementById('style-container').sheet.cssRules.length == 1;
|
|
debug(`selector '${styleContainer.innerHTML}' parsed: ${parsed ? "YES" : "NO"}`);
|
|
styleContainer.innerHTML = '';
|
|
}
|
|
|
|
var invalidSelectors = [
|
|
// Not selectors.
|
|
"",
|
|
" ",
|
|
",",
|
|
|
|
".123class",
|
|
"#123id",
|
|
"[]",
|
|
"()",
|
|
")",
|
|
"{}",
|
|
"}",
|
|
|
|
// Unbalanced parenthesized functional pseudo classes.
|
|
":not(",
|
|
":is(",
|
|
":nth-child(2n+1 of",
|
|
];
|
|
|
|
debug("1 invalid selectors");
|
|
for (var i = 0; i < invalidSelectors.length; ++i) {
|
|
var selectorString = invalidSelectors[i];
|
|
testInvalidSelector(selectorString);
|
|
}
|
|
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</html>
|