95 lines
2 KiB
HTML
95 lines
2 KiB
HTML
<!DOCTYPE html>
|
|
<head>
|
|
<title>Basic setHTMLUnsafe test cases</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="support/html5lib-testcase-support.js"></script
|
|
</head>
|
|
<body>
|
|
<script type="html5lib-tests">
|
|
#data
|
|
Hello!
|
|
#document
|
|
| "Hello!"
|
|
|
|
#data
|
|
<p>bla
|
|
#document
|
|
| <p>
|
|
| "bla"
|
|
|
|
#data
|
|
<p id=abc def='123'>texty<!-- xxx -->textz
|
|
#document
|
|
| <p>
|
|
| def="123"
|
|
| id="abc"
|
|
| "texty"
|
|
| <!-- xxx -->
|
|
| "textz"
|
|
|
|
#data
|
|
<p>Hello <b>World</b><span>!
|
|
#document
|
|
| <p>
|
|
| "Hello "
|
|
| <b>
|
|
| "World"
|
|
| <span>
|
|
| "!"
|
|
|
|
#data
|
|
<p>A template example.<template>Hello <b>World</b></template>!
|
|
#document
|
|
| <p>
|
|
| "A template example."
|
|
| <template>
|
|
| content
|
|
| "Hello "
|
|
| <b>
|
|
| "World"
|
|
| "!"
|
|
|
|
#data
|
|
<td>Interesting parse context.</td>
|
|
#document-fragment
|
|
table
|
|
#document
|
|
| <tbody>
|
|
| <tr>
|
|
| <td>
|
|
| "Interesting parse context."
|
|
|
|
#data
|
|
<p>A rather boring parse context.
|
|
#document-fragment
|
|
p
|
|
#document
|
|
| <p>
|
|
| "A rather boring parse context."
|
|
|
|
</script>
|
|
<script>
|
|
// This runs a number of simple test cases that test setHTMLUnsafe, and
|
|
// setHTMLUnsafe vs innerHTML. This purposely doesn't include "advanced" test
|
|
// cases where the behaviours of those two methodsis supposed to differ.
|
|
//
|
|
// This sort of also doubles as unit tests for html5lib-testcase-support.js
|
|
html5lib_testcases_from_script().forEach((testcase, index) => {
|
|
test(_ => {
|
|
const context = document.createElement(testcase["document-fragment"] ?? "div");
|
|
context.setHTMLUnsafe(testcase.data);
|
|
assert_testcase(context, testcase);
|
|
}, `Testcase #${index} with .setHTMLUnsafe("${testcase.data}")`);
|
|
|
|
test(_ => {
|
|
const context_element = testcase["document-fragment"] ?? "div";
|
|
const context = document.createElement(context_element);
|
|
const context2 = document.createElement(context_element);
|
|
|
|
context.setHTMLUnsafe(testcase.data);
|
|
context2.innerHTML = testcase.data;
|
|
assert_subtree_equals(context, context2);
|
|
}, `Testcase #${index}, .innerHTML matches .setHTMLUnsafe`);
|
|
});
|
|
</script>
|