| <!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> |