fune/testing/web-platform/tests/css/css-syntax/input-preprocessing.html
Tab Atkins Jr 354f74e6d9 Bug 1523562 [wpt PR 15086] - Input Preprocessing, a=testonly
Automatic update from web-platform-tests
Input Preprocessing

Tests <https://github.com/w3c/csswg-drafts/issues/3307>
--
Rename css/input-preprocessing.html to css/css-syntax/input-preprocessing.html
--
Merge pull request #15086 from web-platform-tests/tabatkins-patch-4

Input Preprocessing
--

wpt-commits: b3d3189634e45949991f61a64524f9dc783ffc05, ab2ef95d3a7c512a6e7321688c80e428086af426, 14817522416a92b78ccbbc67baad8d1e001c0151
wpt-pr: 15086
2019-02-07 21:51:12 +00:00

46 lines
1.3 KiB
HTML

<!doctype html>
<title>Input Preprocessing</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
foo { color: blue; }
</style>
<meta name="author" title="Tab Atkins-Bittner">
<link rel=help href="https://drafts.csswg.org/css-syntax/#input-preprocessing">
<script>
function roundtripIdent(str) {
const rule = document.styleSheets[0].cssRules[0];
rule.selectorText = "original-ident";
rule.selectorText = str;
// Check for parse error.
if(rule.selectorText == "original-ident") return "parse error";
return rule.selectorText;
}
function testParsing(input, expected) {
test(()=>{
assert_equals(roundtripIdent(input), expected);
}, `"${input}" becomes "${expected}"`);
}
/* Can't figure out how to test the newline normalization... */
/* NULL becomes FFFD */
testParsing("foo\x00", "foo\ufffd");
testParsing("f\x00oo", "f\ufffdoo");
testParsing("\x00foo", "\ufffdfoo");
testParsing("\x00", "\ufffd");
testParsing("\x00\x00\x00", "\ufffd\ufffd\ufffd");
/* surrogates become FFFD */
testParsing("foo\ud800", "foo\ufffd");
testParsing("f\ud800oo", "f\ufffdoo");
testParsing("\ud800foo", "\ufffdfoo");
testParsing("\ud800", "\ufffd");
testParsing("\ud800\ud800\ud800", "\ufffd\ufffd\ufffd");
</script>