Automatic update from web-platform-tests Remove "tentative" from sanitizer API tests. Note that some tests remain tentative as they rely on features that are not in the spec yet (sanitizing declarative shadow DOM, trusted types createParserOptions) -- wpt-commits: e926c7f66f356e140bb8fc941ba19ea58cd53e1b wpt-pr: 59400
72 lines
2.5 KiB
HTML
72 lines
2.5 KiB
HTML
<!DOCTYPE html>
|
|
<head>
|
|
<title>Testcases from the previous Sanitizer API</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="support/html5lib-testcase-support.js"></script>
|
|
<script>
|
|
|
|
// Testcases from the old(er) support/testcases.sub.js file, ported over to
|
|
// the HTML5Lib testcase format.
|
|
promise_test(_ => {
|
|
return html5lib_testcases_from_response(fetch("sethtml-tree-construction.sub.dat")).
|
|
then(testcases => {
|
|
testcases.forEach((testcase, index) => {
|
|
test(_ => {
|
|
const div = document.createElement("div");
|
|
let config = undefined;
|
|
try {
|
|
config = JSON.parse(testcase.config);
|
|
} catch { }
|
|
try {
|
|
div.setHTML(testcase.data, { sanitizer: config });
|
|
} catch (error) {
|
|
assert_equals(
|
|
error.name, testcase.error,
|
|
`Expect exception ${testcase.error}, but got ${error}.`);
|
|
assert_equals(div.firstChild, null);
|
|
return; // Early return in order to not trigger the subsequent
|
|
// assertions.
|
|
}
|
|
assert_false(
|
|
!!testcase.error,
|
|
`Expect exception ${testcase.error}, but nothing was thrown.`);
|
|
assert_testcase(div, testcase);
|
|
}, `Testcase #${index}, "${testcase.data}", config: "${testcase.config}".`);
|
|
});
|
|
});
|
|
}, "wrapper");
|
|
|
|
// support/testcases.sub.js contained a few testcases with non-strings as
|
|
// input. The html5lib format doesn't support that, so we'll just add them here:
|
|
test(_ => {
|
|
const div = document.createElement("div");
|
|
div.setHTML({});
|
|
assert_equals(div.outerHTML, "<div>[object Object]</div>");
|
|
}, "Non-string input: empty object.");
|
|
test(_ => {
|
|
const div = document.createElement("div");
|
|
div.setHTML(1);
|
|
assert_equals(div.outerHTML, "<div>1</div>");
|
|
}, "Non-string input: number.");
|
|
test(_ => {
|
|
const div = document.createElement("div");
|
|
div.setHTML(000);
|
|
assert_equals(div.outerHTML, "<div>0</div>");
|
|
}, "Non-string input: octal number.");
|
|
test(_ => {
|
|
const div = document.createElement("div");
|
|
div.setHTML(1 + 2);
|
|
assert_equals(div.outerHTML, "<div>3</div>");
|
|
}, "Non-string input: expression.");
|
|
test(_ => {
|
|
const div = document.createElement("div");
|
|
div.setHTML(undefined);
|
|
assert_equals(div.outerHTML, "<div>undefined</div>");
|
|
}, "Non-string input: undefined.");
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
</body>
|