File: html5lib-basics.tentative.html

package info (click to toggle)
thunderbird 1%3A140.4.0esr-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 4,609,432 kB
  • sloc: cpp: 7,672,442; javascript: 5,901,613; ansic: 3,898,954; python: 1,413,343; xml: 653,997; asm: 462,286; java: 180,927; sh: 113,489; makefile: 20,460; perl: 14,288; objc: 13,059; yacc: 4,583; pascal: 3,352; lex: 1,720; ruby: 1,222; exp: 762; sql: 715; awk: 580; php: 436; lisp: 430; sed: 70; csh: 10
file content (95 lines) | stat: -rw-r--r-- 2,099 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<!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>