Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

<!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.dat")).
then(testcases => {
testcases.forEach((testcase, index) => {
test(_ => {
const div = document.createElement("div");
let config = undefined;
try {
config = JSON.parse(testcase.config);
} catch { }
div.setHTML(testcase.data, { sanitizer: config });
assert_testcase(div, testcase);
}, `Testcase #${index}, "${testcase.data}".`);
});
});
}, "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>