diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /parser/htmlparser/tests/mochitest/html5lib_tree_construction | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'parser/htmlparser/tests/mochitest/html5lib_tree_construction')
54 files changed, 20729 insertions, 0 deletions
diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/README.md b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/README.md new file mode 100644 index 0000000000..be41fa44f8 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/README.md @@ -0,0 +1,104 @@ +Tree Construction Tests +======================= + +Each file containing tree construction tests consists of any number of +tests separated by two newlines (LF) and a single newline before the end +of the file. For instance: + + [TEST]LF + LF + [TEST]LF + LF + [TEST]LF + +Where [TEST] is the following format: + +Each test must begin with a string "\#data" followed by a newline (LF). +All subsequent lines until a line that says "\#errors" are the test data +and must be passed to the system being tested unchanged, except with the +final newline (on the last line) removed. + +Then there must be a line that says "\#errors". It must be followed by +one line per parse error that a conformant checker would return. It +doesn't matter what those lines are, although they can't be +"\#document-fragment", "\#document", "\#script-off", "\#script-on", or +empty, the only thing that matters is that there be the right number +of parse errors. + +Then there \*may\* be a line that says "\#document-fragment", which must +be followed by a newline (LF), followed by a string of characters that +indicates the context element, followed by a newline (LF). If the string +of characters starts with "svg ", the context element is in the SVG +namespace and the substring after "svg " is the local name. If the +string of characters starts with "math ", the context element is in the +MathML namespace and the substring after "math " is the local name. +Otherwise, the context element is in the HTML namespace and the string +is the local name. If this line is present the "\#data" must be parsed +using the HTML fragment parsing algorithm with the context element as +context. + +Then there \*may\* be a line that says "\#script-off" or +"\#script-in". If a line that says "\#script-off" is present, the +parser must set the scripting flag to disabled. If a line that says +"\#script-on" is present, it must set it to enabled. Otherwise, the +test should be run in both modes. + +Then there must be a line that says "\#document", which must be followed +by a dump of the tree of the parsed DOM. Each node must be represented +by a single line. Each line must start with "| ", followed by two spaces +per parent node that the node has before the root document node. + +- Element nodes must be represented by a "`<`" then the *tag name + string* "`>`", and all the attributes must be given, sorted + lexicographically by UTF-16 code unit according to their *attribute + name string*, on subsequent lines, as if they were children of the + element node. +- Attribute nodes must have the *attribute name string*, then an "=" + sign, then the attribute value in double quotes ("). +- Text nodes must be the string, in double quotes. Newlines aren't + escaped. +- Comments must be "`<`" then "`!-- `" then the data then "` -->`". +- DOCTYPEs must be "`<!DOCTYPE `" then the name then if either of the + system id or public id is non-empty a space, public id in + double-quotes, another space an the system id in double-quotes, and + then in any case "`>`". +- Processing instructions must be "`<?`", then the target, then a + space, then the data and then "`>`". (The HTML parser cannot emit + processing instructions, but scripts can, and the WebVTT to DOM + rules can emit them.) +- Template contents are represented by the string "content" with the + children below it. + +The *tag name string* is the local name prefixed by a namespace +designator. For the HTML namespace, the namespace designator is the +empty string, i.e. there's no prefix. For the SVG namespace, the +namespace designator is "svg ". For the MathML namespace, the namespace +designator is "math ". + +The *attribute name string* is the local name prefixed by a namespace +designator. For no namespace, the namespace designator is the empty +string, i.e. there's no prefix. For the XLink namespace, the namespace +designator is "xlink ". For the XML namespace, the namespace designator +is "xml ". For the XMLNS namespace, the namespace designator is "xmlns +". Note the difference between "xlink:href" which is an attribute in no +namespace with the local name "xlink:href" and "xlink href" which is an +attribute in the xlink namespace with the local name "href". + +If there is also a "\#document-fragment" the bit following "\#document" +must be a representation of the HTML fragment serialization for the +context element given by "\#document-fragment". + +For example: + + #data + <p>One<p>Two + #errors + 3: Missing document type declaration + #document + | <html> + | <head> + | <body> + | <p> + | "One" + | <p> + | "Two" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/adoption01.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/adoption01.dat new file mode 100644 index 0000000000..2e1127e517 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/adoption01.dat @@ -0,0 +1,337 @@ +#data +<a><p></a></p> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,10): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <a> +| <p> +| <a> + +#data +<a>1<p>2</a>3</p> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,12): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <a> +| "1" +| <p> +| <a> +| "2" +| "3" + +#data +<a>1<button>2</a>3</button> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,17): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <a> +| "1" +| <button> +| <a> +| "2" +| "3" + +#data +<a>1<b>2</a>3</b> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,12): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <a> +| "1" +| <b> +| "2" +| <b> +| "3" + +#data +<a>1<div>2<div>3</a>4</div>5</div> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,20): adoption-agency-1.3 +(1,20): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <a> +| "1" +| <div> +| <a> +| "2" +| <div> +| <a> +| "3" +| "4" +| "5" + +#data +<table><a>1<p>2</a>3</p> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,10): unexpected-start-tag-implies-table-voodoo +(1,11): unexpected-character-implies-table-voodoo +(1,14): unexpected-start-tag-implies-table-voodoo +(1,15): unexpected-character-implies-table-voodoo +(1,19): unexpected-end-tag-implies-table-voodoo +(1,19): adoption-agency-1.3 +(1,20): unexpected-character-implies-table-voodoo +(1,24): unexpected-end-tag-implies-table-voodoo +(1,24): eof-in-table +#document +| <html> +| <head> +| <body> +| <a> +| "1" +| <p> +| <a> +| "2" +| "3" +| <table> + +#data +<b><b><a><p></a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,16): adoption-agency-1.3 +(1,16): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| <b> +| <a> +| <p> +| <a> + +#data +<b><a><b><p></a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,16): adoption-agency-1.3 +(1,16): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| <a> +| <b> +| <b> +| <p> +| <a> + +#data +<a><b><b><p></a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,16): adoption-agency-1.3 +(1,16): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <b> +| <b> +| <b> +| <b> +| <p> +| <a> + +#data +<p>1<s id="A">2<b id="B">3</p>4</s>5</b> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,30): unexpected-end-tag +(1,35): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <p> +| "1" +| <s> +| id="A" +| "2" +| <b> +| id="B" +| "3" +| <s> +| id="A" +| <b> +| id="B" +| "4" +| <b> +| id="B" +| "5" + +#data +<table><a>1<td>2</td>3</table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,10): unexpected-start-tag-implies-table-voodoo +(1,11): unexpected-character-implies-table-voodoo +(1,15): unexpected-cell-in-table-body +(1,30): unexpected-implied-end-tag-in-table-view +#document +| <html> +| <head> +| <body> +| <a> +| "1" +| <a> +| "3" +| <table> +| <tbody> +| <tr> +| <td> +| "2" + +#data +<table>A<td>B</td>C</table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,8): unexpected-character-implies-table-voodoo +(1,12): unexpected-cell-in-table-body +(1,22): unexpected-character-implies-table-voodoo +#document +| <html> +| <head> +| <body> +| "AC" +| <table> +| <tbody> +| <tr> +| <td> +| "B" + +#data +<a><svg><tr><input></a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,23): unexpected-end-tag +(1,23): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <a> +| <svg svg> +| <svg tr> +| <svg input> + +#data +<div><a><b><div><div><div><div><div><div><div><div><div><div></a> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,65): adoption-agency-1.3 +(1,65): adoption-agency-1.3 +(1,65): adoption-agency-1.3 +(1,65): adoption-agency-1.3 +(1,65): adoption-agency-1.3 +(1,65): adoption-agency-1.3 +(1,65): adoption-agency-1.3 +(1,65): adoption-agency-1.3 +(1,65): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <a> +| <b> +| <b> +| <div> +| <a> +| <div> +| <a> +| <div> +| <a> +| <div> +| <a> +| <div> +| <a> +| <div> +| <a> +| <div> +| <a> +| <div> +| <a> +| <div> +| <div> + +#data +<div><a><b><u><i><code><div></a> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,32): adoption-agency-1.3 +(1,32): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <a> +| <b> +| <u> +| <i> +| <code> +| <u> +| <i> +| <code> +| <div> +| <a> + +#data +<b><b><b><b>x</b></b></b></b>y +#errors +(1,3): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <b> +| <b> +| <b> +| <b> +| "x" +| "y" + +#data +<p><b><b><b><b><p>x +#errors +(1,3): expected-doctype-but-got-start-tag +(1,18): unexpected-end-tag +(1,19): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <b> +| <b> +| <b> +| <b> +| <p> +| <b> +| <b> +| <b> +| "x" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/adoption02.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/adoption02.dat new file mode 100644 index 0000000000..0502cf3021 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/adoption02.dat @@ -0,0 +1,99 @@ +#data +<b>1<i>2<p>3</b>4 +#errors +(1,3): expected-doctype-but-got-start-tag +(1,16): adoption-agency-1.3 +(1,17): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| "1" +| <i> +| "2" +| <i> +| <p> +| <b> +| "3" +| "4" + +#data +<a><div><style></style><address><a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,35): unexpected-start-tag-implies-end-tag +(1,35): adoption-agency-1.3 +(1,35): adoption-agency-1.3 +(1,35): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <div> +| <a> +| <style> +| <address> +| <a> +| <a> + +#data +<b><i><a><s><tt><div></b>first</b></div></tt></s></a>second</i> +#errors +3: Start tag seen without seeing a doctype first. Expected "<!DOCTYPE html>". +25: End tag "b" violates nesting rules. +34: Stray end tag "b". +63: Stray end tag "i". +#document +| <html> +| <head> +| <body> +| <b> +| <i> +| <a> +| <s> +| <tt> +| <a> +| <s> +| <tt> +| <div> +| <b> +| "first" +| "second" + +#data +<code foo="bar"><code><code><code><code></code></code></code></code>text</code> +#errors +16: Start tag seen without seeing a doctype first. Expected "<!DOCTYPE html>". +#document +| <html> +| <head> +| <body> +| <code> +| foo="bar" +| <code> +| <code> +| <code> +| <code> +| "text" + +#data +<code foo="bar"><code><code><code><div><code></div></code></code></code></code>text</code> +#errors +16: Start tag seen without seeing a doctype first. Expected "<!DOCTYPE html>". +51: End tag "div" seen, but there were open elements. +45: Unclosed element "code". +58: No "code" element in scope but a "code" end tag seen. +#document +| <html> +| <head> +| <body> +| <code> +| foo="bar" +| <code> +| <code> +| <code> +| <div> +| <code> +| "text" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/comments01.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/comments01.dat new file mode 100644 index 0000000000..32021e15ca --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/comments01.dat @@ -0,0 +1,206 @@ +#data +FOO<!-- BAR -->BAZ +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- BAR --> +| "BAZ" + +#data +FOO<!-- BAR --!>BAZ +#errors +(1,3): expected-doctype-but-got-chars +(1,15): unexpected-bang-after-double-dash-in-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- BAR --> +| "BAZ" + +#data +FOO<!-- BAR --! >BAZ +#errors +(1,3): expected-doctype-but-got-chars +#new-errors +(1:20) eof-in-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- BAR --! >BAZ --> + +#data +FOO<!-- BAR --! +>BAZ +#errors +(1,3): expected-doctype-but-got-chars +#new-errors +(1:20) eof-in-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- BAR --! +>BAZ --> + +#data +FOO<!-- BAR -- >BAZ +#errors +(1,3): expected-doctype-but-got-chars +(1,15): unexpected-char-in-comment +(1,21): eof-in-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- BAR -- >BAZ --> + +#data +FOO<!-- BAR -- <QUX> -- MUX -->BAZ +#errors +(1,3): expected-doctype-but-got-chars +(1,15): unexpected-char-in-comment +(1,24): unexpected-char-in-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- BAR -- <QUX> -- MUX --> +| "BAZ" + +#data +FOO<!-- BAR -- <QUX> -- MUX --!>BAZ +#errors +(1,3): expected-doctype-but-got-chars +(1,15): unexpected-char-in-comment +(1,24): unexpected-char-in-comment +(1,31): unexpected-bang-after-double-dash-in-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- BAR -- <QUX> -- MUX --> +| "BAZ" + +#data +FOO<!-- BAR -- <QUX> -- MUX -- >BAZ +#errors +(1,3): expected-doctype-but-got-chars +(1,15): unexpected-char-in-comment +(1,24): unexpected-char-in-comment +(1,31): unexpected-char-in-comment +(1,35): eof-in-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- BAR -- <QUX> -- MUX -- >BAZ --> + +#data +FOO<!---->BAZ +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- --> +| "BAZ" + +#data +FOO<!--->BAZ +#errors +(1,3): expected-doctype-but-got-chars +(1,9): incorrect-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- --> +| "BAZ" + +#data +FOO<!-->BAZ +#errors +(1,3): expected-doctype-but-got-chars +(1,8): incorrect-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- --> +| "BAZ" + +#data +<?xml version="1.0">Hi +#errors +(1,1): expected-tag-name-but-got-question-mark +(1,22): expected-doctype-but-got-chars +#document +| <!-- ?xml version="1.0" --> +| <html> +| <head> +| <body> +| "Hi" + +#data +<?xml version="1.0"> +#errors +(1,1): expected-tag-name-but-got-question-mark +(1,20): expected-doctype-but-got-eof +#document +| <!-- ?xml version="1.0" --> +| <html> +| <head> +| <body> + +#data +<?xml version +#errors +(1,1): expected-tag-name-but-got-question-mark +(1,13): expected-doctype-but-got-eof +#document +| <!-- ?xml version --> +| <html> +| <head> +| <body> + +#data +FOO<!----->BAZ +#errors +(1,3): expected-doctype-but-got-chars +(1,10): unexpected-dash-after-double-dash-in-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- - --> +| "BAZ" + +#data +<html><!-- comment --><title>Comment before head</title> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <!-- comment --> +| <head> +| <title> +| "Comment before head" +| <body> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/doctype01.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/doctype01.dat new file mode 100644 index 0000000000..cec6638971 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/doctype01.dat @@ -0,0 +1,424 @@ +#data +<!DOCTYPE html>Hello +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!dOctYpE HtMl>Hello +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPEhtml>Hello +#errors +(1,9): need-space-after-doctype +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE>Hello +#errors +(1,9): need-space-after-doctype +(1,10): expected-doctype-name-but-got-right-bracket +(1,10): unknown-doctype +#document +| <!DOCTYPE > +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE >Hello +#errors +(1,11): expected-doctype-name-but-got-right-bracket +(1,11): unknown-doctype +#document +| <!DOCTYPE > +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato>Hello +#errors +(1,17): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato >Hello +#errors +(1,18): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato taco>Hello +#errors +(1,17): expected-space-or-right-bracket-in-doctype +(1,22): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato taco "ddd>Hello +#errors +(1,17): expected-space-or-right-bracket-in-doctype +(1,27): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato sYstEM>Hello +#errors +(1,24): unexpected-char-in-doctype +(1,24): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato sYstEM >Hello +#errors +(1,28): unexpected-char-in-doctype +(1,28): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato sYstEM ggg>Hello +#errors +(1,34): unexpected-char-in-doctype +(1,37): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato SYSTEM taco >Hello +#errors +(1,25): unexpected-char-in-doctype +(1,31): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato SYSTEM 'taco"'>Hello +#errors +(1,32): unknown-doctype +#document +| <!DOCTYPE potato "" "taco""> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato SYSTEM "taco">Hello +#errors +(1,31): unknown-doctype +#document +| <!DOCTYPE potato "" "taco"> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato SYSTEM "tai'co">Hello +#errors +(1,33): unknown-doctype +#document +| <!DOCTYPE potato "" "tai'co"> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato SYSTEMtaco "ddd">Hello +#errors +(1,24): unexpected-char-in-doctype +(1,34): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato grass SYSTEM taco>Hello +#errors +(1,17): expected-space-or-right-bracket-in-doctype +(1,35): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato pUbLIc>Hello +#errors +(1,24): unexpected-end-of-doctype +(1,24): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato pUbLIc >Hello +#errors +(1,25): unexpected-end-of-doctype +(1,25): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato pUbLIcgoof>Hello +#errors +(1,24): unexpected-char-in-doctype +(1,28): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato PUBLIC goof>Hello +#errors +(1,25): unexpected-char-in-doctype +(1,29): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato PUBLIC "go'of">Hello +#errors +(1,32): unknown-doctype +#document +| <!DOCTYPE potato "go'of" ""> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato PUBLIC 'go'of'>Hello +#errors +(1,29): unexpected-char-in-doctype +(1,32): unknown-doctype +#document +| <!DOCTYPE potato "go" ""> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato PUBLIC 'go:hh of' >Hello +#errors +(1,38): unknown-doctype +#document +| <!DOCTYPE potato "go:hh of" ""> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato PUBLIC "W3C-//dfdf" SYSTEM ggg>Hello +#errors +(1,38): unexpected-char-in-doctype +(1,48): unknown-doctype +#document +| <!DOCTYPE potato "W3C-//dfdf" ""> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd">Hello +#errors +#document +| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE ...>Hello +#errors +(1,14): unknown-doctype +#document +| <!DOCTYPE ...> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +#errors +(2,58): unknown-doctype +#document +| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> +#errors +(2,54): unknown-doctype +#document +| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE root-element [SYSTEM OR PUBLIC FPI] "uri" [ +<!-- internal declarations --> +]> +#errors +(1,23): expected-space-or-right-bracket-in-doctype +(2,30): unknown-doctype +#document +| <!DOCTYPE root-element> +| <html> +| <head> +| <body> +| "]>" + +#data +<!DOCTYPE html PUBLIC + "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" + "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> +#errors +(3,53): unknown-doctype +#document +| <!DOCTYPE html "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE HTML SYSTEM "http://www.w3.org/DTD/HTML4-strict.dtd"><body><b>Mine!</b></body> +#errors +(1,63): unknown-doctype +#document +| <!DOCTYPE html "" "http://www.w3.org/DTD/HTML4-strict.dtd"> +| <html> +| <head> +| <body> +| <b> +| "Mine!" + +#data +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> +#errors +(1,50): unexpected-char-in-doctype +#document +| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'> +#errors +(1,50): unexpected-char-in-doctype +#document +| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'> +#errors +(1,21): unexpected-char-in-doctype +(1,49): unexpected-char-in-doctype +#document +| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE HTML PUBLIC'-//W3C//DTD HTML 4.01//EN''http://www.w3.org/TR/html4/strict.dtd'> +#errors +(1,21): unexpected-char-in-doctype +(1,49): unexpected-char-in-doctype +#document +| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +| <html> +| <head> +| <body> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/domjs-unsafe.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/domjs-unsafe.dat Binary files differnew file mode 100644 index 0000000000..34b4e62716 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/domjs-unsafe.dat diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/entities01.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/entities01.dat new file mode 100644 index 0000000000..b271f8220f --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/entities01.dat @@ -0,0 +1,792 @@ +#data +FOO>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO>BAR" + +#data +FOO>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,6): named-entity-without-semicolon +#document +| <html> +| <head> +| <body> +| "FOO>BAR" + +#data +FOO> BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,6): named-entity-without-semicolon +#document +| <html> +| <head> +| <body> +| "FOO> BAR" + +#data +FOO>;;BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO>;;BAR" + +#data +I'm ¬it; I tell you +#errors +(1,4): expected-doctype-but-got-chars +(1,9): named-entity-without-semicolon +#document +| <html> +| <head> +| <body> +| "I'm ¬it; I tell you" + +#data +I'm ∉ I tell you +#errors +(1,4): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "I'm ∉ I tell you" + +#data +FOO& BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO& BAR" + +#data +FOO&<BAR> +#errors +(1,3): expected-doctype-but-got-chars +(1,9): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO&" +| <bar> + +#data +FOO&&&>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO&&&>BAR" + +#data +FOO)BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO)BAR" + +#data +FOOABAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOOABAR" + +#data +FOOABAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOOABAR" + +#data +FOO&#BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,5): expected-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO&#BAR" + +#data +FOO&#ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,5): expected-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO&#ZOO" + +#data +FOOºR +#errors +(1,3): expected-doctype-but-got-chars +(1,7): expected-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOºR" + +#data +FOO&#xZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,6): expected-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO&#xZOO" + +#data +FOO&#XZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,6): expected-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO&#XZOO" + +#data +FOO)BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,7): numeric-entity-without-semicolon +#document +| <html> +| <head> +| <body> +| "FOO)BAR" + +#data +FOO䆺R +#errors +(1,3): expected-doctype-but-got-chars +(1,10): numeric-entity-without-semicolon +#document +| <html> +| <head> +| <body> +| "FOO䆺R" + +#data +FOOAZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,8): numeric-entity-without-semicolon +#document +| <html> +| <head> +| <body> +| "FOOAZOO" + +#data +FOO�ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO�ZOO" + +#data +FOOxZOO +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOOxZOO" + +#data +FOOyZOO +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOOyZOO" + +#data +FOO€ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO€ZOO" + +#data +FOOZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO‚ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO‚ZOO" + +#data +FOOƒZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOƒZOO" + +#data +FOO„ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO„ZOO" + +#data +FOO…ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO…ZOO" + +#data +FOO†ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO†ZOO" + +#data +FOO‡ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO‡ZOO" + +#data +FOOˆZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOˆZOO" + +#data +FOO‰ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO‰ZOO" + +#data +FOOŠZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOŠZOO" + +#data +FOO‹ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO‹ZOO" + +#data +FOOŒZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOŒZOO" + +#data +FOOZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOOŽZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOŽZOO" + +#data +FOOZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOOZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO‘ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO‘ZOO" + +#data +FOO’ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO’ZOO" + +#data +FOO“ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO“ZOO" + +#data +FOO”ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO”ZOO" + +#data +FOO•ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO•ZOO" + +#data +FOO–ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO–ZOO" + +#data +FOO—ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO—ZOO" + +#data +FOO˜ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO˜ZOO" + +#data +FOO™ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO™ZOO" + +#data +FOOšZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOšZOO" + +#data +FOO›ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO›ZOO" + +#data +FOOœZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOœZOO" + +#data +FOOZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOOžZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOžZOO" + +#data +FOOŸZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOŸZOO" + +#data +FOO ZOO +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO ZOO" + +#data +FOO퟿ZOO +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO�ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO�ZOO" + +#data +FOO�ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO�ZOO" + +#data +FOO�ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO�ZOO" + +#data +FOO�ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO�ZOO" + +#data +FOOZOO +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOOZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,13): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO􈟔ZOO +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOOZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,13): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO�ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,13): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO�ZOO" + +#data +FOO�ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,13): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO�ZOO" + +#data +FOO� +#errors +(1,3): expected-doctype-but-got-chars +(1,13): illegal-codepoint-for-numeric-entity +(1,13): eof-in-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO�" + +#data +FOO� +#errors +(1,3): expected-doctype-but-got-chars +(1,13): illegal-codepoint-for-numeric-entity +(1,13): eof-in-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO�" + +#data +FOO� +#errors +(1,3): expected-doctype-but-got-chars +(1,13): illegal-codepoint-for-numeric-entity +(1,13): eof-in-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO�" + +#data +FOO�ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,13): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO�ZOO" + +#data +FOO�ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,13): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO�ZOO" + +#data +FOO�ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,13): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO�ZOO" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/entities02.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/entities02.dat new file mode 100644 index 0000000000..f117f068a0 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/entities02.dat @@ -0,0 +1,283 @@ +#data +<div bar="ZZ>YY"></div> +#errors +(1,20): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>YY" + +#data +<div bar="ZZ&"></div> +#errors +(1,15): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ&" + +#data +<div bar='ZZ&'></div> +#errors +(1,15): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ&" + +#data +<div bar=ZZ&></div> +#errors +(1,13): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ&" + +#data +<div bar="ZZ>=YY"></div> +#errors +(1,15): named-entity-without-semicolon +(1,20): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>=YY" + +#data +<div bar="ZZ>0YY"></div> +#errors +(1,20): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>0YY" + +#data +<div bar="ZZ>9YY"></div> +#errors +(1,20): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>9YY" + +#data +<div bar="ZZ>aYY"></div> +#errors +(1,20): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>aYY" + +#data +<div bar="ZZ>ZYY"></div> +#errors +(1,20): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>ZYY" + +#data +<div bar="ZZ> YY"></div> +#errors +(1,15): named-entity-without-semicolon +(1,20): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ> YY" + +#data +<div bar="ZZ>"></div> +#errors +(1,15): named-entity-without-semicolon +(1,17): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>" + +#data +<div bar='ZZ>'></div> +#errors +(1,15): named-entity-without-semicolon +(1,17): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>" + +#data +<div bar=ZZ>></div> +#errors +(1,14): named-entity-without-semicolon +(1,15): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>" + +#data +<div bar="ZZ£_id=23"></div> +#errors +(1,18): named-entity-without-semicolon +(1,26): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ£_id=23" + +#data +<div bar="ZZ&prod_id=23"></div> +#errors +(1,25): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ&prod_id=23" + +#data +<div bar="ZZ£_id=23"></div> +#errors +(1,27): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ£_id=23" + +#data +<div bar="ZZ∏_id=23"></div> +#errors +(1,26): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ∏_id=23" + +#data +<div bar="ZZ£=23"></div> +#errors +(1,18): named-entity-without-semicolon +(1,23): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ£=23" + +#data +<div bar="ZZ&prod=23"></div> +#errors +(1,22): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ&prod=23" + +#data +<div>ZZ£_id=23</div> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,13): named-entity-without-semicolon +#document +| <html> +| <head> +| <body> +| <div> +| "ZZ£_id=23" + +#data +<div>ZZ&prod_id=23</div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| "ZZ&prod_id=23" + +#data +<div>ZZ£_id=23</div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| "ZZ£_id=23" + +#data +<div>ZZ∏_id=23</div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| "ZZ∏_id=23" + +#data +<div>ZZ£=23</div> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,13): named-entity-without-semicolon +#document +| <html> +| <head> +| <body> +| <div> +| "ZZ£=23" + +#data +<div>ZZ&prod=23</div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| "ZZ&prod=23" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/foreign-fragment.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/foreign-fragment.dat new file mode 100644 index 0000000000..2e3cb6c6f6 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/foreign-fragment.dat @@ -0,0 +1,550 @@ +#data +<nobr>X +#errors +6: HTML start tag “nobr” in a foreign namespace context. +7: End of file seen and there were open elements. +6: Unclosed element “nobr”. +#document-fragment +svg path +#document +| <svg nobr> +| "X" + +#data +<font color></font>X +#errors +12: HTML start tag “font” in a foreign namespace context. +#document-fragment +svg path +#document +| <svg font> +| color="" +| "X" + +#data +<font></font>X +#errors +#document-fragment +svg path +#document +| <svg font> +| "X" + +#data +<g></path>X +#errors +10: End tag “path” did not match the name of the current open element (“g”). +11: End of file seen and there were open elements. +3: Unclosed element “g”. +#document-fragment +svg path +#document +| <svg g> +| "X" + +#data +</path>X +#errors +5: Stray end tag “path”. +#document-fragment +svg path +#document +| "X" + +#data +</foreignObject>X +#errors +5: Stray end tag “foreignobject”. +#document-fragment +svg foreignObject +#document +| "X" + +#data +</desc>X +#errors +5: Stray end tag “desc”. +#document-fragment +svg desc +#document +| "X" + +#data +</title>X +#errors +5: Stray end tag “title”. +#document-fragment +svg title +#document +| "X" + +#data +</svg>X +#errors +5: Stray end tag “svg”. +#document-fragment +svg svg +#document +| "X" + +#data +</mfenced>X +#errors +5: Stray end tag “mfenced”. +#document-fragment +math mfenced +#document +| "X" + +#data +</malignmark>X +#errors +5: Stray end tag “malignmark”. +#document-fragment +math malignmark +#document +| "X" + +#data +</math>X +#errors +5: Stray end tag “math”. +#document-fragment +math math +#document +| "X" + +#data +</annotation-xml>X +#errors +5: Stray end tag “annotation-xml”. +#document-fragment +math annotation-xml +#document +| "X" + +#data +</mtext>X +#errors +5: Stray end tag “mtext”. +#document-fragment +math mtext +#document +| "X" + +#data +</mi>X +#errors +5: Stray end tag “mi”. +#document-fragment +math mi +#document +| "X" + +#data +</mo>X +#errors +5: Stray end tag “mo”. +#document-fragment +math mo +#document +| "X" + +#data +</mn>X +#errors +5: Stray end tag “mn”. +#document-fragment +math mn +#document +| "X" + +#data +</ms>X +#errors +5: Stray end tag “ms”. +#document-fragment +math ms +#document +| "X" + +#data +<b></b><mglyph/><i></i><malignmark/><u></u><ms/>X +#errors +51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag. +52: End of file seen and there were open elements. +51: Unclosed element “ms”. +#document-fragment +math ms +#document +| <b> +| <math mglyph> +| <i> +| <math malignmark> +| <u> +| <ms> +| "X" + +#data +<malignmark></malignmark> +#errors +#document-fragment +math ms +#document +| <math malignmark> + +#data +<div></div> +#errors +#document-fragment +math ms +#document +| <div> + +#data +<figure></figure> +#errors +#document-fragment +math ms +#document +| <figure> + +#data +<b></b><mglyph/><i></i><malignmark/><u></u><mn/>X +#errors +51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag. +52: End of file seen and there were open elements. +51: Unclosed element “mn”. +#document-fragment +math mn +#document +| <b> +| <math mglyph> +| <i> +| <math malignmark> +| <u> +| <mn> +| "X" + +#data +<malignmark></malignmark> +#errors +#document-fragment +math mn +#document +| <math malignmark> + +#data +<div></div> +#errors +#document-fragment +math mn +#document +| <div> + +#data +<figure></figure> +#errors +#document-fragment +math mn +#document +| <figure> + +#data +<b></b><mglyph/><i></i><malignmark/><u></u><mo/>X +#errors +51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag. +52: End of file seen and there were open elements. +51: Unclosed element “mo”. +#document-fragment +math mo +#document +| <b> +| <math mglyph> +| <i> +| <math malignmark> +| <u> +| <mo> +| "X" + +#data +<malignmark></malignmark> +#errors +#document-fragment +math mo +#document +| <math malignmark> + +#data +<div></div> +#errors +#document-fragment +math mo +#document +| <div> + +#data +<figure></figure> +#errors +#document-fragment +math mo +#document +| <figure> + +#data +<b></b><mglyph/><i></i><malignmark/><u></u><mi/>X +#errors +51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag. +52: End of file seen and there were open elements. +51: Unclosed element “mi”. +#document-fragment +math mi +#document +| <b> +| <math mglyph> +| <i> +| <math malignmark> +| <u> +| <mi> +| "X" + +#data +<malignmark></malignmark> +#errors +#document-fragment +math mi +#document +| <math malignmark> + +#data +<div></div> +#errors +#document-fragment +math mi +#document +| <div> + +#data +<figure></figure> +#errors +#document-fragment +math mi +#document +| <figure> + +#data +<b></b><mglyph/><i></i><malignmark/><u></u><mtext/>X +#errors +51: Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag. +52: End of file seen and there were open elements. +51: Unclosed element “mtext”. +#document-fragment +math mtext +#document +| <b> +| <math mglyph> +| <i> +| <math malignmark> +| <u> +| <mtext> +| "X" + +#data +<malignmark></malignmark> +#errors +#document-fragment +math mtext +#document +| <math malignmark> + +#data +<div></div> +#errors +#document-fragment +math mtext +#document +| <div> + +#data +<figure></figure> +#errors +#document-fragment +math mtext +#document +| <figure> + +#data +<div></div> +#errors +5: HTML start tag “div” in a foreign namespace context. +#document-fragment +math annotation-xml +#document +| <math div> + +#data +<figure></figure> +#errors +#document-fragment +math annotation-xml +#document +| <math figure> + +#data +<div></div> +#errors +5: HTML start tag “div” in a foreign namespace context. +#document-fragment +math math +#document +| <math div> + +#data +<figure></figure> +#errors +#document-fragment +math math +#document +| <math figure> + +#data +<div></div> +#errors +#document-fragment +svg foreignObject +#document +| <div> + +#data +<figure></figure> +#errors +#document-fragment +svg foreignObject +#document +| <figure> + +#data +<div></div> +#errors +#document-fragment +svg title +#document +| <div> + +#data +<figure></figure> +#errors +#document-fragment +svg title +#document +| <figure> + +#data +<figure></figure> +#errors +#document-fragment +svg desc +#document +| <figure> + +#data +<div><h1>X</h1></div> +#errors +5: HTML start tag “div” in a foreign namespace context. +9: HTML start tag “h1” in a foreign namespace context. +#document-fragment +svg svg +#document +| <svg div> +| <svg h1> +| "X" + +#data +<div></div> +#errors +5: HTML start tag “div” in a foreign namespace context. +#document-fragment +svg svg +#document +| <svg div> + +#data +<div></div> +#errors +#document-fragment +svg desc +#document +| <div> + +#data +<figure></figure> +#errors +#document-fragment +svg desc +#document +| <figure> + +#data +<plaintext><foo> +#errors +16: End of file seen and there were open elements. +11: Unclosed element “plaintext”. +#document-fragment +svg desc +#document +| <plaintext> +| "<foo>" + +#data +<frameset>X +#errors +6: Stray start tag “frameset”. +#document-fragment +svg desc +#document +| "X" + +#data +<head>X +#errors +6: Stray start tag “head”. +#document-fragment +svg desc +#document +| "X" + +#data +<body>X +#errors +6: Stray start tag “body”. +#document-fragment +svg desc +#document +| "X" + +#data +<html>X +#errors +6: Stray start tag “html”. +#document-fragment +svg desc +#document +| "X" + +#data +<html class="foo">X +#errors +6: Stray start tag “html”. +#document-fragment +svg desc +#document +| "X" + +#data +<body class="foo">X +#errors +6: Stray start tag “body”. +#document-fragment +svg desc +#document +| "X" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/html5lib_license.txt b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/html5lib_license.txt new file mode 100644 index 0000000000..63faa963ea --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/html5lib_license.txt @@ -0,0 +1,21 @@ +Copyright (c) 2006-2010 The Authors + +Contributors: +James Graham - jg307@cam.ac.uk +Anne van Kesteren - annevankesteren@gmail.com +Lachlan Hunt - lachlan.hunt@lachy.id.au +Matt McDonald - kanashii@kanashii.ca +Sam Ruby - rubys@intertwingly.net +Ian Hickson (Google) - ian@hixie.ch +Thomas Broyer - t.broyer@ltgt.net +Jacques Distler - distler@golem.ph.utexas.edu +Henri Sivonen - hsivonen@iki.fi +Adam Barth - abarth@webkit.org +Eric Seidel - eric@webkit.org +The Mozilla Foundation (contributions from Henri Sivonen since 2008) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/html5lib_upstream.txt b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/html5lib_upstream.txt new file mode 100644 index 0000000000..5b466c614c --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/html5lib_upstream.txt @@ -0,0 +1,11 @@ +The test data in this directory comes from the html5lib project +(http://code.google.com/p/html5lib/). Please avoid making +mozilla-central-specific changes to these files. If Gecko doesn't pass a test, +please add the test's input data to ../html5_tree_construction_exceptions.js +instead of removing it. + +If you add or edit tests, please push the test to upstream and then +resynchronize this directory with the upstream. + +See html5lib_license.txt for the license that covers the files in this +directory. diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/html5test-com.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/html5test-com.dat new file mode 100644 index 0000000000..8c6ec40cd7 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/html5test-com.dat @@ -0,0 +1,291 @@ +#data +<div<div> +#errors +(1,9): expected-doctype-but-got-start-tag +(1,9): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div<div> + +#data +<div foo<bar=''> +#errors +(1,9): invalid-character-in-attribute-name +(1,16): expected-doctype-but-got-start-tag +(1,16): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| foo<bar="" + +#data +<div foo=`bar`> +#errors +(1,10): equals-in-unquoted-attribute-value +(1,14): unexpected-character-in-unquoted-attribute-value +(1,15): expected-doctype-but-got-start-tag +(1,15): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| foo="`bar`" + +#data +<div \"foo=''> +#errors +(1,7): invalid-character-in-attribute-name +(1,14): expected-doctype-but-got-start-tag +(1,14): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| \"foo="" + +#data +<a href='\nbar'></a> +#errors +(1,16): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <a> +| href="\nbar" + +#data +<!DOCTYPE html> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> + +#data +⟨⟩ +#errors +(1,6): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "⟨⟩" + +#data +' +#errors +(1,6): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "'" + +#data +ⅈ +#errors +(1,12): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "ⅈ" + +#data +𝕂 +#errors +(1,6): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "𝕂" + +#data +∉ +#errors +(1,9): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "∉" + +#data +<?import namespace="foo" implementation="#bar"> +#errors +(1,1): expected-tag-name-but-got-question-mark +(1,47): expected-doctype-but-got-eof +#document +| <!-- ?import namespace="foo" implementation="#bar" --> +| <html> +| <head> +| <body> + +#data +<!--foo--bar--> +#errors +(1,10): unexpected-char-in-comment +(1,15): expected-doctype-but-got-eof +#document +| <!-- foo--bar --> +| <html> +| <head> +| <body> + +#data +<![CDATA[x]]> +#errors +(1,2): expected-dashes-or-doctype +(1,13): expected-doctype-but-got-eof +#document +| <!-- [CDATA[x]] --> +| <html> +| <head> +| <body> + +#data +<textarea><!--</textarea>--></textarea> +#errors +(1,10): expected-doctype-but-got-start-tag +(1,39): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <textarea> +| "<!--" +| "-->" + +#data +<textarea><!--</textarea>--> +#errors +(1,10): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <textarea> +| "<!--" +| "-->" + +#data +<style><!--</style>--></style> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,30): unexpected-end-tag +#document +| <html> +| <head> +| <style> +| "<!--" +| <body> +| "-->" + +#data +<style><!--</style>--> +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <style> +| "<!--" +| <body> +| "-->" + +#data +<ul><li>A </li> <li>B</li></ul> +#errors +(1,4): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ul> +| <li> +| "A " +| " " +| <li> +| "B" + +#data +<table><form><input type=hidden><input></form><div></div></table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,13): unexpected-form-in-table +(1,32): unexpected-hidden-input-in-table +(1,39): unexpected-start-tag-implies-table-voodoo +(1,46): unexpected-end-tag-implies-table-voodoo +(1,46): unexpected-end-tag +(1,51): unexpected-start-tag-implies-table-voodoo +(1,57): unexpected-end-tag-implies-table-voodoo +#document +| <html> +| <head> +| <body> +| <input> +| <div> +| <table> +| <form> +| <input> +| type="hidden" + +#data +<i>A<b>B<p></i>C</b>D +#errors +(1,3): expected-doctype-but-got-start-tag +(1,15): adoption-agency-1.3 +(1,20): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <i> +| "A" +| <b> +| "B" +| <b> +| <p> +| <b> +| <i> +| "C" +| "D" + +#data +<div></div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> + +#data +<svg></svg> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <svg svg> + +#data +<math></math> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <math math> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/inbody01.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/inbody01.dat new file mode 100644 index 0000000000..10f6520f6f --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/inbody01.dat @@ -0,0 +1,54 @@ +#data +<button>1</foo> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,15): unexpected-end-tag +(1,15): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <button> +| "1" + +#data +<foo>1<p>2</foo> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,16): unexpected-end-tag +(1,16): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <foo> +| "1" +| <p> +| "2" + +#data +<dd>1</foo> +#errors +(1,4): expected-doctype-but-got-start-tag +(1,11): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <dd> +| "1" + +#data +<foo>1<dd>2</foo> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,17): unexpected-end-tag +(1,17): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <foo> +| "1" +| <dd> +| "2" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/isindex.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/isindex.dat new file mode 100644 index 0000000000..733f82ea8e --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/isindex.dat @@ -0,0 +1,49 @@ +#data +<isindex> +#errors +(1,9): expected-doctype-but-got-start-tag +(1,9): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <isindex> + +#data +<isindex name="A" action="B" prompt="C" foo="D"> +#errors +(1,48): expected-doctype-but-got-start-tag +(1,48): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <isindex> +| action="B" +| foo="D" +| name="A" +| prompt="C" + +#data +<form><isindex> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,15): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <form> +| <isindex> + +#data +<!doctype html><isindex>x</isindex>x +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <isindex> +| "x" +| "x" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/main-element.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/main-element.dat new file mode 100644 index 0000000000..0d2102ed3f --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/main-element.dat @@ -0,0 +1,44 @@ +#data +<!doctype html><p>foo<main>bar<p>baz +#errors +(1,36): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| "foo" +| <main> +| "bar" +| <p> +| "baz" + +#data +<!doctype html><main><p>foo</main>bar +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <main> +| <p> +| "foo" +| "bar" + +#data +<!DOCTYPE html>xxx<svg><x><g><a><main><b> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "xxx" +| <svg svg> +| <svg x> +| <svg g> +| <svg a> +| <svg main> +| <b> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/pending-spec-changes-plain-text-unsafe.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/pending-spec-changes-plain-text-unsafe.dat Binary files differnew file mode 100644 index 0000000000..3ee8cec904 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/pending-spec-changes-plain-text-unsafe.dat diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/pending-spec-changes.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/pending-spec-changes.dat new file mode 100644 index 0000000000..1647d7f23a --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/pending-spec-changes.dat @@ -0,0 +1,46 @@ +#data +<input type="hidden"><frameset> +#errors +(1,21): expected-doctype-but-got-start-tag +(1,31): unexpected-start-tag +(1,31): eof-in-frameset +#document +| <html> +| <head> +| <frameset> + +#data +<!DOCTYPE html><table><caption><svg>foo</table>bar +#errors +(1,47): unexpected-end-tag +(1,47): end-table-tag-in-caption +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <svg svg> +| "foo" +| "bar" + +#data +<table><tr><td><svg><desc><td></desc><circle> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,30): unexpected-cell-end-tag +(1,37): unexpected-end-tag +(1,45): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <svg svg> +| <svg desc> +| <td> +| <circle> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/plain-text-unsafe.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/plain-text-unsafe.dat Binary files differnew file mode 100644 index 0000000000..f40dd57607 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/plain-text-unsafe.dat diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/ruby.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/ruby.dat new file mode 100644 index 0000000000..1ca8016cf1 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/ruby.dat @@ -0,0 +1,298 @@ +#data +<html><ruby>a<rb>b<rb></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rb> +| "b" +| <rb> + +#data +<html><ruby>a<rb>b<rt></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rb> +| "b" +| <rt> + +#data +<html><ruby>a<rb>b<rtc></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rb> +| "b" +| <rtc> + +#data +<html><ruby>a<rb>b<rp></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rb> +| "b" +| <rp> + +#data +<html><ruby>a<rb>b<span></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rb> +| "b" +| <span> + +#data +<html><ruby>a<rt>b<rb></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rt> +| "b" +| <rb> + +#data +<html><ruby>a<rt>b<rt></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rt> +| "b" +| <rt> + +#data +<html><ruby>a<rt>b<rtc></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rt> +| "b" +| <rtc> + +#data +<html><ruby>a<rt>b<rp></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rt> +| "b" +| <rp> + +#data +<html><ruby>a<rt>b<span></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rt> +| "b" +| <span> + +#data +<html><ruby>a<rtc>b<rb></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rtc> +| "b" +| <rb> + +#data +<html><ruby>a<rtc>b<rt>c<rt>d</ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rtc> +| "b" +| <rt> +| "c" +| <rt> +| "d" + +#data +<html><ruby>a<rtc>b<rtc></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rtc> +| "b" +| <rtc> + +#data +<html><ruby>a<rtc>b<rp></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rtc> +| "b" +| <rp> + +#data +<html><ruby>a<rtc>b<span></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rtc> +| "b" +| <span> + +#data +<html><ruby>a<rp>b<rb></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rp> +| "b" +| <rb> + +#data +<html><ruby>a<rp>b<rt></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rp> +| "b" +| <rt> + +#data +<html><ruby>a<rp>b<rtc></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rp> +| "b" +| <rtc> + +#data +<html><ruby>a<rp>b<rp></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rp> +| "b" +| <rp> + +#data +<html><ruby>a<rp>b<span></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rp> +| "b" +| <span> + +#data +<html><ruby><rtc><ruby>a<rb>b<rt></ruby></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| <rtc> +| <ruby> +| "a" +| <rb> +| "b" +| <rt> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/scriptdata01.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/scriptdata01.dat new file mode 100644 index 0000000000..710f5414b6 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/scriptdata01.dat @@ -0,0 +1,352 @@ +#data +FOO<script>'Hello'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'Hello'" +| "BAR" + +#data +FOO<script></script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "BAR" + +#data +FOO<script></script >BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "BAR" + +#data +FOO<script></script/>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,21): self-closing-flag-on-end-tag +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "BAR" + +#data +FOO<script></script/ >BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,20): unexpected-character-after-solidus-in-tag +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "BAR" + +#data +FOO<script type="text/plain"></scriptx>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,42): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "</scriptx>BAR" + +#data +FOO<script></script foo=">" dd>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,31): attributes-in-end-tag +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "BAR" + +#data +FOO<script>'<'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<'" +| "BAR" + +#data +FOO<script>'<!'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!'" +| "BAR" + +#data +FOO<script>'<!-'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!-'" +| "BAR" + +#data +FOO<script>'<!--'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!--'" +| "BAR" + +#data +FOO<script>'<!---'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!---'" +| "BAR" + +#data +FOO<script>'<!-->'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!-->'" +| "BAR" + +#data +FOO<script>'<!-->'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!-->'" +| "BAR" + +#data +FOO<script>'<!-- potato'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!-- potato'" +| "BAR" + +#data +FOO<script>'<!-- <sCrIpt'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!-- <sCrIpt'" +| "BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt>'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,56): expected-script-data-but-got-eof +(1,56): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt>'</script>BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt> -'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,58): expected-script-data-but-got-eof +(1,58): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt> -'</script>BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt> --'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,59): expected-script-data-but-got-eof +(1,59): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt> --'</script>BAR" + +#data +FOO<script>'<!-- <sCrIpt> -->'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!-- <sCrIpt> -->'" +| "BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt> --!>'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,61): expected-script-data-but-got-eof +(1,61): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt> --!>'</script>BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt> -- >'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,61): expected-script-data-but-got-eof +(1,61): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt> -- >'</script>BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt '</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,56): expected-script-data-but-got-eof +(1,56): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt '</script>BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,56): expected-script-data-but-got-eof +(1,56): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt/'</script>BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt\'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt\'" +| "BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR</script>QUX +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt/'</script>BAR" +| "QUX" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/scripted/adoption01.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/scripted/adoption01.dat new file mode 100644 index 0000000000..4e08d0e84a --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/scripted/adoption01.dat @@ -0,0 +1,15 @@ +#data +<p><b id="A"><script>document.getElementById("A").id = "B"</script></p>TEXT</b> +#errors +#document +| <html> +| <head> +| <body> +| <p> +| <b> +| id="B" +| <script> +| "document.getElementById("A").id = "B"" +| <b> +| id="A" +| "TEXT" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/scripted/ark.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/scripted/ark.dat new file mode 100644 index 0000000000..acbac41df1 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/scripted/ark.dat @@ -0,0 +1,26 @@ +#data +<p><font size=4><font size=4><font size=4><script>document.getElementsByTagName("font")[2].setAttribute("size", "5");</script><font size=4><p>X +#errors +#document +| <html> +| <head> +| <body> +| <p> +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="5" +| <script> +| "document.getElementsByTagName("font")[2].setAttribute("size", "5");" +| <font> +| size="4" +| <p> +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| "X" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/scripted/webkit01.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/scripted/webkit01.dat new file mode 100644 index 0000000000..ef4a41ca00 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/scripted/webkit01.dat @@ -0,0 +1,28 @@ +#data +1<script>document.write("2")</script>3 +#errors +#document +| <html> +| <head> +| <body> +| "1" +| <script> +| "document.write("2")" +| "23" + +#data +1<script>document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")</script>4 +#errors +#document +| <html> +| <head> +| <body> +| "1" +| <script> +| "document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")" +| <script> +| "document.write('2')" +| "2" +| <script> +| "document.write('3')" +| "34" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tables01.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tables01.dat new file mode 100644 index 0000000000..f0caaa3c5f --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tables01.dat @@ -0,0 +1,286 @@ +#data +<table><th> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,11): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <th> + +#data +<table><td> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,11): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> + +#data +<table><col foo='bar'> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,22): eof-in-table +#document +| <html> +| <head> +| <body> +| <table> +| <colgroup> +| <col> +| foo="bar" + +#data +<table><colgroup></html>foo +#errors +(1,7): expected-doctype-but-got-start-tag +(1,24): unexpected-end-tag +(1,27): foster-parenting-character-in-table +(1,27): foster-parenting-character-in-table +(1,27): foster-parenting-character-in-table +(1,27): eof-in-table +#document +| <html> +| <head> +| <body> +| "foo" +| <table> +| <colgroup> + +#data +<table></table><p>foo +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <table> +| <p> +| "foo" + +#data +<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr><td> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,14): unexpected-end-tag +(1,24): unexpected-end-tag +(1,30): unexpected-end-tag +(1,41): unexpected-end-tag +(1,48): unexpected-end-tag +(1,56): unexpected-end-tag +(1,61): unexpected-end-tag +(1,69): unexpected-end-tag +(1,74): unexpected-end-tag +(1,82): unexpected-end-tag +(1,87): unexpected-end-tag +(1,91): unexpected-cell-in-table-body +(1,91): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> + +#data +<table><select><option>3</select></table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,15): unexpected-start-tag-implies-table-voodoo +#document +| <html> +| <head> +| <body> +| <select> +| <option> +| "3" +| <table> + +#data +<table><select><table></table></select></table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,15): unexpected-start-tag-implies-table-voodoo +(1,22): unexpected-table-element-start-tag-in-select-in-table +(1,22): unexpected-start-tag-implies-end-tag +(1,39): unexpected-end-tag +(1,47): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <select> +| <table> +| <table> + +#data +<table><select></table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,15): unexpected-start-tag-implies-table-voodoo +(1,23): unexpected-table-element-end-tag-in-select-in-table +#document +| <html> +| <head> +| <body> +| <select> +| <table> + +#data +<table><select><option>A<tr><td>B</td></tr></table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,15): unexpected-start-tag-implies-table-voodoo +(1,28): unexpected-table-element-start-tag-in-select-in-table +#document +| <html> +| <head> +| <body> +| <select> +| <option> +| "A" +| <table> +| <tbody> +| <tr> +| <td> +| "B" + +#data +<table><td></body></caption></col></colgroup></html>foo +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,18): unexpected-end-tag +(1,28): unexpected-end-tag +(1,34): unexpected-end-tag +(1,45): unexpected-end-tag +(1,52): unexpected-end-tag +(1,55): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| "foo" + +#data +<table><td>A</table>B +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| "A" +| "B" + +#data +<table><tr><caption> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,20): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <caption> + +#data +<table><tr></body></caption></col></colgroup></html></td></th><td>foo +#errors +(1,7): expected-doctype-but-got-start-tag +(1,18): unexpected-end-tag-in-table-row +(1,28): unexpected-end-tag-in-table-row +(1,34): unexpected-end-tag-in-table-row +(1,45): unexpected-end-tag-in-table-row +(1,52): unexpected-end-tag-in-table-row +(1,57): unexpected-end-tag-in-table-row +(1,62): unexpected-end-tag-in-table-row +(1,69): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| "foo" + +#data +<table><td><tr> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,15): eof-in-table +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <tr> + +#data +<table><td><button><td> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,23): unexpected-cell-end-tag +(1,23): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <button> +| <td> + +#data +<table><tr><td><svg><desc><td> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,30): unexpected-cell-end-tag +(1,30): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <svg svg> +| <svg desc> +| <td> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/template.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/template.dat new file mode 100644 index 0000000000..daf587e2d7 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/template.dat @@ -0,0 +1,1406 @@ +#data +<body><template>Hello</template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| "Hello" + +#data +<template>Hello</template> +#errors +#document +| <html> +| <head> +| <template> +| content +| "Hello" +| <body> + +#data +<template></template><div></div> +#errors +#document +| <html> +| <head> +| <template> +| content +| <body> +| <div> + +#data +<html><template>Hello</template> +#errors +#document +| <html> +| <head> +| <template> +| content +| "Hello" +| <body> + +#data +<head><template><div></div></template></head> +#errors +#document +| <html> +| <head> +| <template> +| content +| <div> +| <body> + +#data +<div><template><div><span></template><b> +#errors +#document +| <html> +| <head> +| <body> +| <div> +| <template> +| content +| <div> +| <span> +| <b> + +#data +<div><template></div>Hello +#errors +#document +| <html> +| <head> +| <body> +| <div> +| <template> +| content +| "Hello" + +#data +<div></template></div> +#errors +#document +| <html> +| <head> +| <body> +| <div> + +#data +<table><template></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content + +#data +<table><template></template></div> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content + +#data +<table><div><template></template></div> +#errors +#document +| <html> +| <head> +| <body> +| <div> +| <template> +| content +| <table> + +#data +<table><template></template><div></div> +#errors +#document +| <html> +| <head> +| <body> +| <div> +| <table> +| <template> +| content + +#data +<table> <template></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| " " +| <template> +| content + +#data +<table><tbody><template></template></tbody> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <template> +| content + +#data +<table><tbody><template></tbody></template> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <template> +| content + +#data +<table><tbody><template></template></tbody></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <template> +| content + +#data +<table><thead><template></template></thead> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <thead> +| <template> +| content + +#data +<table><tfoot><template></template></tfoot> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <tfoot> +| <template> +| content + +#data +<select><template></template></select> +#errors +#document +| <html> +| <head> +| <body> +| <select> +| <template> +| content + +#data +<select><template><option></option></template></select> +#errors +#document +| <html> +| <head> +| <body> +| <select> +| <template> +| content +| <option> + +#data +<template><option></option></select><option></option></template> +#errors +#document +| <html> +| <head> +| <template> +| content +| <option> +| <option> +| <body> + +#data +<select><template></template><option></select> +#errors +#document +| <html> +| <head> +| <body> +| <select> +| <template> +| content +| <option> + +#data +<select><option><template></template></select> +#errors +#document +| <html> +| <head> +| <body> +| <select> +| <option> +| <template> +| content + +#data +<select><template> +#errors +#document +| <html> +| <head> +| <body> +| <select> +| <template> +| content + +#data +<select><option></option><template> +#errors +#document +| <html> +| <head> +| <body> +| <select> +| <option> +| <template> +| content + +#data +<select><option></option><template><option> +#errors +#document +| <html> +| <head> +| <body> +| <select> +| <option> +| <template> +| content +| <option> + +#data +<table><thead><template><td></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <thead> +| <template> +| content +| <td> + +#data +<table><template><thead></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content +| <thead> + +#data +<body><table><template><td></tr><div></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content +| <td> +| <div> + +#data +<table><template><thead></template></thead></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content +| <thead> + +#data +<table><thead><template><tr></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <thead> +| <template> +| content +| <tr> + +#data +<table><template><tr></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content +| <tr> + +#data +<table><tr><template><td> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <template> +| content +| <td> + +#data +<table><template><tr><template><td></template></tr></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content +| <tr> +| <template> +| content +| <td> + +#data +<table><template><tr><template><td></td></template></tr></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content +| <tr> +| <template> +| content +| <td> + +#data +<table><template><td></template> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content +| <td> + +#data +<body><template><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <td> + +#data +<body><template><template><tr></tr></template><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <template> +| content +| <tr> +| <td> + +#data +<table><colgroup><template><col> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <colgroup> +| <template> +| content +| <col> + +#data +<frameset><template><frame></frame></template></frameset> +#errors +#document +| <html> +| <head> +| <frameset> +| <frame> + +#data +<template><frame></frame></frameset><frame></frame></template> +#errors +#document +| <html> +| <head> +| <template> +| content +| <body> + +#data +<template><div><frameset><span></span></div><span></span></template> +#errors +#document +| <html> +| <head> +| <template> +| content +| <div> +| <span> +| <span> +| <body> + +#data +<body><template><div><frameset><span></span></div><span></span></template></body> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <div> +| <span> +| <span> + +#data +<body><template><script>var i = 1;</script><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <script> +| "var i = 1;" +| <td> + +#data +<body><template><tr><div></div></tr></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <tr> +| <div> + +#data +<body><template><tr>Foo</tr></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <tr> +| "Foo" + +#data +<body><template><tr></tr><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <tr> +| <tr> +| <td> + +#data +<body><template><td></td></tr><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <td> +| <td> + +#data +<body><template><td></td><tbody><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <td> +| <td> + +#data +<body><template><td></td><caption></caption><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <td> +| <td> + +#data +<body><template><td></td><colgroup></caption><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <td> +| <td> + +#data +<body><template><td></td></table><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <td> +| <td> + +#data +<body><template><tr></tr><tbody><tr></tr></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <tr> +| <tr> + +#data +<body><template><tr></tr><caption><tr></tr></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <tr> +| <tr> + +#data +<body><template><tr></tr></table><tr></tr></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <tr> +| <tr> + +#data +<body><template><thead></thead><caption></caption><tbody></tbody></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <thead> +| <caption> +| <tbody> + +#data +<body><template><thead></thead></table><tbody></tbody></template></body> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <thead> +| <tbody> + +#data +<body><template><div><tr></tr></div></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <div> + +#data +<body><template><em>Hello</em></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <em> +| "Hello" + +#data +<body><template><!--comment--></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <!-- comment --> + +#data +<body><template><style></style><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <style> +| <td> + +#data +<body><template><meta><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <meta> +| <td> + +#data +<body><template><link><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <link> +| <td> + +#data +<body><template><template><tr></tr></template><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <template> +| content +| <tr> +| <td> + +#data +<body><table><colgroup><template><col></col></template></colgroup></table></body> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <colgroup> +| <template> +| content +| <col> + +#data +<body a=b><template><div></div><body c=d><div></div></body></template></body> +#errors +#document +| <html> +| <head> +| <body> +| a="b" +| <template> +| content +| <div> +| <div> + +#data +<html a=b><template><div><html b=c><span></template> +#errors +#document +| <html> +| a="b" +| <head> +| <template> +| content +| <div> +| <span> +| <body> + +#data +<html a=b><template><col></col><html b=c><col></col></template> +#errors +#document +| <html> +| a="b" +| <head> +| <template> +| content +| <col> +| <col> +| <body> + +#data +<html a=b><template><frame></frame><html b=c><frame></frame></template> +#errors +#document +| <html> +| a="b" +| <head> +| <template> +| content +| <body> + +#data +<body><template><tr></tr><template></template><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <tr> +| <template> +| content +| <tr> +| <td> + +#data +<body><template><thead></thead><template><tr></tr></template><tr></tr><tfoot></tfoot></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <thead> +| <template> +| content +| <tr> +| <tbody> +| <tr> +| <tfoot> + +#data +<body><template><template><b><template></template></template>text</template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <template> +| content +| <b> +| <template> +| content +| "text" + +#data +<body><template><col><colgroup> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <col> + +#data +<body><template><col></colgroup> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <col> + +#data +<body><template><col><colgroup></template></body> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <col> + +#data +<body><template><col><div> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <col> + +#data +<body><template><col></div> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <col> + +#data +<body><template><col>Hello +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <col> + +#data +<body><template><i><menu>Foo</i> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <i> +| <menu> +| <i> +| "Foo" + +#data +<body><template></div><div>Foo</div><template></template><tr></tr> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <div> +| "Foo" +| <template> +| content + +#data +<body><div><template></div><tr><td>Foo</td></tr></template> +#errors +#document +| <html> +| <head> +| <body> +| <div> +| <template> +| content +| <tr> +| <td> +| "Foo" + +#data +<template></figcaption><sub><table></table> +#errors +#document +| <html> +| <head> +| <template> +| content +| <sub> +| <table> +| <body> + +#data +<template><template> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <body> + +#data +<template><div> +#errors +#document +| <html> +| <head> +| <template> +| content +| <div> +| <body> + +#data +<template><template><div> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <div> +| <body> + +#data +<template><template><table> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <table> +| <body> + +#data +<template><template><tbody> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <tbody> +| <body> + +#data +<template><template><tr> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <tr> +| <body> + +#data +<template><template><td> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <td> +| <body> + +#data +<template><template><caption> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <caption> +| <body> + +#data +<template><template><colgroup> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <colgroup> +| <body> + +#data +<template><template><col> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <col> +| <body> + +#data +<template><template><tbody><select> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <tbody> +| <select> +| <body> + +#data +<template><template><table>Foo +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| "Foo" +| <table> +| <body> + +#data +<template><template><table><div> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <div> +| <table> +| <body> + +#data +<template><template><frame> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <body> + +#data +<template><template><script>var i +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <script> +| "var i" +| <body> + +#data +<template><template><style>var i +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <style> +| "var i" +| <body> + +#data +<template><table></template><body><span>Foo +#errors +#document +| <html> +| <head> +| <template> +| content +| <table> +| <body> +| <span> +| "Foo" + +#data +<template><td></template><body><span>Foo +#errors +#document +| <html> +| <head> +| <template> +| content +| <td> +| <body> +| <span> +| "Foo" + +#data +<template><object></template><body><span>Foo +#errors +#document +| <html> +| <head> +| <template> +| content +| <object> +| <body> +| <span> +| "Foo" + +#data +<template><svg><template> +#errors +#document +| <html> +| <head> +| <template> +| content +| <svg svg> +| <svg template> +| <body> + +#data +<template><svg><foo><template><foreignObject><div></template><div> +#errors +#document +| <html> +| <head> +| <template> +| content +| <svg svg> +| <svg foo> +| <svg template> +| <svg foreignObject> +| <div> +| <body> +| <div> + +#data +<dummy><template><span></dummy> +#errors +#document +| <html> +| <head> +| <body> +| <dummy> +| <template> +| content +| <span> + +#data +<body><table><tr><td><select><template>Foo</template><caption>A</table> +#errors +(1,62): unexpected-caption-in-select-in-table +(1,71): unexpected-table-end-in-caption +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <select> +| <template> +| content +| "Foo" +| <caption> +| "A" + +#data +<body></body><template> +#errors +(1,23): template-after-body +(1,24): eof-in-template +#document +| <html> +| <head> +| <body> +| <template> +| content + +#data +<head></head><template> +#errors +(1,23): template-after-head +(1,24): eof-in-template +#document +| <html> +| <head> +| <template> +| content +| <body> + +#data +<head></head><template>Foo</template> +#errors +(1,23): template-after-head +#document +| <html> +| <head> +| <template> +| content +| "Foo" +| <body> + +#data +<body><form><template><form> +#errors +#document +| <html> +| <head> +| <body> +| <form> +| <template> +| content +| <form> + +#data +<body><template><table><form> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <table> + +#data +<body><template><form><form> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <form> +| <form> + +#data +<body><form><template><isindex> +#errors +#document +| <html> +| <head> +| <body> +| <form> +| <template> +| content +| <isindex> + +#data +<body><form><template><isindex><form> +#errors +#document +| <html> +| <head> +| <body> +| <form> +| <template> +| content +| <isindex> +| <form> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests1.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests1.dat new file mode 100644 index 0000000000..f12e87178c --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests1.dat @@ -0,0 +1,1959 @@ +#data +Test +#errors +(1,0): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "Test" + +#data +<p>One<p>Two +#errors +(1,3): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <p> +| "One" +| <p> +| "Two" + +#data +Line1<br>Line2<br>Line3<br>Line4 +#errors +(1,0): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "Line1" +| <br> +| "Line2" +| <br> +| "Line3" +| <br> +| "Line4" + +#data +<html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> + +#data +<head> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> + +#data +<body> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> + +#data +<html><head> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> + +#data +<html><head></head> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> + +#data +<html><head></head><body> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> + +#data +<html><head></head><body></body> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> + +#data +<html><head><body></body></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> + +#data +<html><head></body></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> + +#data +<html><head><body></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> + +#data +<html><body></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> + +#data +<body></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> + +#data +<head></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> + +#data +</head> +#errors +(1,7): expected-doctype-but-got-end-tag +#document +| <html> +| <head> +| <body> + +#data +</body> +#errors +(1,7): expected-doctype-but-got-end-tag element. +#document +| <html> +| <head> +| <body> + +#data +</html> +#errors +(1,7): expected-doctype-but-got-end-tag element. +#document +| <html> +| <head> +| <body> + +#data +<b><table><td><i></table> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,14): unexpected-cell-in-table-body +(1,25): unexpected-cell-end-tag +(1,25): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| <table> +| <tbody> +| <tr> +| <td> +| <i> + +#data +<b><table><td></b><i></table>X +#errors +(1,3): expected-doctype-but-got-start-tag +(1,14): unexpected-cell-in-table-body +(1,18): unexpected-end-tag +(1,29): unexpected-cell-end-tag +(1,30): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| <table> +| <tbody> +| <tr> +| <td> +| <i> +| "X" + +#data +<h1>Hello<h2>World +#errors +(1,4): expected-doctype-but-got-start-tag +(1,13): unexpected-start-tag +(1,18): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <h1> +| "Hello" +| <h2> +| "World" + +#data +<a><p>X<a>Y</a>Z</p></a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,10): unexpected-start-tag-implies-end-tag +(1,10): adoption-agency-1.3 +(1,24): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <a> +| <p> +| <a> +| "X" +| <a> +| "Y" +| "Z" + +#data +<b><button>foo</b>bar +#errors +(1,3): expected-doctype-but-got-start-tag +(1,18): adoption-agency-1.3 +(1,21): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| <button> +| <b> +| "foo" +| "bar" + +#data +<!DOCTYPE html><span><button>foo</span>bar +#errors +(1,39): unexpected-end-tag +(1,42): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <span> +| <button> +| "foobar" + +#data +<p><b><div><marquee></p></b></div>X +#errors +(1,3): expected-doctype-but-got-start-tag +(1,11): unexpected-end-tag +(1,24): unexpected-end-tag +(1,28): unexpected-end-tag +(1,34): end-tag-too-early +(1,35): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <b> +| <div> +| <b> +| <marquee> +| <p> +| "X" + +#data +<script><div></script></div><title><p></title><p><p> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,28): unexpected-end-tag +#document +| <html> +| <head> +| <script> +| "<div>" +| <title> +| "<p>" +| <body> +| <p> +| <p> + +#data +<!--><div>--<!--> +#errors +(1,5): incorrect-comment +(1,10): expected-doctype-but-got-start-tag +(1,17): incorrect-comment +(1,17): expected-closing-tag-but-got-eof +#document +| <!-- --> +| <html> +| <head> +| <body> +| <div> +| "--" +| <!-- --> + +#data +<p><hr></p> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,11): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <p> +| <hr> +| <p> + +#data +<select><b><option><select><option></b></select>X +#errors +(1,8): expected-doctype-but-got-start-tag +(1,11): unexpected-start-tag-in-select +(1,27): unexpected-select-in-select +(1,39): unexpected-end-tag +(1,48): unexpected-end-tag +(1,49): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <select> +| <option> +| <option> +| "X" + +#data +<a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y +#errors +(1,3): expected-doctype-but-got-start-tag +(1,14): unexpected-cell-in-table-body +(1,35): unexpected-start-tag-implies-end-tag +(1,40): unexpected-cell-end-tag +(1,43): unexpected-start-tag-implies-table-voodoo +(1,43): unexpected-start-tag-implies-end-tag +(1,43): unexpected-end-tag +(1,63): unexpected-start-tag-implies-end-tag +(1,64): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <a> +| <table> +| <tbody> +| <tr> +| <td> +| <a> +| <table> +| <a> +| <a> +| <b> +| "X" +| "C" +| <a> +| "Y" + +#data +<a X>0<b>1<a Y>2 +#errors +(1,5): expected-doctype-but-got-start-tag +(1,15): unexpected-start-tag-implies-end-tag +(1,15): adoption-agency-1.3 +(1,16): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| x="" +| "0" +| <b> +| "1" +| <b> +| <a> +| y="" +| "2" + +#data +<!-----><font><div>hello<table>excite!<b>me!<th><i>please!</tr><!--X--> +#errors +(1,7): unexpected-dash-after-double-dash-in-comment +(1,14): expected-doctype-but-got-start-tag +(1,41): unexpected-start-tag-implies-table-voodoo +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-start-tag-in-table +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-character-in-table +(1,48): unexpected-cell-in-table-body +(1,63): unexpected-cell-end-tag +(1,71): eof-in-table +#document +| <!-- - --> +| <html> +| <head> +| <body> +| <font> +| <div> +| "helloexcite!" +| <b> +| "me!" +| <table> +| <tbody> +| <tr> +| <th> +| <i> +| "please!" +| <!-- X --> + +#data +<!DOCTYPE html><li>hello<li>world<ul>how<li>do</ul>you</body><!--do--> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <li> +| "hello" +| <li> +| "world" +| <ul> +| "how" +| <li> +| "do" +| "you" +| <!-- do --> + +#data +<!DOCTYPE html>A<option>B<optgroup>C<select>D</option>E +#errors +(1,54): unexpected-end-tag-in-select +(1,55): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "A" +| <option> +| "B" +| <optgroup> +| "C" +| <select> +| "DE" + +#data +< +#errors +(1,1): expected-tag-name +(1,1): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "<" + +#data +<# +#errors +(1,1): expected-tag-name +(1,1): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "<#" + +#data +</ +#errors +(1,2): expected-closing-tag-but-got-eof +(1,2): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "</" + +#data +</# +#errors +(1,2): expected-closing-tag-but-got-char +(1,3): expected-doctype-but-got-eof +#document +| <!-- # --> +| <html> +| <head> +| <body> + +#data +<? +#errors +(1,1): expected-tag-name-but-got-question-mark +(1,2): expected-doctype-but-got-eof +#document +| <!-- ? --> +| <html> +| <head> +| <body> + +#data +<?# +#errors +(1,1): expected-tag-name-but-got-question-mark +(1,3): expected-doctype-but-got-eof +#document +| <!-- ?# --> +| <html> +| <head> +| <body> + +#data +<! +#errors +(1,2): expected-dashes-or-doctype +(1,2): expected-doctype-but-got-eof +#document +| <!-- --> +| <html> +| <head> +| <body> + +#data +<!# +#errors +(1,2): expected-dashes-or-doctype +(1,3): expected-doctype-but-got-eof +#document +| <!-- # --> +| <html> +| <head> +| <body> + +#data +<?COMMENT?> +#errors +(1,1): expected-tag-name-but-got-question-mark +(1,11): expected-doctype-but-got-eof +#document +| <!-- ?COMMENT? --> +| <html> +| <head> +| <body> + +#data +<!COMMENT> +#errors +(1,2): expected-dashes-or-doctype +(1,10): expected-doctype-but-got-eof +#document +| <!-- COMMENT --> +| <html> +| <head> +| <body> + +#data +</ COMMENT > +#errors +(1,2): expected-closing-tag-but-got-char +(1,12): expected-doctype-but-got-eof +#document +| <!-- COMMENT --> +| <html> +| <head> +| <body> + +#data +<?COM--MENT?> +#errors +(1,1): expected-tag-name-but-got-question-mark +(1,13): expected-doctype-but-got-eof +#document +| <!-- ?COM--MENT? --> +| <html> +| <head> +| <body> + +#data +<!COM--MENT> +#errors +(1,2): expected-dashes-or-doctype +(1,12): expected-doctype-but-got-eof +#document +| <!-- COM--MENT --> +| <html> +| <head> +| <body> + +#data +</ COM--MENT > +#errors +(1,2): expected-closing-tag-but-got-char +(1,14): expected-doctype-but-got-eof +#document +| <!-- COM--MENT --> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE html><style> EOF +#errors +(1,26): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| " EOF" +| <body> + +#data +<!DOCTYPE html><script> <!-- </script> --> </script> EOF +#errors +(1,52): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| " <!-- " +| " " +| <body> +| "--> EOF" + +#data +<b><p></b>TEST +#errors +(1,3): expected-doctype-but-got-start-tag +(1,10): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <b> +| <p> +| <b> +| "TEST" + +#data +<p id=a><b><p id=b></b>TEST +#errors +(1,8): expected-doctype-but-got-start-tag +(1,19): unexpected-end-tag +(1,23): adoption-agency-1.2 +#document +| <html> +| <head> +| <body> +| <p> +| id="a" +| <b> +| <p> +| id="b" +| "TEST" + +#data +<b id=a><p><b id=b></p></b>TEST +#errors +(1,8): expected-doctype-but-got-start-tag +(1,23): unexpected-end-tag +(1,27): adoption-agency-1.2 +(1,31): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| id="a" +| <p> +| <b> +| id="b" +| "TEST" + +#data +<!DOCTYPE html><title>U-test</title><body><div><p>Test<u></p></div></body> +#errors +(1,61): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <title> +| "U-test" +| <body> +| <div> +| <p> +| "Test" +| <u> + +#data +<!DOCTYPE html><font><table></font></table></font> +#errors +(1,35): unexpected-end-tag-implies-table-voodoo +(1,35): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <font> +| <table> + +#data +<font><p>hello<b>cruel</font>world +#errors +(1,6): expected-doctype-but-got-start-tag +(1,29): adoption-agency-1.3 +(1,29): adoption-agency-1.3 +(1,34): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <font> +| <p> +| <font> +| "hello" +| <b> +| "cruel" +| <b> +| "world" + +#data +<b>Test</i>Test +#errors +(1,3): expected-doctype-but-got-start-tag +(1,11): unexpected-end-tag +(1,15): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| "TestTest" + +#data +<b>A<cite>B<div>C +#errors +(1,3): expected-doctype-but-got-start-tag +(1,17): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| "A" +| <cite> +| "B" +| <div> +| "C" + +#data +<b>A<cite>B<div>C</cite>D +#errors +(1,3): expected-doctype-but-got-start-tag +(1,24): unexpected-end-tag +(1,25): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| "A" +| <cite> +| "B" +| <div> +| "CD" + +#data +<b>A<cite>B<div>C</b>D +#errors +(1,3): expected-doctype-but-got-start-tag +(1,21): adoption-agency-1.3 +(1,22): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| "A" +| <cite> +| "B" +| <div> +| <b> +| "C" +| "D" + +#data + +#errors +(1,0): expected-doctype-but-got-eof +#document +| <html> +| <head> +| <body> + +#data +<DIV> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,5): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> + +#data +<DIV> abc +#errors +(1,5): expected-doctype-but-got-start-tag +(1,9): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| " abc" + +#data +<DIV> abc <B> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,13): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| " abc " +| <b> + +#data +<DIV> abc <B> def +#errors +(1,5): expected-doctype-but-got-start-tag +(1,17): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| " abc " +| <b> +| " def" + +#data +<DIV> abc <B> def <I> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,21): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| " abc " +| <b> +| " def " +| <i> + +#data +<DIV> abc <B> def <I> ghi +#errors +(1,5): expected-doctype-but-got-start-tag +(1,25): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| " abc " +| <b> +| " def " +| <i> +| " ghi" + +#data +<DIV> abc <B> def <I> ghi <P> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,29): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| " abc " +| <b> +| " def " +| <i> +| " ghi " +| <p> + +#data +<DIV> abc <B> def <I> ghi <P> jkl +#errors +(1,5): expected-doctype-but-got-start-tag +(1,33): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| " abc " +| <b> +| " def " +| <i> +| " ghi " +| <p> +| " jkl" + +#data +<DIV> abc <B> def <I> ghi <P> jkl </B> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,38): adoption-agency-1.3 +(1,38): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| " abc " +| <b> +| " def " +| <i> +| " ghi " +| <i> +| <p> +| <b> +| " jkl " + +#data +<DIV> abc <B> def <I> ghi <P> jkl </B> mno +#errors +(1,5): expected-doctype-but-got-start-tag +(1,38): adoption-agency-1.3 +(1,42): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| " abc " +| <b> +| " def " +| <i> +| " ghi " +| <i> +| <p> +| <b> +| " jkl " +| " mno" + +#data +<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,38): adoption-agency-1.3 +(1,47): adoption-agency-1.3 +(1,47): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| " abc " +| <b> +| " def " +| <i> +| " ghi " +| <i> +| <p> +| <i> +| <b> +| " jkl " +| " mno " + +#data +<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr +#errors +(1,5): expected-doctype-but-got-start-tag +(1,38): adoption-agency-1.3 +(1,47): adoption-agency-1.3 +(1,51): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| " abc " +| <b> +| " def " +| <i> +| " ghi " +| <i> +| <p> +| <i> +| <b> +| " jkl " +| " mno " +| " pqr" + +#data +<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,38): adoption-agency-1.3 +(1,47): adoption-agency-1.3 +(1,56): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| " abc " +| <b> +| " def " +| <i> +| " ghi " +| <i> +| <p> +| <i> +| <b> +| " jkl " +| " mno " +| " pqr " + +#data +<DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> stu +#errors +(1,5): expected-doctype-but-got-start-tag +(1,38): adoption-agency-1.3 +(1,47): adoption-agency-1.3 +(1,60): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| " abc " +| <b> +| " def " +| <i> +| " ghi " +| <i> +| <p> +| <i> +| <b> +| " jkl " +| " mno " +| " pqr " +| " stu" + +#data +<test attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> +#errors +(1,1040): expected-doctype-but-got-start-tag +(1,1040): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <test> +| attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------="" + +#data +<a href="blah">aba<table><a href="foo">br<tr><td></td></tr>x</table>aoe +#errors +(1,15): expected-doctype-but-got-start-tag +(1,39): unexpected-start-tag-implies-table-voodoo +(1,39): unexpected-start-tag-implies-end-tag +(1,39): unexpected-end-tag +(1,45): foster-parenting-character-in-table +(1,45): foster-parenting-character-in-table +(1,68): foster-parenting-character-in-table +(1,71): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| href="blah" +| "aba" +| <a> +| href="foo" +| "br" +| <a> +| href="foo" +| "x" +| <table> +| <tbody> +| <tr> +| <td> +| <a> +| href="foo" +| "aoe" + +#data +<a href="blah">aba<table><tr><td><a href="foo">br</td></tr>x</table>aoe +#errors +(1,15): expected-doctype-but-got-start-tag +(1,54): unexpected-cell-end-tag +(1,71): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| href="blah" +| "abax" +| <table> +| <tbody> +| <tr> +| <td> +| <a> +| href="foo" +| "br" +| "aoe" + +#data +<table><a href="blah">aba<tr><td><a href="foo">br</td></tr>x</table>aoe +#errors +(1,7): expected-doctype-but-got-start-tag +(1,22): unexpected-start-tag-implies-table-voodoo +(1,29): foster-parenting-character-in-table +(1,29): foster-parenting-character-in-table +(1,29): foster-parenting-character-in-table +(1,54): unexpected-cell-end-tag +(1,68): foster-parenting-character-in-table +(1,71): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| href="blah" +| "aba" +| <a> +| href="blah" +| "x" +| <table> +| <tbody> +| <tr> +| <td> +| <a> +| href="foo" +| "br" +| <a> +| href="blah" +| "aoe" + +#data +<a href=a>aa<marquee>aa<a href=b>bb</marquee>aa +#errors +(1,10): expected-doctype-but-got-start-tag +(1,45): end-tag-too-early +(1,47): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| href="a" +| "aa" +| <marquee> +| "aa" +| <a> +| href="b" +| "bb" +| "aa" + +#data +<wbr><strike><code></strike><code><strike></code> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,28): adoption-agency-1.3 +(1,49): adoption-agency-1.3 +(1,49): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <wbr> +| <strike> +| <code> +| <code> +| <code> +| <strike> + +#data +<!DOCTYPE html><spacer>foo +#errors +(1,26): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <spacer> +| "foo" + +#data +<title><meta></title><link><title><meta></title> +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <title> +| "<meta>" +| <link> +| <title> +| "<meta>" +| <body> + +#data +<style><!--</style><meta><script>--><link></script> +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <style> +| "<!--" +| <meta> +| <script> +| "--><link>" +| <body> + +#data +<head><meta></head><link> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,25): unexpected-start-tag-out-of-my-head +#document +| <html> +| <head> +| <meta> +| <link> +| <body> + +#data +<table><tr><tr><td><td><span><th><span>X</table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,33): unexpected-cell-end-tag +(1,48): unexpected-cell-end-tag +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <tr> +| <td> +| <td> +| <span> +| <th> +| <span> +| "X" + +#data +<body><body><base><link><meta><title><p></title><body><p></body> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,12): unexpected-start-tag +(1,54): unexpected-start-tag +#document +| <html> +| <head> +| <body> +| <base> +| <link> +| <meta> +| <title> +| "<p>" +| <p> + +#data +<textarea><p></textarea> +#errors +(1,10): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <textarea> +| "<p>" + +#data +<p><image></p> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,10): unexpected-start-tag-treated-as +#document +| <html> +| <head> +| <body> +| <p> +| <img> + +#data +<a><table><a></table><p><a><div><a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,13): unexpected-start-tag-implies-table-voodoo +(1,13): unexpected-start-tag-implies-end-tag +(1,13): adoption-agency-1.3 +(1,27): unexpected-start-tag-implies-end-tag +(1,27): adoption-agency-1.2 +(1,32): unexpected-end-tag +(1,35): unexpected-start-tag-implies-end-tag +(1,35): adoption-agency-1.2 +(1,35): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <a> +| <table> +| <p> +| <a> +| <div> +| <a> + +#data +<head></p><meta><p> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,10): unexpected-end-tag +#document +| <html> +| <head> +| <meta> +| <body> +| <p> + +#data +<head></html><meta><p> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,19): expected-eof-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <meta> +| <p> + +#data +<b><table><td><i></table> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,14): unexpected-cell-in-table-body +(1,25): unexpected-cell-end-tag +(1,25): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| <table> +| <tbody> +| <tr> +| <td> +| <i> + +#data +<b><table><td></b><i></table> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,14): unexpected-cell-in-table-body +(1,18): unexpected-end-tag +(1,29): unexpected-cell-end-tag +(1,29): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| <table> +| <tbody> +| <tr> +| <td> +| <i> + +#data +<h1><h2> +#errors +(1,4): expected-doctype-but-got-start-tag +(1,8): unexpected-start-tag +(1,8): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <h1> +| <h2> + +#data +<a><p><a></a></p></a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,9): unexpected-start-tag-implies-end-tag +(1,9): adoption-agency-1.3 +(1,21): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <a> +| <p> +| <a> +| <a> + +#data +<b><button></b></button></b> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,15): adoption-agency-1.3 +(1,28): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <b> +| <button> +| <b> + +#data +<p><b><div><marquee></p></b></div> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,11): unexpected-end-tag +(1,24): unexpected-end-tag +(1,28): unexpected-end-tag +(1,34): end-tag-too-early +(1,34): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <b> +| <div> +| <b> +| <marquee> +| <p> + +#data +<script></script></div><title></title><p><p> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,23): unexpected-end-tag +#document +| <html> +| <head> +| <script> +| <title> +| <body> +| <p> +| <p> + +#data +<p><hr></p> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,11): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <p> +| <hr> +| <p> + +#data +<select><b><option><select><option></b></select> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,11): unexpected-start-tag-in-select +(1,27): unexpected-select-in-select +(1,39): unexpected-end-tag +(1,48): unexpected-end-tag +(1,48): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <select> +| <option> +| <option> + +#data +<html><head><title></title><body></body></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <title> +| <body> + +#data +<a><table><td><a><table></table><a></tr><a></table><a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,14): unexpected-cell-in-table-body +(1,35): unexpected-start-tag-implies-end-tag +(1,40): unexpected-cell-end-tag +(1,43): unexpected-start-tag-implies-table-voodoo +(1,43): unexpected-start-tag-implies-end-tag +(1,43): unexpected-end-tag +(1,54): unexpected-start-tag-implies-end-tag +(1,54): adoption-agency-1.2 +(1,54): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <a> +| <table> +| <tbody> +| <tr> +| <td> +| <a> +| <table> +| <a> +| <a> + +#data +<ul><li></li><div><li></div><li><li><div><li><address><li><b><em></b><li></ul> +#errors +(1,4): expected-doctype-but-got-start-tag +(1,45): end-tag-too-early +(1,58): end-tag-too-early +(1,69): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <ul> +| <li> +| <div> +| <li> +| <li> +| <li> +| <div> +| <li> +| <address> +| <li> +| <b> +| <em> +| <li> + +#data +<ul><li><ul></li><li>a</li></ul></li></ul> +#errors +(1,4): expected-doctype-but-got-start-tag +(1,17): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <ul> +| <li> +| <ul> +| <li> +| "a" + +#data +<frameset><frame><frameset><frame></frameset><noframes></noframes></frameset> +#errors +(1,10): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <frameset> +| <frame> +| <frameset> +| <frame> +| <noframes> + +#data +<h1><table><td><h3></table><h3></h1> +#errors +(1,4): expected-doctype-but-got-start-tag +(1,15): unexpected-cell-in-table-body +(1,27): unexpected-cell-end-tag +(1,31): unexpected-start-tag +(1,36): end-tag-too-early +#document +| <html> +| <head> +| <body> +| <h1> +| <table> +| <tbody> +| <tr> +| <td> +| <h3> +| <h3> + +#data +<table><colgroup><col><colgroup><col><col><col><colgroup><col><col><thead><tr><td></table> +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <table> +| <colgroup> +| <col> +| <colgroup> +| <col> +| <col> +| <col> +| <colgroup> +| <col> +| <col> +| <thead> +| <tr> +| <td> + +#data +<table><col><tbody><col><tr><col><td><col></table><col> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,37): unexpected-cell-in-table-body +(1,55): unexpected-start-tag-ignored +#document +| <html> +| <head> +| <body> +| <table> +| <colgroup> +| <col> +| <tbody> +| <colgroup> +| <col> +| <tbody> +| <tr> +| <colgroup> +| <col> +| <tbody> +| <tr> +| <td> +| <colgroup> +| <col> + +#data +<table><colgroup><tbody><colgroup><tr><colgroup><td><colgroup></table><colgroup> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,52): unexpected-cell-in-table-body +(1,80): unexpected-start-tag-ignored +#document +| <html> +| <head> +| <body> +| <table> +| <colgroup> +| <tbody> +| <colgroup> +| <tbody> +| <tr> +| <colgroup> +| <tbody> +| <tr> +| <td> +| <colgroup> + +#data +</strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea> +#errors +(1,9): expected-doctype-but-got-end-tag +(1,9): unexpected-end-tag-before-html +(1,13): unexpected-end-tag-before-html +(1,18): unexpected-end-tag-before-html +(1,22): unexpected-end-tag-before-html +(1,26): unexpected-end-tag-before-html +(1,35): unexpected-end-tag-before-html +(1,39): unexpected-end-tag-before-html +(1,47): unexpected-end-tag-before-html +(1,52): unexpected-end-tag-before-html +(1,58): unexpected-end-tag-before-html +(1,64): unexpected-end-tag-before-html +(1,72): unexpected-end-tag-before-html +(1,79): unexpected-end-tag-before-html +(1,88): unexpected-end-tag-before-html +(1,93): unexpected-end-tag-before-html +(1,98): unexpected-end-tag-before-html +(1,103): unexpected-end-tag-before-html +(1,108): unexpected-end-tag-before-html +(1,113): unexpected-end-tag-before-html +(1,118): unexpected-end-tag-before-html +(1,130): unexpected-end-tag-after-body +(1,130): unexpected-end-tag-treated-as +(1,134): unexpected-end-tag +(1,140): unexpected-end-tag +(1,148): unexpected-end-tag +(1,155): unexpected-end-tag +(1,163): unexpected-end-tag +(1,172): unexpected-end-tag +(1,180): unexpected-end-tag +(1,185): unexpected-end-tag +(1,190): unexpected-end-tag +(1,195): unexpected-end-tag +(1,203): unexpected-end-tag +(1,210): unexpected-end-tag +(1,217): unexpected-end-tag +(1,225): unexpected-end-tag +(1,230): unexpected-end-tag +(1,238): unexpected-end-tag +(1,244): unexpected-end-tag +(1,251): unexpected-end-tag +(1,258): unexpected-end-tag +(1,269): unexpected-end-tag +(1,279): unexpected-end-tag +(1,287): unexpected-end-tag +(1,296): unexpected-end-tag +(1,300): unexpected-end-tag +(1,305): unexpected-end-tag +(1,310): unexpected-end-tag +(1,320): unexpected-end-tag +(1,331): unexpected-end-tag +(1,339): unexpected-end-tag +(1,347): unexpected-end-tag +(1,355): unexpected-end-tag +(1,365): end-tag-too-early +(1,378): end-tag-too-early +(1,387): end-tag-too-early +(1,393): end-tag-too-early +(1,399): end-tag-too-early +(1,404): end-tag-too-early +(1,415): end-tag-too-early +(1,425): end-tag-too-early +(1,432): end-tag-too-early +(1,437): end-tag-too-early +(1,442): end-tag-too-early +(1,447): unexpected-end-tag +(1,454): unexpected-end-tag +(1,460): unexpected-end-tag +(1,467): unexpected-end-tag +(1,476): end-tag-too-early +(1,486): end-tag-too-early +(1,495): end-tag-too-early +(1,513): expected-eof-but-got-end-tag +(1,513): unexpected-end-tag +(1,520): unexpected-end-tag +(1,529): unexpected-end-tag +(1,537): unexpected-end-tag +(1,547): unexpected-end-tag +(1,557): unexpected-end-tag +(1,568): unexpected-end-tag +(1,579): unexpected-end-tag +(1,590): unexpected-end-tag +(1,599): unexpected-end-tag +(1,611): unexpected-end-tag +(1,622): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <br> +| <p> + +#data +<table><tr></strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,20): unexpected-end-tag-implies-table-voodoo +(1,20): unexpected-end-tag +(1,24): unexpected-end-tag-implies-table-voodoo +(1,24): unexpected-end-tag +(1,29): unexpected-end-tag-implies-table-voodoo +(1,29): unexpected-end-tag +(1,33): unexpected-end-tag-implies-table-voodoo +(1,33): unexpected-end-tag +(1,37): unexpected-end-tag-implies-table-voodoo +(1,37): unexpected-end-tag +(1,46): unexpected-end-tag-implies-table-voodoo +(1,46): unexpected-end-tag +(1,50): unexpected-end-tag-implies-table-voodoo +(1,50): unexpected-end-tag +(1,58): unexpected-end-tag-implies-table-voodoo +(1,58): unexpected-end-tag +(1,63): unexpected-end-tag-implies-table-voodoo +(1,63): unexpected-end-tag +(1,69): unexpected-end-tag-implies-table-voodoo +(1,69): end-tag-too-early +(1,75): unexpected-end-tag-implies-table-voodoo +(1,75): unexpected-end-tag +(1,83): unexpected-end-tag-implies-table-voodoo +(1,83): unexpected-end-tag +(1,90): unexpected-end-tag-implies-table-voodoo +(1,90): unexpected-end-tag +(1,99): unexpected-end-tag-implies-table-voodoo +(1,99): unexpected-end-tag +(1,104): unexpected-end-tag-implies-table-voodoo +(1,104): end-tag-too-early +(1,109): unexpected-end-tag-implies-table-voodoo +(1,109): end-tag-too-early +(1,114): unexpected-end-tag-implies-table-voodoo +(1,114): end-tag-too-early +(1,119): unexpected-end-tag-implies-table-voodoo +(1,119): end-tag-too-early +(1,124): unexpected-end-tag-implies-table-voodoo +(1,124): end-tag-too-early +(1,129): unexpected-end-tag-implies-table-voodoo +(1,129): end-tag-too-early +(1,136): unexpected-end-tag-in-table-row +(1,141): unexpected-end-tag-implies-table-voodoo +(1,141): unexpected-end-tag-treated-as +(1,145): unexpected-end-tag-implies-table-voodoo +(1,145): unexpected-end-tag +(1,151): unexpected-end-tag-implies-table-voodoo +(1,151): unexpected-end-tag +(1,159): unexpected-end-tag-implies-table-voodoo +(1,159): unexpected-end-tag +(1,166): unexpected-end-tag-implies-table-voodoo +(1,166): unexpected-end-tag +(1,174): unexpected-end-tag-implies-table-voodoo +(1,174): unexpected-end-tag +(1,183): unexpected-end-tag-implies-table-voodoo +(1,183): unexpected-end-tag +(1,196): unexpected-end-tag +(1,201): unexpected-end-tag +(1,206): unexpected-end-tag +(1,214): unexpected-end-tag +(1,221): unexpected-end-tag +(1,228): unexpected-end-tag +(1,236): unexpected-end-tag +(1,241): unexpected-end-tag +(1,249): unexpected-end-tag +(1,255): unexpected-end-tag +(1,262): unexpected-end-tag +(1,269): unexpected-end-tag +(1,280): unexpected-end-tag +(1,290): unexpected-end-tag +(1,298): unexpected-end-tag +(1,307): unexpected-end-tag +(1,311): unexpected-end-tag +(1,316): unexpected-end-tag +(1,321): unexpected-end-tag +(1,331): unexpected-end-tag +(1,342): unexpected-end-tag +(1,350): unexpected-end-tag +(1,358): unexpected-end-tag +(1,366): unexpected-end-tag +(1,376): end-tag-too-early +(1,389): end-tag-too-early +(1,398): end-tag-too-early +(1,404): end-tag-too-early +(1,410): end-tag-too-early +(1,415): end-tag-too-early +(1,426): end-tag-too-early +(1,436): end-tag-too-early +(1,443): end-tag-too-early +(1,448): end-tag-too-early +(1,453): end-tag-too-early +(1,458): unexpected-end-tag +(1,465): unexpected-end-tag +(1,471): unexpected-end-tag +(1,478): unexpected-end-tag +(1,487): end-tag-too-early +(1,497): end-tag-too-early +(1,506): end-tag-too-early +(1,524): expected-eof-but-got-end-tag +(1,524): unexpected-end-tag +(1,531): unexpected-end-tag +(1,540): unexpected-end-tag +(1,548): unexpected-end-tag +(1,558): unexpected-end-tag +(1,568): unexpected-end-tag +(1,579): unexpected-end-tag +(1,590): unexpected-end-tag +(1,601): unexpected-end-tag +(1,610): unexpected-end-tag +(1,622): unexpected-end-tag +(1,633): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <br> +| <table> +| <tbody> +| <tr> +| <p> + +#data +<frameset> +#errors +(1,10): expected-doctype-but-got-start-tag +(1,10): eof-in-frameset +#document +| <html> +| <head> +| <frameset> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests10.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests10.dat new file mode 100644 index 0000000000..87d94786b1 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests10.dat @@ -0,0 +1,847 @@ +#data +<!DOCTYPE html><svg></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> + +#data +<!DOCTYPE html><svg></svg><![CDATA[a]]> +#errors +(1,28) expected-dashes-or-doctype +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <!-- [CDATA[a]] --> + +#data +<!DOCTYPE html><body><svg></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> + +#data +<!DOCTYPE html><body><select><svg></svg></select> +#errors +(1,34) unexpected-start-tag-in-select +(1,40) unexpected-end-tag-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!DOCTYPE html><body><select><option><svg></svg></option></select> +#errors +(1,42) unexpected-start-tag-in-select +(1,48) unexpected-end-tag-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <option> + +#data +<!DOCTYPE html><body><table><svg></svg></table> +#errors +(1,33) foster-parenting-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <table> + +#data +<!DOCTYPE html><body><table><svg><g>foo</g></svg></table> +#errors +(1,33) foster-parenting-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg g> +| "foo" +| <table> + +#data +<!DOCTYPE html><body><table><svg><g>foo</g><g>bar</g></svg></table> +#errors +(1,33) foster-parenting-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <table> + +#data +<!DOCTYPE html><body><table><tbody><svg><g>foo</g><g>bar</g></svg></tbody></table> +#errors +(1,40) foster-parenting-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <table> +| <tbody> + +#data +<!DOCTYPE html><body><table><tbody><tr><svg><g>foo</g><g>bar</g></svg></tr></tbody></table> +#errors +(1,44) foster-parenting-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <table> +| <tbody> +| <tr> + +#data +<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg></td></tr></tbody></table> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" + +#data +<!DOCTYPE html><body><table><tbody><tr><td><svg><g>foo</g><g>bar</g></svg><p>baz</td></tr></tbody></table> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <p> +| "baz" + +#data +<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g></svg><p>baz</caption></table> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <p> +| "baz" + +#data +<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g><p>baz</table><p>quux +#errors +(1,65) unexpected-html-element-in-foreign-content +(1,76) XXX-undefined-error +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <p> +| "baz" +| <p> +| "quux" + +#data +<!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g>baz</table><p>quux +#errors +(1,73) unexpected-end-tag +(1,73) expected-one-end-tag-but-got-another +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| "baz" +| <p> +| "quux" + +#data +<!DOCTYPE html><body><table><colgroup><svg><g>foo</g><g>bar</g><p>baz</table><p>quux +#errors +(1,43) foster-parenting-start-tag +(1,66) foster-parenting-start-tag +(1,67) foster-parenting-character +(1,68) foster-parenting-character +(1,69) foster-parenting-character +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <p> +| "baz" +| <table> +| <colgroup> +| <p> +| "quux" + +#data +<!DOCTYPE html><body><table><tr><td><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux +#errors +(1,49) unexpected-start-tag-in-select +(1,52) unexpected-start-tag-in-select +(1,59) unexpected-end-tag-in-select +(1,62) unexpected-start-tag-in-select +(1,69) unexpected-end-tag-in-select +(1,72) unexpected-start-tag-in-select +(1,83) unexpected-table-element-end-tag-in-select-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <select> +| "foobarbaz" +| <p> +| "quux" + +#data +<!DOCTYPE html><body><table><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux +#errors +(1,36) unexpected-start-tag-implies-table-voodoo +(1,41) unexpected-start-tag-in-select +(1,44) unexpected-start-tag-in-select +(1,51) unexpected-end-tag-in-select +(1,54) unexpected-start-tag-in-select +(1,61) unexpected-end-tag-in-select +(1,64) unexpected-start-tag-in-select +(1,75) unexpected-table-element-end-tag-in-select-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| "foobarbaz" +| <table> +| <p> +| "quux" + +#data +<!DOCTYPE html><body></body></html><svg><g>foo</g><g>bar</g><p>baz +#errors +(1,40) expected-eof-but-got-start-tag +(1,63) unexpected-html-element-in-foreign-content +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <p> +| "baz" + +#data +<!DOCTYPE html><body></body><svg><g>foo</g><g>bar</g><p>baz +#errors +(1,33) unexpected-start-tag-after-body +(1,56) unexpected-html-element-in-foreign-content +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg g> +| "foo" +| <svg g> +| "bar" +| <p> +| "baz" + +#data +<!DOCTYPE html><frameset><svg><g></g><g></g><p><span> +#errors +(1,30) unexpected-start-tag-in-frameset +(1,33) unexpected-start-tag-in-frameset +(1,37) unexpected-end-tag-in-frameset +(1,40) unexpected-start-tag-in-frameset +(1,44) unexpected-end-tag-in-frameset +(1,47) unexpected-start-tag-in-frameset +(1,53) unexpected-start-tag-in-frameset +(1,53) eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!DOCTYPE html><frameset></frameset><svg><g></g><g></g><p><span> +#errors +(1,41) unexpected-start-tag-after-frameset +(1,44) unexpected-start-tag-after-frameset +(1,48) unexpected-end-tag-after-frameset +(1,51) unexpected-start-tag-after-frameset +(1,55) unexpected-end-tag-after-frameset +(1,58) unexpected-start-tag-after-frameset +(1,64) unexpected-start-tag-after-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!DOCTYPE html><body xlink:href=foo><svg xlink:href=foo></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| xlink:href="foo" +| <svg svg> +| xlink href="foo" + +#data +<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo></g></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| xlink:href="foo" +| xml:lang="en" +| <svg svg> +| <svg g> +| xlink href="foo" +| xml lang="en" + +#data +<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo /></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| xlink:href="foo" +| xml:lang="en" +| <svg svg> +| <svg g> +| xlink href="foo" +| xml lang="en" + +#data +<!DOCTYPE html><body xlink:href=foo xml:lang=en><svg><g xml:lang=en xlink:href=foo />bar</svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| xlink:href="foo" +| xml:lang="en" +| <svg svg> +| <svg g> +| xlink href="foo" +| xml lang="en" +| "bar" + +#data +<svg></path> +#errors +(1,5) expected-doctype-but-got-start-tag +(1,12) unexpected-end-tag +(1,12) unexpected-end-tag +(1,12) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> + +#data +<div><svg></div>a +#errors +(1,5) expected-doctype-but-got-start-tag +(1,16) unexpected-end-tag +(1,16) end-tag-too-early +#document +| <html> +| <head> +| <body> +| <div> +| <svg svg> +| "a" + +#data +<div><svg><path></div>a +#errors +(1,5) expected-doctype-but-got-start-tag +(1,22) unexpected-end-tag +(1,22) end-tag-too-early +#document +| <html> +| <head> +| <body> +| <div> +| <svg svg> +| <svg path> +| "a" + +#data +<div><svg><path></svg><path> +#errors +(1,5) expected-doctype-but-got-start-tag +(1,22) unexpected-end-tag +(1,28) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <svg svg> +| <svg path> +| <path> + +#data +<div><svg><path><foreignObject><math></div>a +#errors +(1,5) expected-doctype-but-got-start-tag +(1,43) unexpected-end-tag +(1,43) end-tag-too-early +(1,44) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <svg svg> +| <svg path> +| <svg foreignObject> +| <math math> +| "a" + +#data +<div><svg><path><foreignObject><p></div>a +#errors +(1,5) expected-doctype-but-got-start-tag +(1,40) end-tag-too-early +(1,41) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <svg svg> +| <svg path> +| <svg foreignObject> +| <p> +| "a" + +#data +<!DOCTYPE html><svg><desc><div><svg><ul>a +#errors +(1,40) unexpected-html-element-in-foreign-content +(1,41) expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg desc> +| <div> +| <svg svg> +| <ul> +| "a" + +#data +<!DOCTYPE html><svg><desc><svg><ul>a +#errors +(1,35) unexpected-html-element-in-foreign-content +(1,36) expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg desc> +| <svg svg> +| <ul> +| "a" + +#data +<!DOCTYPE html><p><svg><desc><p> +#errors +(1,32) expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <svg svg> +| <svg desc> +| <p> + +#data +<!DOCTYPE html><p><svg><title><p> +#errors +(1,33) expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <svg svg> +| <svg title> +| <p> + +#data +<div><svg><path><foreignObject><p></foreignObject><p> +#errors +(1,5) expected-doctype-but-got-start-tag +(1,50) unexpected-end-tag +(1,53) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <svg svg> +| <svg path> +| <svg foreignObject> +| <p> +| <p> + +#data +<math><mi><div><object><div><span></span></div></object></div></mi><mi> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,71) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| <div> +| <object> +| <div> +| <span> +| <math mi> + +#data +<math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,83) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| <svg svg> +| <svg foreignObject> +| <div> +| <div> +| <math mi> + +#data +<svg><script></script><path> +#errors +(1,5) expected-doctype-but-got-start-tag +(1,28) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| <svg script> +| <svg path> + +#data +<table><svg></svg><tr> +#errors +(1,7) expected-doctype-but-got-start-tag +(1,12) unexpected-start-tag-implies-table-voodoo +(1,22) eof-in-table +#document +| <html> +| <head> +| <body> +| <svg svg> +| <table> +| <tbody> +| <tr> + +#data +<math><mi><mglyph> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,18) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| <math mglyph> + +#data +<math><mi><malignmark> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,22) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| <math malignmark> + +#data +<math><mo><mglyph> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,18) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mo> +| <math mglyph> + +#data +<math><mo><malignmark> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,22) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mo> +| <math malignmark> + +#data +<math><mn><mglyph> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,18) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mn> +| <math mglyph> + +#data +<math><mn><malignmark> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,22) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mn> +| <math malignmark> + +#data +<math><ms><mglyph> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,18) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math ms> +| <math mglyph> + +#data +<math><ms><malignmark> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,22) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math ms> +| <math malignmark> + +#data +<math><mtext><mglyph> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,21) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mtext> +| <math mglyph> + +#data +<math><mtext><malignmark> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,25) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mtext> +| <math malignmark> + +#data +<math><annotation-xml><svg></svg></annotation-xml><mi> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,54) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| <svg svg> +| <math mi> + +#data +<math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,144) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| <svg svg> +| <svg foreignObject> +| <div> +| <math math> +| <math mi> +| <span> +| <svg path> +| <math mi> + +#data +<math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,153) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| <svg svg> +| <svg foreignObject> +| <math math> +| <math mi> +| <svg svg> +| <math mo> +| <span> +| <svg path> +| <math mi> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests11.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests11.dat new file mode 100644 index 0000000000..ad62cdf659 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests11.dat @@ -0,0 +1,482 @@ +#data +<!DOCTYPE html><body><svg attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| attributeName="" +| attributeType="" +| baseFrequency="" +| baseProfile="" +| calcMode="" +| clipPathUnits="" +| contentscripttype="" +| contentstyletype="" +| diffuseConstant="" +| edgeMode="" +| externalresourcesrequired="" +| filterUnits="" +| filterres="" +| glyphRef="" +| gradientTransform="" +| gradientUnits="" +| kernelMatrix="" +| kernelUnitLength="" +| keyPoints="" +| keySplines="" +| keyTimes="" +| lengthAdjust="" +| limitingConeAngle="" +| markerHeight="" +| markerUnits="" +| markerWidth="" +| maskContentUnits="" +| maskUnits="" +| numOctaves="" +| pathLength="" +| patternContentUnits="" +| patternTransform="" +| patternUnits="" +| pointsAtX="" +| pointsAtY="" +| pointsAtZ="" +| preserveAlpha="" +| preserveAspectRatio="" +| primitiveUnits="" +| refX="" +| refY="" +| repeatCount="" +| repeatDur="" +| requiredExtensions="" +| requiredFeatures="" +| specularConstant="" +| specularExponent="" +| spreadMethod="" +| startOffset="" +| stdDeviation="" +| stitchTiles="" +| surfaceScale="" +| systemLanguage="" +| tableValues="" +| targetX="" +| targetY="" +| textLength="" +| viewBox="" +| viewTarget="" +| xChannelSelector="" +| yChannelSelector="" +| zoomAndPan="" + +#data +<!DOCTYPE html><BODY><SVG ATTRIBUTENAME='' ATTRIBUTETYPE='' BASEFREQUENCY='' BASEPROFILE='' CALCMODE='' CLIPPATHUNITS='' CONTENTSCRIPTTYPE='' CONTENTSTYLETYPE='' DIFFUSECONSTANT='' EDGEMODE='' EXTERNALRESOURCESREQUIRED='' FILTERRES='' FILTERUNITS='' GLYPHREF='' GRADIENTTRANSFORM='' GRADIENTUNITS='' KERNELMATRIX='' KERNELUNITLENGTH='' KEYPOINTS='' KEYSPLINES='' KEYTIMES='' LENGTHADJUST='' LIMITINGCONEANGLE='' MARKERHEIGHT='' MARKERUNITS='' MARKERWIDTH='' MASKCONTENTUNITS='' MASKUNITS='' NUMOCTAVES='' PATHLENGTH='' PATTERNCONTENTUNITS='' PATTERNTRANSFORM='' PATTERNUNITS='' POINTSATX='' POINTSATY='' POINTSATZ='' PRESERVEALPHA='' PRESERVEASPECTRATIO='' PRIMITIVEUNITS='' REFX='' REFY='' REPEATCOUNT='' REPEATDUR='' REQUIREDEXTENSIONS='' REQUIREDFEATURES='' SPECULARCONSTANT='' SPECULAREXPONENT='' SPREADMETHOD='' STARTOFFSET='' STDDEVIATION='' STITCHTILES='' SURFACESCALE='' SYSTEMLANGUAGE='' TABLEVALUES='' TARGETX='' TARGETY='' TEXTLENGTH='' VIEWBOX='' VIEWTARGET='' XCHANNELSELECTOR='' YCHANNELSELECTOR='' ZOOMANDPAN=''></SVG> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| attributeName="" +| attributeType="" +| baseFrequency="" +| baseProfile="" +| calcMode="" +| clipPathUnits="" +| contentscripttype="" +| contentstyletype="" +| diffuseConstant="" +| edgeMode="" +| externalresourcesrequired="" +| filterUnits="" +| filterres="" +| glyphRef="" +| gradientTransform="" +| gradientUnits="" +| kernelMatrix="" +| kernelUnitLength="" +| keyPoints="" +| keySplines="" +| keyTimes="" +| lengthAdjust="" +| limitingConeAngle="" +| markerHeight="" +| markerUnits="" +| markerWidth="" +| maskContentUnits="" +| maskUnits="" +| numOctaves="" +| pathLength="" +| patternContentUnits="" +| patternTransform="" +| patternUnits="" +| pointsAtX="" +| pointsAtY="" +| pointsAtZ="" +| preserveAlpha="" +| preserveAspectRatio="" +| primitiveUnits="" +| refX="" +| refY="" +| repeatCount="" +| repeatDur="" +| requiredExtensions="" +| requiredFeatures="" +| specularConstant="" +| specularExponent="" +| spreadMethod="" +| startOffset="" +| stdDeviation="" +| stitchTiles="" +| surfaceScale="" +| systemLanguage="" +| tableValues="" +| targetX="" +| targetY="" +| textLength="" +| viewBox="" +| viewTarget="" +| xChannelSelector="" +| yChannelSelector="" +| zoomAndPan="" + +#data +<!DOCTYPE html><body><svg attributename='' attributetype='' basefrequency='' baseprofile='' calcmode='' clippathunits='' contentscripttype='' contentstyletype='' diffuseconstant='' edgemode='' externalresourcesrequired='' filterres='' filterunits='' glyphref='' gradienttransform='' gradientunits='' kernelmatrix='' kernelunitlength='' keypoints='' keysplines='' keytimes='' lengthadjust='' limitingconeangle='' markerheight='' markerunits='' markerwidth='' maskcontentunits='' maskunits='' numoctaves='' pathlength='' patterncontentunits='' patterntransform='' patternunits='' pointsatx='' pointsaty='' pointsatz='' preservealpha='' preserveaspectratio='' primitiveunits='' refx='' refy='' repeatcount='' repeatdur='' requiredextensions='' requiredfeatures='' specularconstant='' specularexponent='' spreadmethod='' startoffset='' stddeviation='' stitchtiles='' surfacescale='' systemlanguage='' tablevalues='' targetx='' targety='' textlength='' viewbox='' viewtarget='' xchannelselector='' ychannelselector='' zoomandpan=''></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| attributeName="" +| attributeType="" +| baseFrequency="" +| baseProfile="" +| calcMode="" +| clipPathUnits="" +| contentscripttype="" +| contentstyletype="" +| diffuseConstant="" +| edgeMode="" +| externalresourcesrequired="" +| filterUnits="" +| filterres="" +| glyphRef="" +| gradientTransform="" +| gradientUnits="" +| kernelMatrix="" +| kernelUnitLength="" +| keyPoints="" +| keySplines="" +| keyTimes="" +| lengthAdjust="" +| limitingConeAngle="" +| markerHeight="" +| markerUnits="" +| markerWidth="" +| maskContentUnits="" +| maskUnits="" +| numOctaves="" +| pathLength="" +| patternContentUnits="" +| patternTransform="" +| patternUnits="" +| pointsAtX="" +| pointsAtY="" +| pointsAtZ="" +| preserveAlpha="" +| preserveAspectRatio="" +| primitiveUnits="" +| refX="" +| refY="" +| repeatCount="" +| repeatDur="" +| requiredExtensions="" +| requiredFeatures="" +| specularConstant="" +| specularExponent="" +| spreadMethod="" +| startOffset="" +| stdDeviation="" +| stitchTiles="" +| surfaceScale="" +| systemLanguage="" +| tableValues="" +| targetX="" +| targetY="" +| textLength="" +| viewBox="" +| viewTarget="" +| xChannelSelector="" +| yChannelSelector="" +| zoomAndPan="" + +#data +<!DOCTYPE html><body><math attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' contentScriptType='' contentStyleType='' diffuseConstant='' edgeMode='' externalResourcesRequired='' filterRes='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></math> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| attributename="" +| attributetype="" +| basefrequency="" +| baseprofile="" +| calcmode="" +| clippathunits="" +| contentscripttype="" +| contentstyletype="" +| diffuseconstant="" +| edgemode="" +| externalresourcesrequired="" +| filterres="" +| filterunits="" +| glyphref="" +| gradienttransform="" +| gradientunits="" +| kernelmatrix="" +| kernelunitlength="" +| keypoints="" +| keysplines="" +| keytimes="" +| lengthadjust="" +| limitingconeangle="" +| markerheight="" +| markerunits="" +| markerwidth="" +| maskcontentunits="" +| maskunits="" +| numoctaves="" +| pathlength="" +| patterncontentunits="" +| patterntransform="" +| patternunits="" +| pointsatx="" +| pointsaty="" +| pointsatz="" +| preservealpha="" +| preserveaspectratio="" +| primitiveunits="" +| refx="" +| refy="" +| repeatcount="" +| repeatdur="" +| requiredextensions="" +| requiredfeatures="" +| specularconstant="" +| specularexponent="" +| spreadmethod="" +| startoffset="" +| stddeviation="" +| stitchtiles="" +| surfacescale="" +| systemlanguage="" +| tablevalues="" +| targetx="" +| targety="" +| textlength="" +| viewbox="" +| viewtarget="" +| xchannelselector="" +| ychannelselector="" +| zoomandpan="" + +#data +<!DOCTYPE html><body><svg><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg altGlyph> +| <svg altGlyphDef> +| <svg altGlyphItem> +| <svg animateColor> +| <svg animateMotion> +| <svg animateTransform> +| <svg clipPath> +| <svg feBlend> +| <svg feColorMatrix> +| <svg feComponentTransfer> +| <svg feComposite> +| <svg feConvolveMatrix> +| <svg feDiffuseLighting> +| <svg feDisplacementMap> +| <svg feDistantLight> +| <svg feFlood> +| <svg feFuncA> +| <svg feFuncB> +| <svg feFuncG> +| <svg feFuncR> +| <svg feGaussianBlur> +| <svg feImage> +| <svg feMerge> +| <svg feMergeNode> +| <svg feMorphology> +| <svg feOffset> +| <svg fePointLight> +| <svg feSpecularLighting> +| <svg feSpotLight> +| <svg feTile> +| <svg feTurbulence> +| <svg foreignObject> +| <svg glyphRef> +| <svg linearGradient> +| <svg radialGradient> +| <svg textPath> + +#data +<!DOCTYPE html><body><svg><altglyph /><altglyphdef /><altglyphitem /><animatecolor /><animatemotion /><animatetransform /><clippath /><feblend /><fecolormatrix /><fecomponenttransfer /><fecomposite /><feconvolvematrix /><fediffuselighting /><fedisplacementmap /><fedistantlight /><feflood /><fefunca /><fefuncb /><fefuncg /><fefuncr /><fegaussianblur /><feimage /><femerge /><femergenode /><femorphology /><feoffset /><fepointlight /><fespecularlighting /><fespotlight /><fetile /><feturbulence /><foreignobject /><glyphref /><lineargradient /><radialgradient /><textpath /></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg altGlyph> +| <svg altGlyphDef> +| <svg altGlyphItem> +| <svg animateColor> +| <svg animateMotion> +| <svg animateTransform> +| <svg clipPath> +| <svg feBlend> +| <svg feColorMatrix> +| <svg feComponentTransfer> +| <svg feComposite> +| <svg feConvolveMatrix> +| <svg feDiffuseLighting> +| <svg feDisplacementMap> +| <svg feDistantLight> +| <svg feFlood> +| <svg feFuncA> +| <svg feFuncB> +| <svg feFuncG> +| <svg feFuncR> +| <svg feGaussianBlur> +| <svg feImage> +| <svg feMerge> +| <svg feMergeNode> +| <svg feMorphology> +| <svg feOffset> +| <svg fePointLight> +| <svg feSpecularLighting> +| <svg feSpotLight> +| <svg feTile> +| <svg feTurbulence> +| <svg foreignObject> +| <svg glyphRef> +| <svg linearGradient> +| <svg radialGradient> +| <svg textPath> + +#data +<!DOCTYPE html><BODY><SVG><ALTGLYPH /><ALTGLYPHDEF /><ALTGLYPHITEM /><ANIMATECOLOR /><ANIMATEMOTION /><ANIMATETRANSFORM /><CLIPPATH /><FEBLEND /><FECOLORMATRIX /><FECOMPONENTTRANSFER /><FECOMPOSITE /><FECONVOLVEMATRIX /><FEDIFFUSELIGHTING /><FEDISPLACEMENTMAP /><FEDISTANTLIGHT /><FEFLOOD /><FEFUNCA /><FEFUNCB /><FEFUNCG /><FEFUNCR /><FEGAUSSIANBLUR /><FEIMAGE /><FEMERGE /><FEMERGENODE /><FEMORPHOLOGY /><FEOFFSET /><FEPOINTLIGHT /><FESPECULARLIGHTING /><FESPOTLIGHT /><FETILE /><FETURBULENCE /><FOREIGNOBJECT /><GLYPHREF /><LINEARGRADIENT /><RADIALGRADIENT /><TEXTPATH /></SVG> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg altGlyph> +| <svg altGlyphDef> +| <svg altGlyphItem> +| <svg animateColor> +| <svg animateMotion> +| <svg animateTransform> +| <svg clipPath> +| <svg feBlend> +| <svg feColorMatrix> +| <svg feComponentTransfer> +| <svg feComposite> +| <svg feConvolveMatrix> +| <svg feDiffuseLighting> +| <svg feDisplacementMap> +| <svg feDistantLight> +| <svg feFlood> +| <svg feFuncA> +| <svg feFuncB> +| <svg feFuncG> +| <svg feFuncR> +| <svg feGaussianBlur> +| <svg feImage> +| <svg feMerge> +| <svg feMergeNode> +| <svg feMorphology> +| <svg feOffset> +| <svg fePointLight> +| <svg feSpecularLighting> +| <svg feSpotLight> +| <svg feTile> +| <svg feTurbulence> +| <svg foreignObject> +| <svg glyphRef> +| <svg linearGradient> +| <svg radialGradient> +| <svg textPath> + +#data +<!DOCTYPE html><body><math><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></math> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math altglyph> +| <math altglyphdef> +| <math altglyphitem> +| <math animatecolor> +| <math animatemotion> +| <math animatetransform> +| <math clippath> +| <math feblend> +| <math fecolormatrix> +| <math fecomponenttransfer> +| <math fecomposite> +| <math feconvolvematrix> +| <math fediffuselighting> +| <math fedisplacementmap> +| <math fedistantlight> +| <math feflood> +| <math fefunca> +| <math fefuncb> +| <math fefuncg> +| <math fefuncr> +| <math fegaussianblur> +| <math feimage> +| <math femerge> +| <math femergenode> +| <math femorphology> +| <math feoffset> +| <math fepointlight> +| <math fespecularlighting> +| <math fespotlight> +| <math fetile> +| <math feturbulence> +| <math foreignobject> +| <math glyphref> +| <math lineargradient> +| <math radialgradient> +| <math textpath> + +#data +<!DOCTYPE html><body><svg><solidColor /></svg> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg solidcolor> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests12.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests12.dat new file mode 100644 index 0000000000..63107d277b --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests12.dat @@ -0,0 +1,62 @@ +#data +<!DOCTYPE html><body><p>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| "foo" +| <math math> +| <math mtext> +| <i> +| "baz" +| <math annotation-xml> +| <svg svg> +| <svg desc> +| <b> +| "eggs" +| <svg g> +| <svg foreignObject> +| <p> +| "spam" +| <table> +| <tbody> +| <tr> +| <td> +| <img> +| <svg g> +| "quux" +| "bar" + +#data +<!DOCTYPE html><body>foo<math><mtext><i>baz</i></mtext><annotation-xml><svg><desc><b>eggs</b></desc><g><foreignObject><P>spam<TABLE><tr><td><img></td></table></foreignObject></g><g>quux</g></svg></annotation-xml></math>bar +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "foo" +| <math math> +| <math mtext> +| <i> +| "baz" +| <math annotation-xml> +| <svg svg> +| <svg desc> +| <b> +| "eggs" +| <svg g> +| <svg foreignObject> +| <p> +| "spam" +| <table> +| <tbody> +| <tr> +| <td> +| <img> +| <svg g> +| "quux" +| "bar" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests14.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests14.dat new file mode 100644 index 0000000000..a08b7649eb --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests14.dat @@ -0,0 +1,75 @@ +#data +<!DOCTYPE html><html><body><xyz:abc></xyz:abc> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <xyz:abc> + +#data +<!DOCTYPE html><html><body><xyz:abc></xyz:abc><span></span> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <xyz:abc> +| <span> + +#data +<!DOCTYPE html><html><html abc:def=gh><xyz:abc></xyz:abc> +#errors +(1,38): non-html-root +#document +| <!DOCTYPE html> +| <html> +| abc:def="gh" +| <head> +| <body> +| <xyz:abc> + +#data +<!DOCTYPE html><html xml:lang=bar><html xml:lang=foo> +#errors +(1,53): non-html-root +#document +| <!DOCTYPE html> +| <html> +| xml:lang="bar" +| <head> +| <body> + +#data +<!DOCTYPE html><html 123=456> +#errors +#document +| <!DOCTYPE html> +| <html> +| 123="456" +| <head> +| <body> + +#data +<!DOCTYPE html><html 123=456><html 789=012> +#errors +(1,43): non-html-root +#document +| <!DOCTYPE html> +| <html> +| 123="456" +| 789="012" +| <head> +| <body> + +#data +<!DOCTYPE html><html><body 789=012> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| 789="012" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests15.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests15.dat new file mode 100644 index 0000000000..93d06a8717 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests15.dat @@ -0,0 +1,216 @@ +#data +<!DOCTYPE html><p><b><i><u></p> <p>X +#errors +(1,31): unexpected-end-tag +(1,36): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <b> +| <i> +| <u> +| <b> +| <i> +| <u> +| " " +| <p> +| "X" + +#data +<p><b><i><u></p> +<p>X +#errors +(1,3): expected-doctype-but-got-start-tag +(1,16): unexpected-end-tag +(2,4): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <b> +| <i> +| <u> +| <b> +| <i> +| <u> +| " +" +| <p> +| "X" + +#data +<!doctype html></html> <head> +#errors +(1,29): expected-eof-but-got-start-tag +(1,29): unexpected-start-tag-ignored +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| " " + +#data +<!doctype html></body><meta> +#errors +(1,28): unexpected-start-tag-after-body +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <meta> + +#data +<html></html><!-- foo --> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <!-- foo --> + +#data +<!doctype html></body><title>X</title> +#errors +(1,29): unexpected-start-tag-after-body +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <title> +| "X" + +#data +<!doctype html><table> X<meta></table> +#errors +(1,23): foster-parenting-character +(1,24): foster-parenting-character +(1,30): foster-parenting-start-character +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| " X" +| <meta> +| <table> + +#data +<!doctype html><table> x</table> +#errors +(1,23): foster-parenting-character +(1,24): foster-parenting-character +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| " x" +| <table> + +#data +<!doctype html><table> x </table> +#errors +(1,23): foster-parenting-character +(1,24): foster-parenting-character +(1,25): foster-parenting-character +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| " x " +| <table> + +#data +<!doctype html><table><tr> x</table> +#errors +(1,27): foster-parenting-character +(1,28): foster-parenting-character +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| " x" +| <table> +| <tbody> +| <tr> + +#data +<!doctype html><table>X<style> <tr>x </style> </table> +#errors +(1,23): foster-parenting-character +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "X" +| <table> +| <style> +| " <tr>x " +| " " + +#data +<!doctype html><div><table><a>foo</a> <tr><td>bar</td> </tr></table></div> +#errors +(1,30): foster-parenting-start-tag +(1,31): foster-parenting-character +(1,32): foster-parenting-character +(1,33): foster-parenting-character +(1,37): foster-parenting-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <div> +| <a> +| "foo" +| <table> +| " " +| <tbody> +| <tr> +| <td> +| "bar" +| " " + +#data +<frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,7): unexpected-start-tag-ignored +(1,15): unexpected-end-tag +(1,23): unexpected-end-tag +(1,33): unexpected-start-tag +(1,99): expected-named-closing-tag-but-got-eof +(1,99): eof-in-frameset +#document +| <html> +| <head> +| <frameset> +| <frame> +| <frameset> +| <frame> +| <noframes> +| "</frameset><noframes>" + +#data +<!DOCTYPE html><object></html> +#errors +(1,30): expected-body-in-scope +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <object> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests16.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests16.dat new file mode 100644 index 0000000000..1c57f14a32 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests16.dat @@ -0,0 +1,2396 @@ +#data +<!doctype html><script> +#errors +(1,23): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| <body> + +#data +<!doctype html><script>a +#errors +(1,24): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "a" +| <body> + +#data +<!doctype html><script>< +#errors +(1,24): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<" +| <body> + +#data +<!doctype html><script></ +#errors +(1,25): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</" +| <body> + +#data +<!doctype html><script></S +#errors +(1,26): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</S" +| <body> + +#data +<!doctype html><script></SC +#errors +(1,27): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</SC" +| <body> + +#data +<!doctype html><script></SCR +#errors +(1,28): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</SCR" +| <body> + +#data +<!doctype html><script></SCRI +#errors +(1,29): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</SCRI" +| <body> + +#data +<!doctype html><script></SCRIP +#errors +(1,30): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</SCRIP" +| <body> + +#data +<!doctype html><script></SCRIPT +#errors +(1,31): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</SCRIPT" +| <body> + +#data +<!doctype html><script></SCRIPT +#errors +(1,32): expected-attribute-name-but-got-eof +(1,32): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| <body> + +#data +<!doctype html><script></s +#errors +(1,26): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</s" +| <body> + +#data +<!doctype html><script></sc +#errors +(1,27): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</sc" +| <body> + +#data +<!doctype html><script></scr +#errors +(1,28): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</scr" +| <body> + +#data +<!doctype html><script></scri +#errors +(1,29): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</scri" +| <body> + +#data +<!doctype html><script></scrip +#errors +(1,30): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</scrip" +| <body> + +#data +<!doctype html><script></script +#errors +(1,31): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</script" +| <body> + +#data +<!doctype html><script></script +#errors +(1,32): expected-attribute-name-but-got-eof +(1,32): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| <body> + +#data +<!doctype html><script><! +#errors +(1,25): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!" +| <body> + +#data +<!doctype html><script><!a +#errors +(1,26): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!a" +| <body> + +#data +<!doctype html><script><!- +#errors +(1,26): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!-" +| <body> + +#data +<!doctype html><script><!-a +#errors +(1,27): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!-a" +| <body> + +#data +<!doctype html><script><!-- +#errors +(1,27): expected-named-closing-tag-but-got-eof +(1,27): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--" +| <body> + +#data +<!doctype html><script><!--a +#errors +(1,28): expected-named-closing-tag-but-got-eof +(1,28): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--a" +| <body> + +#data +<!doctype html><script><!--< +#errors +(1,28): expected-named-closing-tag-but-got-eof +(1,28): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<" +| <body> + +#data +<!doctype html><script><!--<a +#errors +(1,29): expected-named-closing-tag-but-got-eof +(1,29): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<a" +| <body> + +#data +<!doctype html><script><!--</ +#errors +(1,29): expected-named-closing-tag-but-got-eof +(1,29): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--</" +| <body> + +#data +<!doctype html><script><!--</script +#errors +(1,35): expected-named-closing-tag-but-got-eof +(1,35): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--</script" +| <body> + +#data +<!doctype html><script><!--</script +#errors +(1,36): expected-attribute-name-but-got-eof +(1,36): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--" +| <body> + +#data +<!doctype html><script><!--<s +#errors +(1,29): expected-named-closing-tag-but-got-eof +(1,29): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<s" +| <body> + +#data +<!doctype html><script><!--<script +#errors +(1,34): expected-named-closing-tag-but-got-eof +(1,34): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script" +| <body> + +#data +<!doctype html><script><!--<script +#errors +(1,35): eof-in-script-in-script +(1,35): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script " +| <body> + +#data +<!doctype html><script><!--<script < +#errors +(1,36): eof-in-script-in-script +(1,36): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script <" +| <body> + +#data +<!doctype html><script><!--<script <a +#errors +(1,37): eof-in-script-in-script +(1,37): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script <a" +| <body> + +#data +<!doctype html><script><!--<script </ +#errors +(1,37): eof-in-script-in-script +(1,37): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </" +| <body> + +#data +<!doctype html><script><!--<script </s +#errors +(1,38): eof-in-script-in-script +(1,38): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </s" +| <body> + +#data +<!doctype html><script><!--<script </script +#errors +(1,43): eof-in-script-in-script +(1,43): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script" +| <body> + +#data +<!doctype html><script><!--<script </scripta +#errors +(1,44): eof-in-script-in-script +(1,44): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </scripta" +| <body> + +#data +<!doctype html><script><!--<script </script +#errors +(1,44): expected-named-closing-tag-but-got-eof +(1,44): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script " +| <body> + +#data +<!doctype html><script><!--<script </script> +#errors +(1,44): expected-named-closing-tag-but-got-eof +(1,44): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script>" +| <body> + +#data +<!doctype html><script><!--<script </script/ +#errors +(1,44): expected-named-closing-tag-but-got-eof +(1,44): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script/" +| <body> + +#data +<!doctype html><script><!--<script </script < +#errors +(1,45): expected-named-closing-tag-but-got-eof +(1,45): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script <" +| <body> + +#data +<!doctype html><script><!--<script </script <a +#errors +(1,46): expected-named-closing-tag-but-got-eof +(1,46): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script <a" +| <body> + +#data +<!doctype html><script><!--<script </script </ +#errors +(1,46): expected-named-closing-tag-but-got-eof +(1,46): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script </" +| <body> + +#data +<!doctype html><script><!--<script </script </script +#errors +(1,52): expected-named-closing-tag-but-got-eof +(1,52): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script </script" +| <body> + +#data +<!doctype html><script><!--<script </script </script +#errors +(1,53): expected-attribute-name-but-got-eof +(1,53): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script " +| <body> + +#data +<!doctype html><script><!--<script </script </script/ +#errors +(1,53): unexpected-EOF-after-solidus-in-tag +(1,53): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script " +| <body> + +#data +<!doctype html><script><!--<script </script </script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script " +| <body> + +#data +<!doctype html><script><!--<script - +#errors +(1,36): eof-in-script-in-script +(1,36): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script -" +| <body> + +#data +<!doctype html><script><!--<script -a +#errors +(1,37): eof-in-script-in-script +(1,37): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script -a" +| <body> + +#data +<!doctype html><script><!--<script -< +#errors +(1,37): eof-in-script-in-script +(1,37): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script -<" +| <body> + +#data +<!doctype html><script><!--<script -- +#errors +(1,37): eof-in-script-in-script +(1,37): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script --" +| <body> + +#data +<!doctype html><script><!--<script --a +#errors +(1,38): eof-in-script-in-script +(1,38): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script --a" +| <body> + +#data +<!doctype html><script><!--<script --< +#errors +(1,38): eof-in-script-in-script +(1,38): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script --<" +| <body> + +#data +<!doctype html><script><!--<script --> +#errors +(1,38): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script -->" +| <body> + +#data +<!doctype html><script><!--<script -->< +#errors +(1,39): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script --><" +| <body> + +#data +<!doctype html><script><!--<script --></ +#errors +(1,40): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script --></" +| <body> + +#data +<!doctype html><script><!--<script --></script +#errors +(1,46): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script --></script" +| <body> + +#data +<!doctype html><script><!--<script --></script +#errors +(1,47): expected-attribute-name-but-got-eof +(1,47): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script -->" +| <body> + +#data +<!doctype html><script><!--<script --></script/ +#errors +(1,47): unexpected-EOF-after-solidus-in-tag +(1,47): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script -->" +| <body> + +#data +<!doctype html><script><!--<script --></script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script -->" +| <body> + +#data +<!doctype html><script><!--<script><\/script>--></script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script><\/script>-->" +| <body> + +#data +<!doctype html><script><!--<script></scr'+'ipt>--></script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script></scr'+'ipt>-->" +| <body> + +#data +<!doctype html><script><!--<script></script><script></script></script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>" +| <body> + +#data +<!doctype html><script><!--<script></script><script></script>--><!--</script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>--><!--" +| <body> + +#data +<!doctype html><script><!--<script></script><script></script>-- ></script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>-- >" +| <body> + +#data +<!doctype html><script><!--<script></script><script></script>- -></script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>- ->" +| <body> + +#data +<!doctype html><script><!--<script></script><script></script>- - ></script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>- - >" +| <body> + +#data +<!doctype html><script><!--<script></script><script></script>-></script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>->" +| <body> + +#data +<!doctype html><script><!--<script>--!></script>X +#errors +(1,49): expected-named-closing-tag-but-got-eof +(1,49): unexpected-EOF-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script>--!></script>X" +| <body> + +#data +<!doctype html><script><!--<scr'+'ipt></script>--></script> +#errors +(1,59): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<scr'+'ipt>" +| <body> +| "-->" + +#data +<!doctype html><script><!--<script></scr'+'ipt></script>X +#errors +(1,57): expected-named-closing-tag-but-got-eof +(1,57): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script></scr'+'ipt></script>X" +| <body> + +#data +<!doctype html><style><!--<style></style>--></style> +#errors +(1,52): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "<!--<style>" +| <body> +| "-->" + +#data +<!doctype html><style><!--</style>X +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "<!--" +| <body> +| "X" + +#data +<!doctype html><style><!--...</style>...--></style> +#errors +(1,51): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "<!--..." +| <body> +| "...-->" + +#data +<!doctype html><style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>" +| <body> +| "X" + +#data +<!doctype html><style><!--...<style><!--...--!></style>--></style> +#errors +(1,66): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "<!--...<style><!--...--!>" +| <body> +| "-->" + +#data +<!doctype html><style><!--...</style><!-- --><style>@import ...</style> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "<!--..." +| <!-- --> +| <style> +| "@import ..." +| <body> + +#data +<!doctype html><style>...<style><!--...</style><!-- --></style> +#errors +(1,63): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "...<style><!--..." +| <!-- --> +| <body> + +#data +<!doctype html><style>...<!--[if IE]><style>...</style>X +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "...<!--[if IE]><style>..." +| <body> +| "X" + +#data +<!doctype html><title><!--<title></title>--></title> +#errors +(1,52): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <title> +| "<!--<title>" +| <body> +| "-->" + +#data +<!doctype html><title></title></title> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <title> +| "</title>" +| <body> + +#data +<!doctype html><title>foo/title><link></head><body>X +#errors +(1,52): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <title> +| "foo/title><link></head><body>X" +| <body> + +#data +<!doctype html><noscript><!--<noscript></noscript>--></noscript> +#errors +(1,64): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <noscript> +| "<!--<noscript>" +| <body> +| "-->" + +#data +<!doctype html><noscript><!--</noscript>X<noscript>--></noscript> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <noscript> +| "<!--" +| <body> +| "X" +| <noscript> +| "-->" + +#data +<!doctype html><noscript><iframe></noscript>X +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <noscript> +| "<iframe>" +| <body> +| "X" + +#data +<!doctype html><noframes><!--<noframes></noframes>--></noframes> +#errors +(1,64): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <noframes> +| "<!--<noframes>" +| <body> +| "-->" + +#data +<!doctype html><noframes><body><script><!--...</script></body></noframes></html> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <noframes> +| "<body><script><!--...</script></body>" +| <body> + +#data +<!doctype html><textarea><!--<textarea></textarea>--></textarea> +#errors +(1,64): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <textarea> +| "<!--<textarea>" +| "-->" + +#data +<!doctype html><textarea></textarea></textarea> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <textarea> +| "</textarea>" + +#data +<!doctype html><textarea><</textarea> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <textarea> +| "<" + +#data +<!doctype html><textarea>a<b</textarea> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <textarea> +| "a<b" + +#data +<!doctype html><iframe><!--<iframe></iframe>--></iframe> +#errors +(1,56): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <iframe> +| "<!--<iframe>" +| "-->" + +#data +<!doctype html><iframe>...<!--X->...<!--/X->...</iframe> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <iframe> +| "...<!--X->...<!--/X->..." + +#data +<!doctype html><xmp><!--<xmp></xmp>--></xmp> +#errors +(1,44): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <xmp> +| "<!--<xmp>" +| "-->" + +#data +<!doctype html><style></style</style> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "</style" +| <body> + +#data +<!doctype html><style></stylee</style> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "</stylee" +| <body> + +#data +<!doctype html><noembed><!--<noembed></noembed>--></noembed> +#errors +(1,60): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <noembed> +| "<!--<noembed>" +| "-->" + +#data +<script> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,8): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| <body> + +#data +<script>a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,9): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "a" +| <body> + +#data +<script>< +#errors +(1,8): expected-doctype-but-got-start-tag +(1,9): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<" +| <body> + +#data +<script></ +#errors +(1,8): expected-doctype-but-got-start-tag +(1,10): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</" +| <body> + +#data +<script></S +#errors +(1,8): expected-doctype-but-got-start-tag +(1,11): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</S" +| <body> + +#data +<script></SC +#errors +(1,8): expected-doctype-but-got-start-tag +(1,12): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</SC" +| <body> + +#data +<script></SCR +#errors +(1,8): expected-doctype-but-got-start-tag +(1,13): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</SCR" +| <body> + +#data +<script></SCRI +#errors +(1,8): expected-doctype-but-got-start-tag +(1,14): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</SCRI" +| <body> + +#data +<script></SCRIP +#errors +(1,8): expected-doctype-but-got-start-tag +(1,15): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</SCRIP" +| <body> + +#data +<script></SCRIPT +#errors +(1,8): expected-doctype-but-got-start-tag +(1,16): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</SCRIPT" +| <body> + +#data +<script></SCRIPT +#errors +(1,8): expected-doctype-but-got-start-tag +(1,17): expected-attribute-name-but-got-eof +(1,17): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| <body> + +#data +<script></s +#errors +(1,8): expected-doctype-but-got-start-tag +(1,11): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</s" +| <body> + +#data +<script></sc +#errors +(1,8): expected-doctype-but-got-start-tag +(1,12): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</sc" +| <body> + +#data +<script></scr +#errors +(1,8): expected-doctype-but-got-start-tag +(1,13): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</scr" +| <body> + +#data +<script></scri +#errors +(1,8): expected-doctype-but-got-start-tag +(1,14): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</scri" +| <body> + +#data +<script></scrip +#errors +(1,8): expected-doctype-but-got-start-tag +(1,15): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</scrip" +| <body> + +#data +<script></script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,16): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</script" +| <body> + +#data +<script></script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,17): expected-attribute-name-but-got-eof +(1,17): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| <body> + +#data +<script><! +#errors +(1,8): expected-doctype-but-got-start-tag +(1,10): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!" +| <body> + +#data +<script><!a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,11): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!a" +| <body> + +#data +<script><!- +#errors +(1,8): expected-doctype-but-got-start-tag +(1,11): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!-" +| <body> + +#data +<script><!-a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,12): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!-a" +| <body> + +#data +<script><!-- +#errors +(1,8): expected-doctype-but-got-start-tag +(1,12): expected-named-closing-tag-but-got-eof +(1,12): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--" +| <body> + +#data +<script><!--a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,13): expected-named-closing-tag-but-got-eof +(1,13): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--a" +| <body> + +#data +<script><!--< +#errors +(1,8): expected-doctype-but-got-start-tag +(1,13): expected-named-closing-tag-but-got-eof +(1,13): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<" +| <body> + +#data +<script><!--<a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,14): expected-named-closing-tag-but-got-eof +(1,14): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<a" +| <body> + +#data +<script><!--</ +#errors +(1,8): expected-doctype-but-got-start-tag +(1,14): expected-named-closing-tag-but-got-eof +(1,14): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--</" +| <body> + +#data +<script><!--</script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,20): expected-named-closing-tag-but-got-eof +(1,20): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--</script" +| <body> + +#data +<script><!--</script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,21): expected-attribute-name-but-got-eof +(1,21): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--" +| <body> + +#data +<script><!--<s +#errors +(1,8): expected-doctype-but-got-start-tag +(1,14): expected-named-closing-tag-but-got-eof +(1,14): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<s" +| <body> + +#data +<script><!--<script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,19): expected-named-closing-tag-but-got-eof +(1,19): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script" +| <body> + +#data +<script><!--<script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,20): eof-in-script-in-script +(1,20): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script " +| <body> + +#data +<script><!--<script < +#errors +(1,8): expected-doctype-but-got-start-tag +(1,21): eof-in-script-in-script +(1,21): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script <" +| <body> + +#data +<script><!--<script <a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,22): eof-in-script-in-script +(1,22): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script <a" +| <body> + +#data +<script><!--<script </ +#errors +(1,8): expected-doctype-but-got-start-tag +(1,22): eof-in-script-in-script +(1,22): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script </" +| <body> + +#data +<script><!--<script </s +#errors +(1,8): expected-doctype-but-got-start-tag +(1,23): eof-in-script-in-script +(1,23): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script </s" +| <body> + +#data +<script><!--<script </script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,28): eof-in-script-in-script +(1,28): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script </script" +| <body> + +#data +<script><!--<script </scripta +#errors +(1,8): expected-doctype-but-got-start-tag +(1,29): eof-in-script-in-script +(1,29): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script </scripta" +| <body> + +#data +<script><!--<script </script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,29): expected-named-closing-tag-but-got-eof +(1,29): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script </script " +| <body> + +#data +<script><!--<script </script> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,29): expected-named-closing-tag-but-got-eof +(1,29): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script </script>" +| <body> + +#data +<script><!--<script </script/ +#errors +(1,8): expected-doctype-but-got-start-tag +(1,29): expected-named-closing-tag-but-got-eof +(1,29): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script </script/" +| <body> + +#data +<script><!--<script </script < +#errors +(1,8): expected-doctype-but-got-start-tag +(1,30): expected-named-closing-tag-but-got-eof +(1,30): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script </script <" +| <body> + +#data +<script><!--<script </script <a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,31): expected-named-closing-tag-but-got-eof +(1,31): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script </script <a" +| <body> + +#data +<script><!--<script </script </ +#errors +(1,8): expected-doctype-but-got-start-tag +(1,31): expected-named-closing-tag-but-got-eof +(1,31): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script </script </" +| <body> + +#data +<script><!--<script </script </script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,37): expected-named-closing-tag-but-got-eof +(1,37): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script </script </script" +| <body> + +#data +<script><!--<script </script </script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,38): expected-attribute-name-but-got-eof +(1,38): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script </script " +| <body> + +#data +<script><!--<script </script </script/ +#errors +(1,8): expected-doctype-but-got-start-tag +(1,38): unexpected-EOF-after-solidus-in-tag +(1,38): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script </script " +| <body> + +#data +<script><!--<script </script </script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script </script " +| <body> + +#data +<script><!--<script - +#errors +(1,8): expected-doctype-but-got-start-tag +(1,21): eof-in-script-in-script +(1,21): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script -" +| <body> + +#data +<script><!--<script -a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,22): eof-in-script-in-script +(1,22): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script -a" +| <body> + +#data +<script><!--<script -- +#errors +(1,8): expected-doctype-but-got-start-tag +(1,22): eof-in-script-in-script +(1,22): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script --" +| <body> + +#data +<script><!--<script --a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,23): eof-in-script-in-script +(1,23): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script --a" +| <body> + +#data +<script><!--<script --> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,23): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script -->" +| <body> + +#data +<script><!--<script -->< +#errors +(1,8): expected-doctype-but-got-start-tag +(1,24): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script --><" +| <body> + +#data +<script><!--<script --></ +#errors +(1,8): expected-doctype-but-got-start-tag +(1,25): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script --></" +| <body> + +#data +<script><!--<script --></script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,31): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script --></script" +| <body> + +#data +<script><!--<script --></script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,32): expected-attribute-name-but-got-eof +(1,32): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script -->" +| <body> + +#data +<script><!--<script --></script/ +#errors +(1,8): expected-doctype-but-got-start-tag +(1,32): unexpected-EOF-after-solidus-in-tag +(1,32): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script -->" +| <body> + +#data +<script><!--<script --></script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script -->" +| <body> + +#data +<script><!--<script><\/script>--></script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script><\/script>-->" +| <body> + +#data +<script><!--<script></scr'+'ipt>--></script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script></scr'+'ipt>-->" +| <body> + +#data +<script><!--<script></script><script></script></script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>" +| <body> + +#data +<script><!--<script></script><script></script>--><!--</script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>--><!--" +| <body> + +#data +<script><!--<script></script><script></script>-- ></script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>-- >" +| <body> + +#data +<script><!--<script></script><script></script>- -></script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>- ->" +| <body> + +#data +<script><!--<script></script><script></script>- - ></script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>- - >" +| <body> + +#data +<script><!--<script></script><script></script>-></script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>->" +| <body> + +#data +<script><!--<script>--!></script>X +#errors +(1,8): expected-doctype-but-got-start-tag +(1,34): expected-named-closing-tag-but-got-eof +(1,34): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script>--!></script>X" +| <body> + +#data +<script><!--<scr'+'ipt></script>--></script> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,44): unexpected-end-tag +#document +| <html> +| <head> +| <script> +| "<!--<scr'+'ipt>" +| <body> +| "-->" + +#data +<script><!--<script></scr'+'ipt></script>X +#errors +(1,8): expected-doctype-but-got-start-tag +(1,42): expected-named-closing-tag-but-got-eof +(1,42): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script></scr'+'ipt></script>X" +| <body> + +#data +<style><!--<style></style>--></style> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,37): unexpected-end-tag +#document +| <html> +| <head> +| <style> +| "<!--<style>" +| <body> +| "-->" + +#data +<style><!--</style>X +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <style> +| "<!--" +| <body> +| "X" + +#data +<style><!--...</style>...--></style> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,36): unexpected-end-tag +#document +| <html> +| <head> +| <style> +| "<!--..." +| <body> +| "...-->" + +#data +<style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <style> +| "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>" +| <body> +| "X" + +#data +<style><!--...<style><!--...--!></style>--></style> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,51): unexpected-end-tag +#document +| <html> +| <head> +| <style> +| "<!--...<style><!--...--!>" +| <body> +| "-->" + +#data +<style><!--...</style><!-- --><style>@import ...</style> +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <style> +| "<!--..." +| <!-- --> +| <style> +| "@import ..." +| <body> + +#data +<style>...<style><!--...</style><!-- --></style> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,48): unexpected-end-tag +#document +| <html> +| <head> +| <style> +| "...<style><!--..." +| <!-- --> +| <body> + +#data +<style>...<!--[if IE]><style>...</style>X +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <style> +| "...<!--[if IE]><style>..." +| <body> +| "X" + +#data +<title><!--<title></title>--></title> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,37): unexpected-end-tag +#document +| <html> +| <head> +| <title> +| "<!--<title>" +| <body> +| "-->" + +#data +<title></title></title> +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <title> +| "</title>" +| <body> + +#data +<title>foo/title><link></head><body>X +#errors +(1,7): expected-doctype-but-got-start-tag +(1,37): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <title> +| "foo/title><link></head><body>X" +| <body> + +#data +<noscript><!--<noscript></noscript>--></noscript> +#errors +(1,10): expected-doctype-but-got-start-tag +(1,49): unexpected-end-tag +#document +| <html> +| <head> +| <noscript> +| "<!--<noscript>" +| <body> +| "-->" + +#data +<noscript><!--</noscript>X<noscript>--></noscript> +#errors +(1,10): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <noscript> +| "<!--" +| <body> +| "X" +| <noscript> +| "-->" + +#data +<noscript><iframe></noscript>X +#errors +(1,10): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <noscript> +| "<iframe>" +| <body> +| "X" + +#data +<noframes><!--<noframes></noframes>--></noframes> +#errors +(1,10): expected-doctype-but-got-start-tag +(1,49): unexpected-end-tag +#document +| <html> +| <head> +| <noframes> +| "<!--<noframes>" +| <body> +| "-->" + +#data +<noframes><body><script><!--...</script></body></noframes></html> +#errors +(1,10): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <noframes> +| "<body><script><!--...</script></body>" +| <body> + +#data +<textarea><!--<textarea></textarea>--></textarea> +#errors +(1,10): expected-doctype-but-got-start-tag +(1,49): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <textarea> +| "<!--<textarea>" +| "-->" + +#data +<textarea></textarea></textarea> +#errors +(1,10): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <textarea> +| "</textarea>" + +#data +<iframe><!--<iframe></iframe>--></iframe> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,41): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <iframe> +| "<!--<iframe>" +| "-->" + +#data +<iframe>...<!--X->...<!--/X->...</iframe> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <iframe> +| "...<!--X->...<!--/X->..." + +#data +<xmp><!--<xmp></xmp>--></xmp> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,29): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <xmp> +| "<!--<xmp>" +| "-->" + +#data +<noembed><!--<noembed></noembed>--></noembed> +#errors +(1,9): expected-doctype-but-got-start-tag +(1,45): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <noembed> +| "<!--<noembed>" +| "-->" + +#data +<!doctype html><table> + +#errors +(2,0): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| " +" + +#data +<!doctype html><table><td><span><font></span><span> +#errors +(1,26): unexpected-cell-in-table-body +(1,45): unexpected-end-tag +(1,51): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <span> +| <font> +| <font> +| <span> + +#data +<!doctype html><form><table></form><form></table></form> +#errors +(1,35): unexpected-end-tag-implies-table-voodoo +(1,35): unexpected-end-tag +(1,41): unexpected-form-in-table +(1,56): unexpected-end-tag +(1,56): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <form> +| <table> +| <form> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests17.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests17.dat new file mode 100644 index 0000000000..37a7be4187 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests17.dat @@ -0,0 +1,180 @@ +#data +<!doctype html><table><tbody><select><tr> +#errors +(1,37): unexpected-start-tag-implies-table-voodoo +(1,41): unexpected-table-element-start-tag-in-select-in-table +(1,41): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <table> +| <tbody> +| <tr> + +#data +<!doctype html><table><tr><select><td> +#errors +(1,34): unexpected-start-tag-implies-table-voodoo +(1,38): unexpected-table-element-start-tag-in-select-in-table +(1,38): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <table> +| <tbody> +| <tr> +| <td> + +#data +<!doctype html><table><tr><td><select><td> +#errors +(1,42): unexpected-table-element-start-tag-in-select-in-table +(1,42): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <select> +| <td> + +#data +<!doctype html><table><tr><th><select><td> +#errors +(1,42): unexpected-table-element-start-tag-in-select-in-table +(1,42): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <th> +| <select> +| <td> + +#data +<!doctype html><table><caption><select><tr> +#errors +(1,43): unexpected-table-element-start-tag-in-select-in-table +(1,43): XXX-undefined-error +(1,43): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <select> +| <tbody> +| <tr> + +#data +<!doctype html><select><tr> +#errors +(1,27): unexpected-start-tag-in-select +(1,27): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!doctype html><select><td> +#errors +(1,27): unexpected-start-tag-in-select +(1,27): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!doctype html><select><th> +#errors +(1,27): unexpected-start-tag-in-select +(1,27): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!doctype html><select><tbody> +#errors +(1,30): unexpected-start-tag-in-select +(1,30): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!doctype html><select><thead> +#errors +(1,30): unexpected-start-tag-in-select +(1,30): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!doctype html><select><tfoot> +#errors +(1,30): unexpected-start-tag-in-select +(1,30): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!doctype html><select><caption> +#errors +(1,32): unexpected-start-tag-in-select +(1,32): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!doctype html><table><tr></table>a +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| "a" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests18.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests18.dat new file mode 100644 index 0000000000..926bccb387 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests18.dat @@ -0,0 +1,322 @@ +#data +<!doctype html><plaintext></plaintext> +#errors +(1,38): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <plaintext> +| "</plaintext>" + +#data +<!doctype html><table><plaintext></plaintext> +#errors +(1,33): foster-parenting-start-tag +(1,34): foster-parenting-character +(1,35): foster-parenting-character +(1,36): foster-parenting-character +(1,37): foster-parenting-character +(1,38): foster-parenting-character +(1,39): foster-parenting-character +(1,40): foster-parenting-character +(1,41): foster-parenting-character +(1,42): foster-parenting-character +(1,43): foster-parenting-character +(1,44): foster-parenting-character +(1,45): foster-parenting-character +(1,45): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <plaintext> +| "</plaintext>" +| <table> + +#data +<!doctype html><table><tbody><plaintext></plaintext> +#errors +(1,40): foster-parenting-start-tag +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,52): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <plaintext> +| "</plaintext>" +| <table> +| <tbody> + +#data +<!doctype html><table><tbody><tr><plaintext></plaintext> +#errors +(1,44): foster-parenting-start-tag +(1,45): foster-parenting-character +(1,46): foster-parenting-character +(1,47): foster-parenting-character +(1,48): foster-parenting-character +(1,49): foster-parenting-character +(1,50): foster-parenting-character +(1,51): foster-parenting-character +(1,52): foster-parenting-character +(1,53): foster-parenting-character +(1,54): foster-parenting-character +(1,55): foster-parenting-character +(1,56): foster-parenting-character +(1,56): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <plaintext> +| "</plaintext>" +| <table> +| <tbody> +| <tr> + +#data +<!doctype html><table><td><plaintext></plaintext> +#errors +(1,26): unexpected-cell-in-table-body +(1,49): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <plaintext> +| "</plaintext>" + +#data +<!doctype html><table><caption><plaintext></plaintext> +#errors +(1,54): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <plaintext> +| "</plaintext>" + +#data +<!doctype html><table><tr><style></script></style>abc +#errors +(1,51): foster-parenting-character +(1,52): foster-parenting-character +(1,53): foster-parenting-character +(1,53): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "abc" +| <table> +| <tbody> +| <tr> +| <style> +| "</script>" + +#data +<!doctype html><table><tr><script></style></script>abc +#errors +(1,52): foster-parenting-character +(1,53): foster-parenting-character +(1,54): foster-parenting-character +(1,54): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "abc" +| <table> +| <tbody> +| <tr> +| <script> +| "</style>" + +#data +<!doctype html><table><caption><style></script></style>abc +#errors +(1,58): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <style> +| "</script>" +| "abc" + +#data +<!doctype html><table><td><style></script></style>abc +#errors +(1,26): unexpected-cell-in-table-body +(1,53): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <style> +| "</script>" +| "abc" + +#data +<!doctype html><select><script></style></script>abc +#errors +(1,51): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <script> +| "</style>" +| "abc" + +#data +<!doctype html><table><select><script></style></script>abc +#errors +(1,30): unexpected-start-tag-implies-table-voodoo +(1,58): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <script> +| "</style>" +| "abc" +| <table> + +#data +<!doctype html><table><tr><select><script></style></script>abc +#errors +(1,34): unexpected-start-tag-implies-table-voodoo +(1,62): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <script> +| "</style>" +| "abc" +| <table> +| <tbody> +| <tr> + +#data +<!doctype html><frameset></frameset><noframes>abc +#errors +(1,49): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <noframes> +| "abc" + +#data +<!doctype html><frameset></frameset><noframes>abc</noframes><!--abc--> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <noframes> +| "abc" +| <!-- abc --> + +#data +<!doctype html><frameset></frameset></html><noframes>abc +#errors +(1,56): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <noframes> +| "abc" + +#data +<!doctype html><frameset></frameset></html><noframes>abc</noframes><!--abc--> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <noframes> +| "abc" +| <!-- abc --> + +#data +<!doctype html><table><tr></tbody><tfoot> +#errors +(1,41): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <tfoot> + +#data +<!doctype html><table><td><svg></svg>abc<td> +#errors +(1,26): unexpected-cell-in-table-body +(1,44): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <svg svg> +| "abc" +| <td> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests19.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests19.dat new file mode 100644 index 0000000000..a1897774df --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests19.dat @@ -0,0 +1,1454 @@ +#data +<!doctype html><math><mn DefinitionUrl="foo"> +#errors +(1,45): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mn> +| definitionURL="foo" + +#data +<!doctype html><html></p><!--foo--> +#errors +(1,25): end-tag-after-implied-root +#document +| <!DOCTYPE html> +| <html> +| <!-- foo --> +| <head> +| <body> + +#data +<!doctype html><head></head></p><!--foo--> +#errors +(1,32): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <!-- foo --> +| <body> + +#data +<!doctype html><body><p><pre> +#errors +(1,29): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <pre> + +#data +<!doctype html><body><p><listing> +#errors +(1,33): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <listing> + +#data +<!doctype html><p><plaintext> +#errors +(1,29): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <plaintext> + +#data +<!doctype html><p><h1> +#errors +(1,22): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <h1> + +#data +<!doctype html><isindex type="hidden"> +#errors +(1,38): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <isindex> +| type="hidden" + +#data +<!doctype html><ruby><p><rp> +#errors +(1,28): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <ruby> +| <p> +| <rp> + +#data +<!doctype html><ruby><div><span><rp> +#errors +(1,36): XXX-undefined-error +(1,36): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <ruby> +| <div> +| <span> +| <rp> + +#data +<!doctype html><ruby><div><p><rp> +#errors +(1,33): XXX-undefined-error +(1,33): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <ruby> +| <div> +| <p> +| <rp> + +#data +<!doctype html><ruby><p><rt> +#errors +(1,28): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <ruby> +| <p> +| <rt> + +#data +<!doctype html><ruby><div><span><rt> +#errors +(1,36): XXX-undefined-error +(1,36): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <ruby> +| <div> +| <span> +| <rt> + +#data +<!doctype html><ruby><div><p><rt> +#errors +(1,33): XXX-undefined-error +(1,33): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <ruby> +| <div> +| <p> +| <rt> + +#data +<html><ruby>a<rb>b<rt></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rb> +| "b" +| <rt> + +#data +<html><ruby>a<rp>b<rt></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rp> +| "b" +| <rt> + +#data +<html><ruby>a<rt>b<rt></ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rt> +| "b" +| <rt> + +#data +<html><ruby>a<rtc>b<rt>c<rb>d</ruby></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ruby> +| "a" +| <rtc> +| "b" +| <rt> +| "c" +| <rb> +| "d" + +#data +<!doctype html><math/><foo> +#errors +(1,27): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <foo> + +#data +<!doctype html><svg/><foo> +#errors +(1,26): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <foo> + +#data +<!doctype html><div></body><!--foo--> +#errors +(1,27): expected-one-end-tag-but-got-another +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <div> +| <!-- foo --> + +#data +<!doctype html><h1><div><h3><span></h1>foo +#errors +(1,39): end-tag-too-early +(1,42): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <h1> +| <div> +| <h3> +| <span> +| "foo" + +#data +<!doctype html><p></h3>foo +#errors +(1,23): end-tag-too-early +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| "foo" + +#data +<!doctype html><h3><li>abc</h2>foo +#errors +(1,31): end-tag-too-early +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <h3> +| <li> +| "abc" +| "foo" + +#data +<!doctype html><table>abc<!--foo--> +#errors +(1,23): foster-parenting-character +(1,24): foster-parenting-character +(1,25): foster-parenting-character +(1,35): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "abc" +| <table> +| <!-- foo --> + +#data +<!doctype html><table> <!--foo--> +#errors +(1,34): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| " " +| <!-- foo --> + +#data +<!doctype html><table> b <!--foo--> +#errors +(1,23): foster-parenting-character +(1,24): foster-parenting-character +(1,25): foster-parenting-character +(1,35): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| " b " +| <table> +| <!-- foo --> + +#data +<!doctype html><select><option><option> +#errors +(1,39): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <option> +| <option> + +#data +<!doctype html><select><option></optgroup> +#errors +(1,42): unexpected-end-tag-in-select +(1,42): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <option> + +#data +<!doctype html><select><option></optgroup> +#errors +(1,42): unexpected-end-tag-in-select +(1,42): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <option> + +#data +<!doctype html><dd><optgroup><dd> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <dd> +| <optgroup> +| <dd> + +#data +<!doctype html><p><math><mi><p><h1> +#errors +(1,35): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <math math> +| <math mi> +| <p> +| <h1> + +#data +<!doctype html><p><math><mo><p><h1> +#errors +(1,35): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <math math> +| <math mo> +| <p> +| <h1> + +#data +<!doctype html><p><math><mn><p><h1> +#errors +(1,35): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <math math> +| <math mn> +| <p> +| <h1> + +#data +<!doctype html><p><math><ms><p><h1> +#errors +(1,35): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <math math> +| <math ms> +| <p> +| <h1> + +#data +<!doctype html><p><math><mtext><p><h1> +#errors +(1,38): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <math math> +| <math mtext> +| <p> +| <h1> + +#data +<!doctype html><frameset></noframes> +#errors +(1,36): unexpected-end-tag-in-frameset +(1,36): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!doctype html><html c=d><body></html><html a=b> +#errors +(1,48): non-html-root +#document +| <!DOCTYPE html> +| <html> +| a="b" +| c="d" +| <head> +| <body> + +#data +<!doctype html><html c=d><frameset></frameset></html><html a=b> +#errors +(1,63): non-html-root +#document +| <!DOCTYPE html> +| <html> +| a="b" +| c="d" +| <head> +| <frameset> + +#data +<!doctype html><html><frameset></frameset></html><!--foo--> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <!-- foo --> + +#data +<!doctype html><html><frameset></frameset></html> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| " " + +#data +<!doctype html><html><frameset></frameset></html>abc +#errors +(1,50): expected-eof-but-got-char +(1,51): expected-eof-but-got-char +(1,52): expected-eof-but-got-char +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!doctype html><html><frameset></frameset></html><p> +#errors +(1,52): expected-eof-but-got-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!doctype html><html><frameset></frameset></html></p> +#errors +(1,53): expected-eof-but-got-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<html><frameset></frameset></html><!doctype html> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,49): unexpected-doctype +#document +| <html> +| <head> +| <frameset> + +#data +<!doctype html><body><frameset> +#errors +(1,31): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> + +#data +<!doctype html><p><frameset><frame> +#errors +(1,28): unexpected-start-tag +(1,35): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <frame> + +#data +<!doctype html><p>a<frameset> +#errors +(1,29): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| "a" + +#data +<!doctype html><p> <frameset><frame> +#errors +(1,29): unexpected-start-tag +(1,36): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <frame> + +#data +<!doctype html><pre><frameset> +#errors +(1,30): unexpected-start-tag +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <pre> + +#data +<!doctype html><listing><frameset> +#errors +(1,34): unexpected-start-tag +(1,34): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <listing> + +#data +<!doctype html><li><frameset> +#errors +(1,29): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <li> + +#data +<!doctype html><dd><frameset> +#errors +(1,29): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <dd> + +#data +<!doctype html><dt><frameset> +#errors +(1,29): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <dt> + +#data +<!doctype html><button><frameset> +#errors +(1,33): unexpected-start-tag +(1,33): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <button> + +#data +<!doctype html><applet><frameset> +#errors +(1,33): unexpected-start-tag +(1,33): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <applet> + +#data +<!doctype html><marquee><frameset> +#errors +(1,34): unexpected-start-tag +(1,34): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <marquee> + +#data +<!doctype html><object><frameset> +#errors +(1,33): unexpected-start-tag +(1,33): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <object> + +#data +<!doctype html><table><frameset> +#errors +(1,32): unexpected-start-tag-implies-table-voodoo +(1,32): unexpected-start-tag +(1,32): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> + +#data +<!doctype html><area><frameset> +#errors +(1,31): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <area> + +#data +<!doctype html><basefont><frameset> +#errors +(1,35): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <basefont> +| <frameset> + +#data +<!doctype html><bgsound><frameset> +#errors +(1,34): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <bgsound> +| <frameset> + +#data +<!doctype html><br><frameset> +#errors +(1,29): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <br> + +#data +<!doctype html><embed><frameset> +#errors +(1,32): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <embed> + +#data +<!doctype html><img><frameset> +#errors +(1,30): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <img> + +#data +<!doctype html><input><frameset> +#errors +(1,32): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <input> + +#data +<!doctype html><keygen><frameset> +#errors +(1,33): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <keygen> + +#data +<!doctype html><wbr><frameset> +#errors +(1,30): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <wbr> + +#data +<!doctype html><hr><frameset> +#errors +(1,29): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <hr> + +#data +<!doctype html><textarea></textarea><frameset> +#errors +(1,46): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <textarea> + +#data +<!doctype html><xmp></xmp><frameset> +#errors +(1,36): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <xmp> + +#data +<!doctype html><iframe></iframe><frameset> +#errors +(1,42): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <iframe> + +#data +<!doctype html><select></select><frameset> +#errors +(1,42): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!doctype html><svg></svg><frameset><frame> +#errors +(1,36): unexpected-start-tag +(1,43): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <frame> + +#data +<!doctype html><math></math><frameset><frame> +#errors +(1,38): unexpected-start-tag +(1,45): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <frame> + +#data +<!doctype html><svg><foreignObject><div> <frameset><frame> +#errors +(1,51): unexpected-start-tag +(1,58): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <frame> + +#data +<!doctype html><svg>a</svg><frameset><frame> +#errors +(1,37): unexpected-start-tag +(1,44): unexpected-start-tag-ignored +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| "a" + +#data +<!doctype html><svg> </svg><frameset><frame> +#errors +(1,37): unexpected-start-tag +(1,44): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <frame> + +#data +<html>aaa<frameset></frameset> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,19): unexpected-start-tag +(1,30): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| "aaa" + +#data +<html> a <frameset></frameset> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,19): unexpected-start-tag +(1,30): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| "a " + +#data +<!doctype html><div><frameset> +#errors +(1,30): unexpected-start-tag +(1,30): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!doctype html><div><body><frameset> +#errors +(1,26): unexpected-start-tag +(1,36): unexpected-start-tag +(1,36): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <div> + +#data +<!doctype html><p><math></p>a +#errors +(1,28): unexpected-end-tag +(1,28): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <math math> +| "a" + +#data +<!doctype html><p><math><mn><span></p>a +#errors +(1,38): unexpected-end-tag +(1,39): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <math math> +| <math mn> +| <span> +| <p> +| "a" + +#data +<!doctype html><math></html> +#errors +(1,28): unexpected-end-tag +(1,28): expected-one-end-tag-but-got-another +(1,28): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> + +#data +<!doctype html><meta charset="ascii"> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <meta> +| charset="ascii" +| <body> + +#data +<!doctype html><meta http-equiv="content-type" content="text/html;charset=ascii"> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <meta> +| content="text/html;charset=ascii" +| http-equiv="content-type" +| <body> + +#data +<!doctype html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset="utf8"> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <!-- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa --> +| <meta> +| charset="utf8" +| <body> + +#data +<!doctype html><html a=b><head></head><html c=d> +#errors +(1,48): non-html-root +#document +| <!DOCTYPE html> +| <html> +| a="b" +| c="d" +| <head> +| <body> + +#data +<!doctype html><image/> +#errors +(1,23): image-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <img> + +#data +<!doctype html>a<i>b<table>c<b>d</i>e</b>f +#errors +(1,28): foster-parenting-character +(1,31): foster-parenting-start-tag +(1,32): foster-parenting-character +(1,36): foster-parenting-end-tag +(1,36): adoption-agency-1.3 +(1,37): foster-parenting-character +(1,41): foster-parenting-end-tag +(1,42): foster-parenting-character +(1,42): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "a" +| <i> +| "bc" +| <b> +| "de" +| "f" +| <table> + +#data +<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f +#errors +(1,25): foster-parenting-start-tag +(1,26): foster-parenting-character +(1,29): foster-parenting-start-tag +(1,30): foster-parenting-character +(1,35): foster-parenting-start-tag +(1,36): foster-parenting-character +(1,39): foster-parenting-start-tag +(1,40): foster-parenting-character +(1,44): foster-parenting-end-tag +(1,44): adoption-agency-1.3 +(1,44): adoption-agency-1.3 +(1,45): foster-parenting-character +(1,49): foster-parenting-end-tag +(1,49): adoption-agency-1.3 +(1,49): adoption-agency-1.3 +(1,50): foster-parenting-character +(1,50): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <i> +| "a" +| <b> +| "b" +| <b> +| <div> +| <b> +| <i> +| "c" +| <a> +| "d" +| <a> +| "e" +| <a> +| "f" +| <table> + +#data +<!doctype html><i>a<b>b<div>c<a>d</i>e</b>f +#errors +(1,37): adoption-agency-1.3 +(1,37): adoption-agency-1.3 +(1,42): adoption-agency-1.3 +(1,42): adoption-agency-1.3 +(1,43): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <i> +| "a" +| <b> +| "b" +| <b> +| <div> +| <b> +| <i> +| "c" +| <a> +| "d" +| <a> +| "e" +| <a> +| "f" + +#data +<!doctype html><table><i>a<b>b<div>c</i> +#errors +(1,25): foster-parenting-start-tag +(1,26): foster-parenting-character +(1,29): foster-parenting-start-tag +(1,30): foster-parenting-character +(1,35): foster-parenting-start-tag +(1,36): foster-parenting-character +(1,40): foster-parenting-end-tag +(1,40): adoption-agency-1.3 +(1,40): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <i> +| "a" +| <b> +| "b" +| <b> +| <div> +| <i> +| "c" +| <table> + +#data +<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f +#errors +(1,25): foster-parenting-start-tag +(1,26): foster-parenting-character +(1,29): foster-parenting-start-tag +(1,30): foster-parenting-character +(1,35): foster-parenting-start-tag +(1,36): foster-parenting-character +(1,39): foster-parenting-start-tag +(1,40): foster-parenting-character +(1,44): foster-parenting-end-tag +(1,44): adoption-agency-1.3 +(1,44): adoption-agency-1.3 +(1,45): foster-parenting-character +(1,49): foster-parenting-end-tag +(1,44): adoption-agency-1.3 +(1,44): adoption-agency-1.3 +(1,50): foster-parenting-character +(1,50): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <i> +| "a" +| <b> +| "b" +| <b> +| <div> +| <b> +| <i> +| "c" +| <a> +| "d" +| <a> +| "e" +| <a> +| "f" +| <table> + +#data +<!doctype html><table><i>a<div>b<tr>c<b>d</i>e +#errors +(1,25): foster-parenting-start-tag +(1,26): foster-parenting-character +(1,31): foster-parenting-start-tag +(1,32): foster-parenting-character +(1,37): foster-parenting-character +(1,40): foster-parenting-start-tag +(1,41): foster-parenting-character +(1,45): foster-parenting-end-tag +(1,45): adoption-agency-1.3 +(1,46): foster-parenting-character +(1,46): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <i> +| "a" +| <div> +| "b" +| <i> +| "c" +| <b> +| "d" +| <b> +| "e" +| <table> +| <tbody> +| <tr> + +#data +<!doctype html><table><td><table><i>a<div>b<b>c</i>d +#errors +(1,26): unexpected-cell-in-table-body +(1,36): foster-parenting-start-tag +(1,37): foster-parenting-character +(1,42): foster-parenting-start-tag +(1,43): foster-parenting-character +(1,46): foster-parenting-start-tag +(1,47): foster-parenting-character +(1,51): foster-parenting-end-tag +(1,51): adoption-agency-1.3 +(1,51): adoption-agency-1.3 +(1,52): foster-parenting-character +(1,52): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <i> +| "a" +| <div> +| <i> +| "b" +| <b> +| "c" +| <b> +| "d" +| <table> + +#data +<!doctype html><body><bgsound> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <bgsound> + +#data +<!doctype html><body><basefont> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <basefont> + +#data +<!doctype html><a><b></a><basefont> +#errors +(1,25): adoption-agency-1.3 +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <a> +| <b> +| <basefont> + +#data +<!doctype html><a><b></a><bgsound> +#errors +(1,25): adoption-agency-1.3 +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <a> +| <b> +| <bgsound> + +#data +<!doctype html><figcaption><article></figcaption>a +#errors +(1,49): end-tag-too-early +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <figcaption> +| <article> +| "a" + +#data +<!doctype html><summary><article></summary>a +#errors +(1,43): end-tag-too-early +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <summary> +| <article> +| "a" + +#data +<!doctype html><p><a><plaintext>b +#errors +(1,32): unexpected-end-tag +(1,33): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <a> +| <plaintext> +| <a> +| "b" + +#data +<!DOCTYPE html><div>a<a></div>b<p>c</p>d +#errors +(1,30): end-tag-too-early +(1,40): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <div> +| "a" +| <a> +| <a> +| "b" +| <p> +| "c" +| "d" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests2.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests2.dat new file mode 100644 index 0000000000..b44fec4d76 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests2.dat @@ -0,0 +1,821 @@ +#data +<!DOCTYPE html>Test +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "Test" + +#data +<textarea>test</div>test +#errors +(1,10): expected-doctype-but-got-start-tag +(1,24): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <textarea> +| "test</div>test" + +#data +<table><td> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,11): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> + +#data +<table><td>test</tbody></table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| "test" + +#data +<frame>test +#errors +(1,7): expected-doctype-but-got-start-tag +(1,7): unexpected-start-tag-ignored +#document +| <html> +| <head> +| <body> +| "test" + +#data +<!DOCTYPE html><frameset>test +#errors +(1,29): unexpected-char-in-frameset +(1,29): unexpected-char-in-frameset +(1,29): unexpected-char-in-frameset +(1,29): unexpected-char-in-frameset +(1,29): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!DOCTYPE html><frameset> te st +#errors +(1,29): unexpected-char-in-frameset +(1,29): unexpected-char-in-frameset +(1,29): unexpected-char-in-frameset +(1,29): unexpected-char-in-frameset +(1,29): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| " " + +#data +<!DOCTYPE html><frameset></frameset> te st +#errors +(1,29): unexpected-char-after-frameset +(1,29): unexpected-char-after-frameset +(1,29): unexpected-char-after-frameset +(1,29): unexpected-char-after-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| " " + +#data +<!DOCTYPE html><frameset><!DOCTYPE html> +#errors +(1,40): unexpected-doctype +(1,40): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!DOCTYPE html><font><p><b>test</font> +#errors +(1,38): adoption-agency-1.3 +(1,38): adoption-agency-1.3 +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <font> +| <p> +| <font> +| <b> +| "test" + +#data +<!DOCTYPE html><dt><div><dd> +#errors +(1,28): end-tag-too-early +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <dt> +| <div> +| <dd> + +#data +<script></x +#errors +(1,8): expected-doctype-but-got-start-tag +(1,11): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</x" +| <body> + +#data +<table><plaintext><td> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,18): unexpected-start-tag-implies-table-voodoo +(1,22): foster-parenting-character-in-table +(1,22): foster-parenting-character-in-table +(1,22): foster-parenting-character-in-table +(1,22): foster-parenting-character-in-table +(1,22): eof-in-table +#document +| <html> +| <head> +| <body> +| <plaintext> +| "<td>" +| <table> + +#data +<plaintext></plaintext> +#errors +(1,11): expected-doctype-but-got-start-tag +(1,23): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <plaintext> +| "</plaintext>" + +#data +<!DOCTYPE html><table><tr>TEST +#errors +(1,30): foster-parenting-character-in-table +(1,30): foster-parenting-character-in-table +(1,30): foster-parenting-character-in-table +(1,30): foster-parenting-character-in-table +(1,30): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "TEST" +| <table> +| <tbody> +| <tr> + +#data +<!DOCTYPE html><body t1=1><body t2=2><body t3=3 t4=4> +#errors +(1,37): unexpected-start-tag +(1,53): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| t1="1" +| t2="2" +| t3="3" +| t4="4" + +#data +</b test +#errors +(1,8): eof-in-attribute-name +(1,8): expected-doctype-but-got-eof +#new-errors +(1:9) eof-in-tag +#document +| <html> +| <head> +| <body> + +#data +<!DOCTYPE html></b test<b &=&>X +#errors +(1,24): invalid-character-in-attribute-name +(1,32): named-entity-without-semicolon +(1,33): attributes-in-end-tag +(1,33): unexpected-end-tag-before-html +#new-errors +(1:24) unexpected-character-in-attribute-name +(1:33) missing-semicolon-after-character-reference +(1:33) end-tag-with-attributes +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "X" + +#data +<!doctypehtml><scrIPt type=text/x-foobar;baz>X</SCRipt +#errors +(1,9): need-space-after-doctype +(1,54): expected-named-closing-tag-but-got-eof +#new-errors +(1:10) missing-whitespace-before-doctype-name +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| type="text/x-foobar;baz" +| "X</SCRipt" +| <body> + +#data +& +#errors +(1,1): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "&" + +#data +&# +#errors +(1,2): expected-numeric-entity +(1,2): expected-doctype-but-got-chars +#new-errors +(1:3) absence-of-digits-in-numeric-character-reference +#document +| <html> +| <head> +| <body> +| "&#" + +#data +&#X +#errors +(1,3): expected-numeric-entity +(1,3): expected-doctype-but-got-chars +#new-errors +(1:4) absence-of-digits-in-numeric-character-reference +#document +| <html> +| <head> +| <body> +| "&#X" + +#data +&#x +#errors +(1,3): expected-numeric-entity +(1,3): expected-doctype-but-got-chars +#new-errors +(1:4) absence-of-digits-in-numeric-character-reference +#document +| <html> +| <head> +| <body> +| "&#x" + +#data +- +#errors +(1,4): numeric-entity-without-semicolon +(1,4): expected-doctype-but-got-chars +#new-errors +(1:5) missing-semicolon-after-character-reference +#document +| <html> +| <head> +| <body> +| "-" + +#data +&x-test +#errors +(1,2): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "&x-test" + +#data +<!doctypehtml><p><li> +#errors +(1,9): need-space-after-doctype +#new-errors +(1:10) missing-whitespace-before-doctype-name +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <li> + +#data +<!doctypehtml><p><dt> +#errors +(1,9): need-space-after-doctype +#new-errors +(1:10) missing-whitespace-before-doctype-name +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <dt> + +#data +<!doctypehtml><p><dd> +#errors +(1,9): need-space-after-doctype +#new-errors +(1:10) missing-whitespace-before-doctype-name +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <dd> + +#data +<!doctypehtml><p><form> +#errors +(1,9): need-space-after-doctype +(1,23): expected-closing-tag-but-got-eof +#new-errors +(1:10) missing-whitespace-before-doctype-name +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <form> + +#data +<!DOCTYPE html><p></P>X +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| "X" + +#data +& +#errors +(1,4): named-entity-without-semicolon +(1,4): expected-doctype-but-got-chars +#new-errors +(1:5) missing-semicolon-after-character-reference +#document +| <html> +| <head> +| <body> +| "&" + +#data +&AMp; +#errors +(1,3): expected-named-entity +(1,3): expected-doctype-but-got-chars +#new-errors +(1:5) unknown-named-character-reference +#document +| <html> +| <head> +| <body> +| "&AMp;" + +#data +<!DOCTYPE html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY> +#errors +(1,110): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly> + +#data +<!DOCTYPE html>X</body>X +#errors +(1,24): unexpected-char-after-body +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "XX" + +#data +<!DOCTYPE html><!-- X +#errors +(1,21): eof-in-comment +#new-errors +(1:22) eof-in-comment +#document +| <!DOCTYPE html> +| <!-- X --> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE html><table><caption>test TEST</caption><td>test +#errors +(1,54): unexpected-cell-in-table-body +(1,58): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| "test TEST" +| <tbody> +| <tr> +| <td> +| "test" + +#data +<!DOCTYPE html><select><option><optgroup> +#errors +(1,41): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <option> +| <optgroup> + +#data +<!DOCTYPE html><select><optgroup><option></optgroup><option><select><option> +#errors +(1,68): unexpected-select-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <optgroup> +| <option> +| <option> +| <option> + +#data +<!DOCTYPE html><select><optgroup><option><optgroup> +#errors +(1,51): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <optgroup> +| <option> +| <optgroup> + +#data +<!DOCTYPE html><datalist><option>foo</datalist>bar +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <datalist> +| <option> +| "foo" +| "bar" + +#data +<!DOCTYPE html><font><input><input></font> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <font> +| <input> +| <input> + +#data +<!DOCTYPE html><!-- XXX - XXX --> +#errors +#document +| <!DOCTYPE html> +| <!-- XXX - XXX --> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE html><!-- XXX - XXX +#errors +(1,29): eof-in-comment +#new-errors +(1:30) eof-in-comment +#document +| <!DOCTYPE html> +| <!-- XXX - XXX --> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE html><!-- XXX - XXX - XXX --> +#errors +#document +| <!DOCTYPE html> +| <!-- XXX - XXX - XXX --> +| <html> +| <head> +| <body> + +#data +test +test +#errors +(2,4): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "test +test" + +#data +<!DOCTYPE html><body><title>test</body></title> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <title> +| "test</body>" + +#data +<!DOCTYPE html><body><title>X</title><meta name=z><link rel=foo><style> +x { content:"</style" } </style> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <title> +| "X" +| <meta> +| name="z" +| <link> +| rel="foo" +| <style> +| " +x { content:"</style" } " + +#data +<!DOCTYPE html><select><optgroup></optgroup></select> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <optgroup> + +#data + + +#errors +(2,1): expected-doctype-but-got-eof +#document +| <html> +| <head> +| <body> + +#data +<!DOCTYPE html> <html> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE html><script> +</script> <title>x</title> </head> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| " +" +| " " +| <title> +| "x" +| " " +| <body> + +#data +<!DOCTYPE html><html><body><html id=x> +#errors +(1,38): non-html-root +#document +| <!DOCTYPE html> +| <html> +| id="x" +| <head> +| <body> + +#data +<!DOCTYPE html>X</body><html id="x"> +#errors +(1,36): non-html-root +#document +| <!DOCTYPE html> +| <html> +| id="x" +| <head> +| <body> +| "X" + +#data +<!DOCTYPE html><head><html id=x> +#errors +(1,32): non-html-root +#document +| <!DOCTYPE html> +| <html> +| id="x" +| <head> +| <body> + +#data +<!DOCTYPE html>X</html>X +#errors +(1,24): expected-eof-but-got-char +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "XX" + +#data +<!DOCTYPE html>X</html> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "X " + +#data +<!DOCTYPE html>X</html><p>X +#errors +(1,26): expected-eof-but-got-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "X" +| <p> +| "X" + +#data +<!DOCTYPE html>X<p/x/y/z> +#errors +(1,19): unexpected-character-after-solidus-in-tag +(1,21): unexpected-character-after-solidus-in-tag +(1,23): unexpected-character-after-solidus-in-tag +#new-errors +(1:20) unexpected-solidus-in-tag +(1:22) unexpected-solidus-in-tag +(1:24) unexpected-solidus-in-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "X" +| <p> +| x="" +| y="" +| z="" + +#data +<!DOCTYPE html><!--x-- +#errors +(1,22): eof-in-comment-double-dash +#new-errors +(1:23) eof-in-comment +#document +| <!DOCTYPE html> +| <!-- x --> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE html><table><tr><td></p></table> +#errors +(1,34): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <p> + +#data +<!DOCTYPE <!DOCTYPE HTML>><!--<!--x-->--> +#errors +(1,20): expected-space-or-right-bracket-in-doctype +(1,25): unknown-doctype +(1,35): unexpected-char-in-comment +#new-errors +(1:21) invalid-character-sequence-after-doctype-name +(1:35) nested-comment +#document +| <!DOCTYPE <!doctype> +| <html> +| <head> +| <body> +| ">" +| <!-- <!--x --> +| "-->" + +#data +<!doctype html><div><form></form><div></div></div> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <div> +| <form> +| <div> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests20.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests20.dat new file mode 100644 index 0000000000..52c5acdc6e --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests20.dat @@ -0,0 +1,516 @@ +#data +<!doctype html><p><button><button> +#errors +(1,34): unexpected-start-tag-implies-end-tag +(1,34): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <button> + +#data +<!doctype html><p><button><address> +#errors +(1,35): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <address> + +#data +<!doctype html><p><button><blockquote> +#errors +(1,38): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <blockquote> + +#data +<!doctype html><p><button><menu> +#errors +(1,32): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <menu> + +#data +<!doctype html><p><button><p> +#errors +(1,29): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <p> + +#data +<!doctype html><p><button><ul> +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <ul> + +#data +<!doctype html><p><button><h1> +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <h1> + +#data +<!doctype html><p><button><h6> +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <h6> + +#data +<!doctype html><p><button><listing> +#errors +(1,35): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <listing> + +#data +<!doctype html><p><button><pre> +#errors +(1,31): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <pre> + +#data +<!doctype html><p><button><form> +#errors +(1,32): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <form> + +#data +<!doctype html><p><button><li> +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <li> + +#data +<!doctype html><p><button><dd> +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <dd> + +#data +<!doctype html><p><button><dt> +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <dt> + +#data +<!doctype html><p><button><plaintext> +#errors +(1,37): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <plaintext> + +#data +<!doctype html><p><button><table> +#errors +(1,33): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <table> + +#data +<!doctype html><p><button><hr> +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <hr> + +#data +<!doctype html><p><button><xmp> +#errors +(1,31): expected-named-closing-tag-but-got-eof +(1,31): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <xmp> + +#data +<!doctype html><p><button></p> +#errors +(1,30): unexpected-end-tag +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <p> + +#data +<!doctype html><address><button></address>a +#errors +(1,42): end-tag-too-early +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <address> +| <button> +| "a" + +#data +<!doctype html><address><button></address>a +#errors +(1,42): end-tag-too-early +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <address> +| <button> +| "a" + +#data +<p><table></p> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,14): unexpected-end-tag-implies-table-voodoo +(1,14): unexpected-end-tag +(1,14): eof-in-table +#document +| <html> +| <head> +| <body> +| <p> +| <p> +| <table> + +#data +<!doctype html><svg> +#errors +(1,20): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> + +#data +<!doctype html><p><figcaption> +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <figcaption> + +#data +<!doctype html><p><summary> +#errors +(1,27): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <summary> + +#data +<!doctype html><form><table><form> +#errors +(1,34): unexpected-form-in-table +(1,34): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <form> +| <table> + +#data +<!doctype html><table><form><form> +#errors +(1,28): unexpected-form-in-table +(1,34): unexpected-form-in-table +(1,34): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <form> + +#data +<!doctype html><table><form></table><form> +#errors +(1,28): unexpected-form-in-table +(1,42): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <form> + +#data +<!doctype html><svg><foreignObject><p> +#errors +(1,38): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg foreignObject> +| <p> + +#data +<!doctype html><svg><title>abc +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg title> +| "abc" + +#data +<option><span><option> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,22): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <option> +| <span> +| <option> + +#data +<option><option> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,16): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <option> +| <option> + +#data +<math><annotation-xml><div> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,27): unexpected-html-element-in-foreign-content +(1,27): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| <div> + +#data +<math><annotation-xml encoding="application/svg+xml"><div> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,58): unexpected-html-element-in-foreign-content +(1,58): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| encoding="application/svg+xml" +| <div> + +#data +<math><annotation-xml encoding="application/xhtml+xml"><div> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,60): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| encoding="application/xhtml+xml" +| <div> + +#data +<math><annotation-xml encoding="aPPlication/xhtmL+xMl"><div> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,60): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| encoding="aPPlication/xhtmL+xMl" +| <div> + +#data +<math><annotation-xml encoding="text/html"><div> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,48): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| encoding="text/html" +| <div> + +#data +<math><annotation-xml encoding="Text/htmL"><div> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,48): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| encoding="Text/htmL" +| <div> + +#data +<math><annotation-xml encoding=" text/html "><div> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,50): unexpected-html-element-in-foreign-content +(1,50): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| encoding=" text/html " +| <div> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests21.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests21.dat new file mode 100644 index 0000000000..d384a55564 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests21.dat @@ -0,0 +1,305 @@ +#data +<svg><![CDATA[foo]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,20): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "foo" + +#data +<math><![CDATA[foo]]> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,21): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| "foo" + +#data +<div><![CDATA[foo]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,7): expected-dashes-or-doctype +(1,20): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <!-- [CDATA[foo]] --> + +#data +<svg><![CDATA[foo +#errors +(1,5): expected-doctype-but-got-start-tag +(1,17): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "foo" + +#data +<svg><![CDATA[foo +#errors +(1,5): expected-doctype-but-got-start-tag +(1,17): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "foo" + +#data +<svg><![CDATA[ +#errors +(1,5): expected-doctype-but-got-start-tag +(1,14): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> + +#data +<svg><![CDATA[]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,17): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> + +#data +<svg><![CDATA[]] >]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,21): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "]] >" + +#data +<svg><![CDATA[]] >]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,21): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "]] >" + +#data +<svg><![CDATA[]] +#errors +(1,5): expected-doctype-but-got-start-tag +(1,16): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "]]" + +#data +<svg><![CDATA[] +#errors +(1,5): expected-doctype-but-got-start-tag +(1,15): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "]" + +#data +<svg><![CDATA[]>a +#errors +(1,5): expected-doctype-but-got-start-tag +(1,17): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "]>a" + +#data +<!DOCTYPE html><svg><![CDATA[foo]]]> +#errors +(1,36): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| "foo]" + +#data +<!DOCTYPE html><svg><![CDATA[foo]]]]> +#errors +(1,37): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| "foo]]" + +#data +<!DOCTYPE html><svg><![CDATA[foo]]]]]> +#errors +(1,38): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| "foo]]]" + +#data +<svg><foreignObject><div><![CDATA[foo]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,27): expected-dashes-or-doctype +(1,40): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| <svg foreignObject> +| <div> +| <!-- [CDATA[foo]] --> + +#data +<svg><![CDATA[<svg>]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,22): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "<svg>" + +#data +<svg><![CDATA[</svg>a]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,24): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "</svg>a" + +#data +<svg><![CDATA[<svg>a +#errors +(1,5): expected-doctype-but-got-start-tag +(1,20): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "<svg>a" + +#data +<svg><![CDATA[</svg>a +#errors +(1,5): expected-doctype-but-got-start-tag +(1,21): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "</svg>a" + +#data +<svg><![CDATA[<svg>]]><path> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,28): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "<svg>" +| <svg path> + +#data +<svg><![CDATA[<svg>]]></path> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,29): unexpected-end-tag +(1,29): unexpected-end-tag +(1,29): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "<svg>" + +#data +<svg><![CDATA[<svg>]]><!--path--> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,33): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "<svg>" +| <!-- path --> + +#data +<svg><![CDATA[<svg>]]>path +#errors +(1,5): expected-doctype-but-got-start-tag +(1,26): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "<svg>path" + +#data +<svg><![CDATA[<!--svg-->]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,27): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "<!--svg-->" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests22.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests22.dat new file mode 100644 index 0000000000..31e6d9e331 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests22.dat @@ -0,0 +1,190 @@ +#data +<a><b><big><em><strong><div>X</a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,33): adoption-agency-1.3 +(1,33): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <b> +| <big> +| <em> +| <strong> +| <big> +| <em> +| <strong> +| <div> +| <a> +| "X" + +#data +<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8>A</a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,91): adoption-agency-1.3 +(1,91): adoption-agency-1.3 +(1,91): adoption-agency-1.3 +(1,91): adoption-agency-1.3 +(1,91): adoption-agency-1.3 +(1,91): adoption-agency-1.3 +(1,91): adoption-agency-1.3 +(1,91): adoption-agency-1.3 +(1,91): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <b> +| <b> +| <div> +| id="1" +| <a> +| <div> +| id="2" +| <a> +| <div> +| id="3" +| <a> +| <div> +| id="4" +| <a> +| <div> +| id="5" +| <a> +| <div> +| id="6" +| <a> +| <div> +| id="7" +| <a> +| <div> +| id="8" +| <a> +| "A" + +#data +<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9>A</a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,101): adoption-agency-1.3 +(1,101): adoption-agency-1.3 +(1,101): adoption-agency-1.3 +(1,101): adoption-agency-1.3 +(1,101): adoption-agency-1.3 +(1,101): adoption-agency-1.3 +(1,101): adoption-agency-1.3 +(1,101): adoption-agency-1.3 +(1,101): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <b> +| <b> +| <div> +| id="1" +| <a> +| <div> +| id="2" +| <a> +| <div> +| id="3" +| <a> +| <div> +| id="4" +| <a> +| <div> +| id="5" +| <a> +| <div> +| id="6" +| <a> +| <div> +| id="7" +| <a> +| <div> +| id="8" +| <a> +| <div> +| id="9" +| "A" + +#data +<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9><div id=10>A</a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,112): adoption-agency-1.3 +(1,112): adoption-agency-1.3 +(1,112): adoption-agency-1.3 +(1,112): adoption-agency-1.3 +(1,112): adoption-agency-1.3 +(1,112): adoption-agency-1.3 +(1,112): adoption-agency-1.3 +(1,112): adoption-agency-1.3 +(1,112): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <b> +| <b> +| <div> +| id="1" +| <a> +| <div> +| id="2" +| <a> +| <div> +| id="3" +| <a> +| <div> +| id="4" +| <a> +| <div> +| id="5" +| <a> +| <div> +| id="6" +| <a> +| <div> +| id="7" +| <a> +| <div> +| id="8" +| <a> +| <div> +| id="9" +| <div> +| id="10" +| "A" + +#data +<cite><b><cite><i><cite><i><cite><i><div>X</b>TEST +#errors +(1,6): expected-doctype-but-got-start-tag +(1,46): adoption-agency-1.3 +(1,50): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <cite> +| <b> +| <cite> +| <i> +| <cite> +| <i> +| <cite> +| <i> +| <i> +| <i> +| <div> +| <b> +| "X" +| "TEST" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests23.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests23.dat new file mode 100644 index 0000000000..49e4a4ace5 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests23.dat @@ -0,0 +1,168 @@ +#data +<p><font size=4><font color=red><font size=4><font size=4><font size=4><font size=4><font size=4><font color=red><p>X +#errors +(1,3): expected-doctype-but-got-start-tag +(1,116): unexpected-end-tag +(1,117): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <font> +| size="4" +| <font> +| color="red" +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| <font> +| color="red" +| <p> +| <font> +| color="red" +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| <font> +| color="red" +| "X" + +#data +<p><font size=4><font size=4><font size=4><font size=4><p>X +#errors +(1,3): expected-doctype-but-got-start-tag +(1,58): unexpected-end-tag +(1,59): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| <p> +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| "X" + +#data +<p><font size=4><font size=4><font size=4><font size="5"><font size=4><p>X +#errors +(1,3): expected-doctype-but-got-start-tag +(1,73): unexpected-end-tag +(1,74): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="5" +| <font> +| size="4" +| <p> +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="5" +| <font> +| size="4" +| "X" + +#data +<p><font size=4 id=a><font size=4 id=b><font size=4><font size=4><p>X +#errors +(1,3): expected-doctype-but-got-start-tag +(1,68): unexpected-end-tag +(1,69): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <font> +| id="a" +| size="4" +| <font> +| id="b" +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| <p> +| <font> +| id="a" +| size="4" +| <font> +| id="b" +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| "X" + +#data +<p><b id=a><b id=a><b id=a><b><object><b id=a><b id=a>X</object><p>Y +#errors +(1,3): expected-doctype-but-got-start-tag +(1,64): end-tag-too-early +(1,67): unexpected-end-tag +(1,68): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <b> +| id="a" +| <b> +| id="a" +| <b> +| id="a" +| <b> +| <object> +| <b> +| id="a" +| <b> +| id="a" +| "X" +| <p> +| <b> +| id="a" +| <b> +| id="a" +| <b> +| id="a" +| <b> +| "Y" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests24.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests24.dat new file mode 100644 index 0000000000..f6dc7eb48a --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests24.dat @@ -0,0 +1,79 @@ +#data +<!DOCTYPE html>≂̸ +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "≂̸" + +#data +<!DOCTYPE html>≂̸A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "≂̸A" + +#data +<!DOCTYPE html>   +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| " " + +#data +<!DOCTYPE html>  A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| " A" + +#data +<!DOCTYPE html>⊂⃒ +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "⊂⃒" + +#data +<!DOCTYPE html>⊂⃒A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "⊂⃒A" + +#data +<!DOCTYPE html>𝔾 +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "𝔾" + +#data +<!DOCTYPE html>𝔾A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "𝔾A" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests25.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests25.dat new file mode 100644 index 0000000000..cbc00512b1 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests25.dat @@ -0,0 +1,220 @@ +#data +<!DOCTYPE html><body><foo>A +#errors +(1,27): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <foo> +| "A" + +#data +<!DOCTYPE html><body><area>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <area> +| "A" + +#data +<!DOCTYPE html><body><base>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <base> +| "A" + +#data +<!DOCTYPE html><body><basefont>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <basefont> +| "A" + +#data +<!DOCTYPE html><body><bgsound>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <bgsound> +| "A" + +#data +<!DOCTYPE html><body><br>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <br> +| "A" + +#data +<!DOCTYPE html><body><col>A +#errors +(1,26): unexpected-start-tag-ignored +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "A" + +#data +<!DOCTYPE html><body><command>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <command> +| "A" + +#data +<!DOCTYPE html><body><embed>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <embed> +| "A" + +#data +<!DOCTYPE html><body><frame>A +#errors +(1,28): unexpected-start-tag-ignored +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "A" + +#data +<!DOCTYPE html><body><hr>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <hr> +| "A" + +#data +<!DOCTYPE html><body><img>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <img> +| "A" + +#data +<!DOCTYPE html><body><input>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <input> +| "A" + +#data +<!DOCTYPE html><body><keygen>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <keygen> +| "A" + +#data +<!DOCTYPE html><body><link>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <link> +| "A" + +#data +<!DOCTYPE html><body><meta>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <meta> +| "A" + +#data +<!DOCTYPE html><body><param>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <param> +| "A" + +#data +<!DOCTYPE html><body><source>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <source> +| "A" + +#data +<!DOCTYPE html><body><track>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <track> +| "A" + +#data +<!DOCTYPE html><body><wbr>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <wbr> +| "A" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests26.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests26.dat new file mode 100644 index 0000000000..867bbeecd5 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests26.dat @@ -0,0 +1,411 @@ +#data +<!DOCTYPE html><body><a href='#1'><nobr>1<nobr></a><br><a href='#2'><nobr>2<nobr></a><br><a href='#3'><nobr>3<nobr></a> +#errors +(1,47): unexpected-start-tag-implies-end-tag +(1,51): adoption-agency-1.3 +(1,74): unexpected-start-tag-implies-end-tag +(1,74): adoption-agency-1.3 +(1,81): unexpected-start-tag-implies-end-tag +(1,85): adoption-agency-1.3 +(1,108): unexpected-start-tag-implies-end-tag +(1,108): adoption-agency-1.3 +(1,115): unexpected-start-tag-implies-end-tag +(1,119): adoption-agency-1.3 +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <a> +| href="#1" +| <nobr> +| "1" +| <nobr> +| <nobr> +| <br> +| <a> +| href="#2" +| <a> +| href="#2" +| <nobr> +| "2" +| <nobr> +| <nobr> +| <br> +| <a> +| href="#3" +| <a> +| href="#3" +| <nobr> +| "3" +| <nobr> + +#data +<!DOCTYPE html><body><b><nobr>1<nobr></b><i><nobr>2<nobr></i>3 +#errors +(1,37): unexpected-start-tag-implies-end-tag +(1,41): adoption-agency-1.3 +(1,50): unexpected-start-tag-implies-end-tag +(1,50): adoption-agency-1.3 +(1,57): unexpected-start-tag-implies-end-tag +(1,61): adoption-agency-1.3 +(1,62): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <b> +| <nobr> +| "1" +| <nobr> +| <nobr> +| <i> +| <i> +| <nobr> +| "2" +| <nobr> +| <nobr> +| "3" + +#data +<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3 +#errors +(1,44): foster-parenting-start-tag +(1,48): foster-parenting-end-tag +(1,48): adoption-agency-1.3 +(1,51): foster-parenting-start-tag +(1,57): foster-parenting-start-tag +(1,57): nobr-already-in-scope +(1,57): adoption-agency-1.2 +(1,58): foster-parenting-character +(1,64): foster-parenting-start-tag +(1,64): nobr-already-in-scope +(1,68): foster-parenting-end-tag +(1,68): adoption-agency-1.2 +(1,69): foster-parenting-character +(1,69): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <b> +| <nobr> +| "1" +| <nobr> +| <i> +| <i> +| <nobr> +| "2" +| <nobr> +| <nobr> +| "3" +| <table> + +#data +<!DOCTYPE html><body><b><nobr>1<table><tr><td><nobr></b><i><nobr>2<nobr></i>3 +#errors +(1,56): unexpected-end-tag +(1,65): unexpected-start-tag-implies-end-tag +(1,65): adoption-agency-1.3 +(1,72): unexpected-start-tag-implies-end-tag +(1,76): adoption-agency-1.3 +(1,77): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <b> +| <nobr> +| "1" +| <table> +| <tbody> +| <tr> +| <td> +| <nobr> +| <i> +| <i> +| <nobr> +| "2" +| <nobr> +| <nobr> +| "3" + +#data +<!DOCTYPE html><body><b><nobr>1<div><nobr></b><i><nobr>2<nobr></i>3 +#errors +(1,42): unexpected-start-tag-implies-end-tag +(1,42): adoption-agency-1.3 +(1,46): adoption-agency-1.3 +(1,46): adoption-agency-1.3 +(1,55): unexpected-start-tag-implies-end-tag +(1,55): adoption-agency-1.3 +(1,62): unexpected-start-tag-implies-end-tag +(1,66): adoption-agency-1.3 +(1,67): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <b> +| <nobr> +| "1" +| <div> +| <b> +| <nobr> +| <nobr> +| <nobr> +| <i> +| <i> +| <nobr> +| "2" +| <nobr> +| <nobr> +| "3" + +#data +<!DOCTYPE html><body><b><nobr>1<nobr></b><div><i><nobr>2<nobr></i>3 +#errors +(1,37): unexpected-start-tag-implies-end-tag +(1,41): adoption-agency-1.3 +(1,55): unexpected-start-tag-implies-end-tag +(1,55): adoption-agency-1.3 +(1,62): unexpected-start-tag-implies-end-tag +(1,66): adoption-agency-1.3 +(1,67): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <b> +| <nobr> +| "1" +| <nobr> +| <div> +| <nobr> +| <i> +| <i> +| <nobr> +| "2" +| <nobr> +| <nobr> +| "3" + +#data +<!DOCTYPE html><body><b><nobr>1<nobr><ins></b><i><nobr> +#errors +(1,37): unexpected-start-tag-implies-end-tag +(1,46): adoption-agency-1.3 +(1,55): unexpected-start-tag-implies-end-tag +(1,55): adoption-agency-1.3 +(1,55): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <b> +| <nobr> +| "1" +| <nobr> +| <ins> +| <nobr> +| <i> +| <i> +| <nobr> + +#data +<!DOCTYPE html><body><b><nobr>1<ins><nobr></b><i>2 +#errors +(1,42): unexpected-start-tag-implies-end-tag +(1,42): adoption-agency-1.3 +(1,46): adoption-agency-1.3 +(1,50): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <b> +| <nobr> +| "1" +| <ins> +| <nobr> +| <nobr> +| <i> +| "2" + +#data +<!DOCTYPE html><body><b>1<nobr></b><i><nobr>2</i> +#errors +(1,35): adoption-agency-1.3 +(1,44): unexpected-start-tag-implies-end-tag +(1,44): adoption-agency-1.3 +(1,49): adoption-agency-1.3 +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <b> +| "1" +| <nobr> +| <nobr> +| <i> +| <i> +| <nobr> +| "2" + +#data +<p><code x</code></p> + +#errors +(1,3): expected-doctype-but-got-start-tag +(1,11): invalid-character-in-attribute-name +(1,12): unexpected-character-after-solidus-in-tag +(1,21): unexpected-end-tag +(2,0): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <code> +| code="" +| x<="" +| <code> +| code="" +| x<="" +| " +" + +#data +<!DOCTYPE html><svg><foreignObject><p><i></p>a +#errors +(1,45): unexpected-end-tag +(1,46): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg foreignObject> +| <p> +| <i> +| <i> +| "a" + +#data +<!DOCTYPE html><table><tr><td><svg><foreignObject><p><i></p>a +#errors +(1,60): unexpected-end-tag +(1,61): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <svg svg> +| <svg foreignObject> +| <p> +| <i> +| <i> +| "a" + +#data +<!DOCTYPE html><math><mtext><p><i></p>a +#errors +(1,38): unexpected-end-tag +(1,39): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mtext> +| <p> +| <i> +| <i> +| "a" + +#data +<!DOCTYPE html><table><tr><td><math><mtext><p><i></p>a +#errors +(1,53): unexpected-end-tag +(1,54): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <math math> +| <math mtext> +| <p> +| <i> +| <i> +| "a" + +#data +<!DOCTYPE html><body><div><!/div>a +#errors +(1,28): expected-dashes-or-doctype +(1,34): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <div> +| <!-- /div --> +| "a" + +#data +<button><p><button> +#errors +Line 1 Col 8 Unexpected start tag (button). Expected DOCTYPE. +Line 1 Col 19 Unexpected start tag (button) implies end tag (button). +Line 1 Col 19 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <button> +| <p> +| <button> + +#data +<!DOCTYPE html><html><frameset></frameset></html></frameset> +#errors +60: Stray end tag “frameset”. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!DOCTYPE html><html><frameset></frameset></html>XXX</frameset> +#errors +52: Non-space character in page trailer. +52: Non-space character in page trailer. +52: Non-space character in page trailer. +63: Stray end tag “frameset”. +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests3.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests3.dat new file mode 100644 index 0000000000..423e2b3cab --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests3.dat @@ -0,0 +1,306 @@ +#data +<head></head><style></style> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,20): unexpected-start-tag-out-of-my-head +#document +| <html> +| <head> +| <style> +| <body> + +#data +<head></head><script></script> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,21): unexpected-start-tag-out-of-my-head +#document +| <html> +| <head> +| <script> +| <body> + +#data +<head></head><!-- --><style></style><!-- --><script></script> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,28): unexpected-start-tag-out-of-my-head +(1,52): unexpected-start-tag-out-of-my-head +#document +| <html> +| <head> +| <style> +| <script> +| <!-- --> +| <!-- --> +| <body> + +#data +<head></head><!-- -->x<style></style><!-- --><script></script> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <!-- --> +| <body> +| "x" +| <style> +| <!-- --> +| <script> + +#data +<!DOCTYPE html><html><head></head><body><pre> +</pre></body></html> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <pre> + +#data +<!DOCTYPE html><html><head></head><body><pre> +foo</pre></body></html> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <pre> +| "foo" + +#data +<!DOCTYPE html><html><head></head><body><pre> + +foo</pre></body></html> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <pre> +| " +foo" + +#data +<!DOCTYPE html><html><head></head><body><pre> +foo +</pre></body></html> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <pre> +| "foo +" + +#data +<!DOCTYPE html><html><head></head><body><pre>x</pre><span> +</span></body></html> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <pre> +| "x" +| <span> +| " +" + +#data +<!DOCTYPE html><html><head></head><body><pre>x +y</pre></body></html> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <pre> +| "x +y" + +#data +<!DOCTYPE html><html><head></head><body><pre>x<div> +y</pre></body></html> +#errors +(2,7): end-tag-too-early +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <pre> +| "x" +| <div> +| " +y" + +#data +<!DOCTYPE html><pre>

A</pre> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <pre> +| " +A" + +#data +<!DOCTYPE html><HTML><META><HEAD></HEAD></HTML> +#errors +(1,33): two-heads-are-not-better-than-one +#document +| <!DOCTYPE html> +| <html> +| <head> +| <meta> +| <body> + +#data +<!DOCTYPE html><HTML><HEAD><head></HEAD></HTML> +#errors +(1,33): two-heads-are-not-better-than-one +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> + +#data +<textarea>foo<span>bar</span><i>baz +#errors +(1,10): expected-doctype-but-got-start-tag +(1,35): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <textarea> +| "foo<span>bar</span><i>baz" + +#data +<title>foo<span>bar</em><i>baz +#errors +(1,7): expected-doctype-but-got-start-tag +(1,30): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <title> +| "foo<span>bar</em><i>baz" +| <body> + +#data +<!DOCTYPE html><textarea> +</textarea> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <textarea> + +#data +<!DOCTYPE html><textarea> +foo</textarea> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <textarea> +| "foo" + +#data +<!DOCTYPE html><textarea> + +foo</textarea> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <textarea> +| " +foo" + +#data +<!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html> +#errors +(1,60): end-tag-too-early +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <ul> +| <li> +| <div> +| <p> +| <li> + +#data +<!doctype html><nobr><nobr><nobr> +#errors +(1,27): unexpected-start-tag-implies-end-tag +(1,33): unexpected-start-tag-implies-end-tag +(1,33): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <nobr> +| <nobr> +| <nobr> + +#data +<!doctype html><nobr><nobr></nobr><nobr> +#errors +(1,27): unexpected-start-tag-implies-end-tag +(1,40): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <nobr> +| <nobr> +| <nobr> + +#data +<!doctype html><html><body><p><table></table></body></html> +#errors +Not known +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <table> + +#data +<p><table></table> +#errors +(1,3): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <p> +| <table> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests4.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests4.dat new file mode 100644 index 0000000000..0a6174c36c --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests4.dat @@ -0,0 +1,58 @@ +#data +direct div content +#errors +#document-fragment +div +#document +| "direct div content" + +#data +direct textarea content +#errors +#document-fragment +textarea +#document +| "direct textarea content" + +#data +textarea content with <em>pseudo</em> <foo>markup +#errors +#document-fragment +textarea +#document +| "textarea content with <em>pseudo</em> <foo>markup" + +#data +this is CDATA inside a <style> element +#errors +#document-fragment +style +#document +| "this is CDATA inside a <style> element" + +#data +</plaintext> +#errors +#document-fragment +plaintext +#document +| "</plaintext>" + +#data +setting html's innerHTML +#errors +#document-fragment +html +#document +| <head> +| <body> +| "setting html's innerHTML" + +#data +<title>setting head's innerHTML</title> +#errors +#document-fragment +head +#document +| <title> +| "setting head's innerHTML" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests5.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests5.dat new file mode 100644 index 0000000000..4d5fcd7a79 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests5.dat @@ -0,0 +1,197 @@ +#data +<style> <!-- </style>x +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <style> +| " <!-- " +| <body> +| "x" + +#data +<style> <!-- </style> --> </style>x +#errors +(1,7): expected-doctype-but-got-start-tag +(1,34): unexpected-end-tag +#document +| <html> +| <head> +| <style> +| " <!-- " +| " " +| <body> +| "--> x" + +#data +<style> <!--> </style>x +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <style> +| " <!--> " +| <body> +| "x" + +#data +<style> <!---> </style>x +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <style> +| " <!---> " +| <body> +| "x" + +#data +<iframe> <!---> </iframe>x +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <iframe> +| " <!---> " +| "x" + +#data +<iframe> <!--- </iframe>->x</iframe> --> </iframe>x +#errors +(1,8): expected-doctype-but-got-start-tag +(1,36): unexpected-end-tag +(1,50): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <iframe> +| " <!--- " +| "->x --> x" + +#data +<script> <!-- </script> --> </script>x +#errors +(1,8): expected-doctype-but-got-start-tag +(1,37): unexpected-end-tag +#document +| <html> +| <head> +| <script> +| " <!-- " +| " " +| <body> +| "--> x" + +#data +<title> <!-- </title> --> </title>x +#errors +(1,7): expected-doctype-but-got-start-tag +(1,34): unexpected-end-tag +#document +| <html> +| <head> +| <title> +| " <!-- " +| " " +| <body> +| "--> x" + +#data +<textarea> <!--- </textarea>->x</textarea> --> </textarea>x +#errors +(1,10): expected-doctype-but-got-start-tag +(1,42): unexpected-end-tag +(1,58): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <textarea> +| " <!--- " +| "->x --> x" + +#data +<style> <!</-- </style>x +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <style> +| " <!</-- " +| <body> +| "x" + +#data +<p><xmp></xmp> +#errors +(1,3): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <p> +| <xmp> + +#data +<xmp> <!-- > --> </xmp> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <xmp> +| " <!-- > --> " + +#data +<title>&</title> +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <title> +| "&" +| <body> + +#data +<title><!--&--></title> +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <title> +| "<!--&-->" +| <body> + +#data +<title><!--</title> +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <title> +| "<!--" +| <body> + +#data +<noscript><!--</noscript>--></noscript> +#errors +(1,10): expected-doctype-but-got-start-tag +(1,39): unexpected-end-tag +#document +| <html> +| <head> +| <noscript> +| "<!--" +| <body> +| "-->" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests6.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests6.dat new file mode 100644 index 0000000000..fedc64e938 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests6.dat @@ -0,0 +1,662 @@ +#data +<!doctype html></head> <head> +#errors +(1,29): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| " " +| <body> + +#data +<!doctype html><form><div></form><div> +#errors +(1,33): end-tag-too-early-ignored +(1,38): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <form> +| <div> +| <div> + +#data +<!doctype html><title>&</title> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <title> +| "&" +| <body> + +#data +<!doctype html><title><!--&--></title> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <title> +| "<!--&-->" +| <body> + +#data +<!doctype> +#errors +(1,9): need-space-after-doctype +(1,10): expected-doctype-name-but-got-right-bracket +(1,10): unknown-doctype +#document +| <!DOCTYPE > +| <html> +| <head> +| <body> + +#data +<!---x +#errors +(1,6): eof-in-comment +(1,6): expected-doctype-but-got-eof +#document +| <!-- -x --> +| <html> +| <head> +| <body> + +#data +<body> +<div> +#errors +(1,6): unexpected-start-tag +(2,5): expected-closing-tag-but-got-eof +#document-fragment +div +#document +| " +" +| <div> + +#data +<frameset></frameset> +foo +#errors +(1,10): expected-doctype-but-got-start-tag +(2,1): unexpected-char-after-frameset +(2,2): unexpected-char-after-frameset +(2,3): unexpected-char-after-frameset +#document +| <html> +| <head> +| <frameset> +| " +" + +#data +<frameset></frameset> +<noframes> +#errors +(1,10): expected-doctype-but-got-start-tag +(2,10): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <frameset> +| " +" +| <noframes> + +#data +<frameset></frameset> +<div> +#errors +(1,10): expected-doctype-but-got-start-tag +(2,5): unexpected-start-tag-after-frameset +#document +| <html> +| <head> +| <frameset> +| " +" + +#data +<frameset></frameset> +</html> +#errors +(1,10): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <frameset> +| " +" + +#data +<frameset></frameset> +</div> +#errors +(1,10): expected-doctype-but-got-start-tag +(2,6): unexpected-end-tag-after-frameset +#document +| <html> +| <head> +| <frameset> +| " +" + +#data +<form><form> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,12): unexpected-start-tag +(1,12): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <form> + +#data +<button><button> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,16): unexpected-start-tag-implies-end-tag +(1,16): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <button> +| <button> + +#data +<table><tr><td></th> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,20): unexpected-end-tag +(1,20): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> + +#data +<table><caption><td> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,20): XXX-undefined-error +(1,20): unexpected-cell-in-table-body +(1,20): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <caption> +| <tbody> +| <tr> +| <td> + +#data +<table><caption><div> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,21): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <caption> +| <div> + +#data +</caption><div> +#errors +(1,10): XXX-undefined-error +(1,15): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <div> + +#data +<table><caption><div></caption> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,31): expected-one-end-tag-but-got-another +(1,31): eof-in-table +#document +| <html> +| <head> +| <body> +| <table> +| <caption> +| <div> + +#data +<table><caption></table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,24): end-table-tag-in-caption +#document +| <html> +| <head> +| <body> +| <table> +| <caption> + +#data +</table><div> +#errors +(1,8): unexpected-end-tag +(1,13): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <div> + +#data +<table><caption></body></col></colgroup></html></tbody></td></tfoot></th></thead></tr> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,23): unexpected-end-tag +(1,29): unexpected-end-tag +(1,40): unexpected-end-tag +(1,47): unexpected-end-tag +(1,55): unexpected-end-tag +(1,60): unexpected-end-tag +(1,68): unexpected-end-tag +(1,73): unexpected-end-tag +(1,81): unexpected-end-tag +(1,86): unexpected-end-tag +(1,86): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <caption> + +#data +<table><caption><div></div> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,27): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <caption> +| <div> + +#data +<table><tr><td></body></caption></col></colgroup></html> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,22): unexpected-end-tag +(1,32): unexpected-end-tag +(1,38): unexpected-end-tag +(1,49): unexpected-end-tag +(1,56): unexpected-end-tag +(1,56): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> + +#data +</table></tbody></tfoot></thead></tr><div> +#errors +(1,8): unexpected-end-tag +(1,16): unexpected-end-tag +(1,24): unexpected-end-tag +(1,32): unexpected-end-tag +(1,37): unexpected-end-tag +(1,42): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <div> + +#data +<table><colgroup>foo +#errors +(1,7): expected-doctype-but-got-start-tag +(1,18): foster-parenting-character-in-table +(1,19): foster-parenting-character-in-table +(1,20): foster-parenting-character-in-table +(1,20): eof-in-table +#document +| <html> +| <head> +| <body> +| "foo" +| <table> +| <colgroup> + +#data +foo<col> +#errors +(1,1): unexpected-character-in-colgroup +(1,2): unexpected-character-in-colgroup +(1,3): unexpected-character-in-colgroup +#document-fragment +colgroup +#document +| <col> + +#data +<table><colgroup></col> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,23): no-end-tag +(1,23): eof-in-table +#document +| <html> +| <head> +| <body> +| <table> +| <colgroup> + +#data +<frameset><div> +#errors +(1,10): expected-doctype-but-got-start-tag +(1,15): unexpected-start-tag-in-frameset +(1,15): eof-in-frameset +#document +| <html> +| <head> +| <frameset> + +#data +</frameset><frame> +#errors +(1,11): unexpected-frameset-in-frameset-innerhtml +#document-fragment +frameset +#document +| <frame> + +#data +<frameset></div> +#errors +(1,10): expected-doctype-but-got-start-tag +(1,16): unexpected-end-tag-in-frameset +(1,16): eof-in-frameset +#document +| <html> +| <head> +| <frameset> + +#data +</body><div> +#errors +(1,7): unexpected-close-tag +(1,12): expected-closing-tag-but-got-eof +#document-fragment +body +#document +| <div> + +#data +<table><tr><div> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,16): unexpected-start-tag-implies-table-voodoo +(1,16): eof-in-table +#document +| <html> +| <head> +| <body> +| <div> +| <table> +| <tbody> +| <tr> + +#data +</tr><td> +#errors +(1,5): unexpected-end-tag +#document-fragment +tr +#document +| <td> + +#data +</tbody></tfoot></thead><td> +#errors +(1,8): unexpected-end-tag +(1,16): unexpected-end-tag +(1,24): unexpected-end-tag +#document-fragment +tr +#document +| <td> + +#data +<table><tr><div><td> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,16): foster-parenting-start-tag +(1,20): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <table> +| <tbody> +| <tr> +| <td> + +#data +<caption><col><colgroup><tbody><tfoot><thead><tr> +#errors +(1,9): unexpected-start-tag +(1,14): unexpected-start-tag +(1,24): unexpected-start-tag +(1,31): unexpected-start-tag +(1,38): unexpected-start-tag +(1,45): unexpected-start-tag +#document-fragment +tbody +#document +| <tr> + +#data +<table><tbody></thead> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,22): unexpected-end-tag-in-table-body +(1,22): eof-in-table +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> + +#data +</table><tr> +#errors +(1,8): unexpected-end-tag +#document-fragment +tbody +#document +| <tr> + +#data +<table><tbody></body></caption></col></colgroup></html></td></th></tr> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,21): unexpected-end-tag-in-table-body +(1,31): unexpected-end-tag-in-table-body +(1,37): unexpected-end-tag-in-table-body +(1,48): unexpected-end-tag-in-table-body +(1,55): unexpected-end-tag-in-table-body +(1,60): unexpected-end-tag-in-table-body +(1,65): unexpected-end-tag-in-table-body +(1,70): unexpected-end-tag-in-table-body +(1,70): eof-in-table +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> + +#data +<table><tbody></div> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,20): unexpected-end-tag-implies-table-voodoo +(1,20): end-tag-too-early +(1,20): eof-in-table +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> + +#data +<table><table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,14): unexpected-start-tag-implies-end-tag +(1,14): eof-in-table +#document +| <html> +| <head> +| <body> +| <table> +| <table> + +#data +<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,14): unexpected-end-tag +(1,24): unexpected-end-tag +(1,30): unexpected-end-tag +(1,41): unexpected-end-tag +(1,48): unexpected-end-tag +(1,56): unexpected-end-tag +(1,61): unexpected-end-tag +(1,69): unexpected-end-tag +(1,74): unexpected-end-tag +(1,82): unexpected-end-tag +(1,87): unexpected-end-tag +(1,87): eof-in-table +#document +| <html> +| <head> +| <body> +| <table> + +#data +</table><tr> +#errors +(1,8): unexpected-end-tag +#document-fragment +table +#document +| <tbody> +| <tr> + +#data +<body></body></html> +#errors +(1,20): unexpected-end-tag-after-body-innerhtml +#document-fragment +html +#document +| <head> +| <body> + +#data +<html><frameset></frameset></html> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <frameset> +| " " + +#data +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"><html></html> +#errors +(1,50): unknown-doctype element. +#document +| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" ""> +| <html> +| <head> +| <body> + +#data +<param><frameset></frameset> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,17): unexpected-start-tag +#document +| <html> +| <head> +| <frameset> + +#data +<source><frameset></frameset> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,18): unexpected-start-tag +#document +| <html> +| <head> +| <frameset> + +#data +<track><frameset></frameset> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,17): unexpected-start-tag +#document +| <html> +| <head> +| <frameset> + +#data +</html><frameset></frameset> +#errors +(1,7): expected-doctype-but-got-end-tag +(1,17): expected-eof-but-got-start-tag +(1,17): unexpected-start-tag +#document +| <html> +| <head> +| <frameset> + +#data +</body><frameset></frameset> +#errors +(1,7): expected-doctype-but-got-end-tag +(1,17): unexpected-start-tag-after-body +(1,17): unexpected-start-tag +#document +| <html> +| <head> +| <frameset> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests7.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests7.dat new file mode 100644 index 0000000000..f9471b9a34 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests7.dat @@ -0,0 +1,402 @@ +#data +<!doctype html><body><title>X</title> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <title> +| "X" + +#data +<!doctype html><table><title>X</title></table> +#errors +(1,29): unexpected-start-tag-implies-table-voodoo +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <title> +| "X" +| <table> + +#data +<!doctype html><head></head><title>X</title> +#errors +(1,35): unexpected-start-tag-out-of-my-head +#document +| <!DOCTYPE html> +| <html> +| <head> +| <title> +| "X" +| <body> + +#data +<!doctype html></head><title>X</title> +#errors +(1,29): unexpected-start-tag-out-of-my-head +#document +| <!DOCTYPE html> +| <html> +| <head> +| <title> +| "X" +| <body> + +#data +<!doctype html><table><meta></table> +#errors +(1,28): unexpected-start-tag-implies-table-voodoo +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <meta> +| <table> + +#data +<!doctype html><table>X<tr><td><table> <meta></table></table> +#errors +(1,45): unexpected-start-tag-implies-table-voodoo +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "X" +| <table> +| <tbody> +| <tr> +| <td> +| <meta> +| <table> +| " " + +#data +<!doctype html><html> <head> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> + +#data +<!doctype html> <head> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> + +#data +<!doctype html><table><style> <tr>x </style> </table> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <style> +| " <tr>x " +| " " + +#data +<!doctype html><table><TBODY><script> <tr>x </script> </table> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <script> +| " <tr>x " +| " " + +#data +<!doctype html><p><applet><p>X</p></applet> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <applet> +| <p> +| "X" + +#data +<!doctype html><listing> +X</listing> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <listing> +| "X" + +#data +<!doctype html><select><input>X +#errors +(1,30): unexpected-input-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <input> +| "X" + +#data +<!doctype html><select><select>X +#errors +(1,31): unexpected-select-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| "X" + +#data +<!doctype html><table><input type=hidDEN></table> +#errors +(1,41): unexpected-hidden-input-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <input> +| type="hidDEN" + +#data +<!doctype html><table>X<input type=hidDEN></table> +#errors +(1,23): foster-parenting-character +(1,42): unexpected-hidden-input-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "X" +| <table> +| <input> +| type="hidDEN" + +#data +<!doctype html><table> <input type=hidDEN></table> +#errors +(1,43): unexpected-hidden-input-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| " " +| <input> +| type="hidDEN" + +#data +<!doctype html><table> <input type='hidDEN'></table> +#errors +(1,45): unexpected-hidden-input-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| " " +| <input> +| type="hidDEN" + +#data +<!doctype html><table><input type=" hidden"><input type=hidDEN></table> +#errors +(1,44): unexpected-start-tag-implies-table-voodoo +(1,63): unexpected-hidden-input-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <input> +| type=" hidden" +| <table> +| <input> +| type="hidDEN" + +#data +<!doctype html><table><select>X<tr> +#errors +(1,30): unexpected-start-tag-implies-table-voodoo +(1,35): unexpected-table-element-start-tag-in-select-in-table +(1,35): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| "X" +| <table> +| <tbody> +| <tr> + +#data +<!doctype html><select>X</select> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| "X" + +#data +<!DOCTYPE hTmL><html></html> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE HTML><html></html> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> + +#data +<body>X</body></body> +#errors +(1,21): unexpected-end-tag-after-body +#document-fragment +html +#document +| <head> +| <body> +| "X" + +#data +<div><p>a</x> b +#errors +(1,5): expected-doctype-but-got-start-tag +(1,13): unexpected-end-tag +(1,15): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <p> +| "a b" + +#data +<table><tr><td><code></code> </table> +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <code> +| " " + +#data +<table><b><tr><td>aaa</td></tr>bbb</table>ccc +#errors +(1,7): expected-doctype-but-got-start-tag +(1,10): foster-parenting-start-tag +(1,32): foster-parenting-character +(1,33): foster-parenting-character +(1,34): foster-parenting-character +(1,45): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| <b> +| "bbb" +| <table> +| <tbody> +| <tr> +| <td> +| "aaa" +| <b> +| "ccc" + +#data +A<table><tr> B</tr> B</table> +#errors +(1,1): expected-doctype-but-got-chars +(1,13): foster-parenting-character +(1,14): foster-parenting-character +(1,20): foster-parenting-character +(1,21): foster-parenting-character +#document +| <html> +| <head> +| <body> +| "A B B" +| <table> +| <tbody> +| <tr> + +#data +A<table><tr> B</tr> </em>C</table> +#errors +(1,1): expected-doctype-but-got-chars +(1,13): foster-parenting-character +(1,14): foster-parenting-character +(1,20): foster-parenting-character +(1,25): unexpected-end-tag +(1,26): foster-parenting-character +#document +| <html> +| <head> +| <body> +| "A BC" +| <table> +| <tbody> +| <tr> +| " " + +#data +<select><keygen> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,16): unexpected-input-in-select +#document +| <html> +| <head> +| <body> +| <select> +| <keygen> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests8.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests8.dat new file mode 100644 index 0000000000..93289f39c5 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests8.dat @@ -0,0 +1,149 @@ +#data +<div> +<div></div> +</span>x +#errors +(1,5): expected-doctype-but-got-start-tag +(3,7): unexpected-end-tag +(3,8): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| " +" +| <div> +| " +x" + +#data +<div>x<div></div> +</span>x +#errors +(1,5): expected-doctype-but-got-start-tag +(2,7): unexpected-end-tag +(2,8): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| "x" +| <div> +| " +x" + +#data +<div>x<div></div>x</span>x +#errors +(1,5): expected-doctype-but-got-start-tag +(1,25): unexpected-end-tag +(1,26): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| "x" +| <div> +| "xx" + +#data +<div>x<div></div>y</span>z +#errors +(1,5): expected-doctype-but-got-start-tag +(1,25): unexpected-end-tag +(1,26): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| "x" +| <div> +| "yz" + +#data +<table><div>x<div></div>x</span>x +#errors +(1,7): expected-doctype-but-got-start-tag +(1,12): foster-parenting-start-tag +(1,13): foster-parenting-character +(1,18): foster-parenting-start-tag +(1,24): foster-parenting-end-tag +(1,25): foster-parenting-start-tag +(1,32): foster-parenting-end-tag +(1,32): unexpected-end-tag +(1,33): foster-parenting-character +(1,33): eof-in-table +#document +| <html> +| <head> +| <body> +| <div> +| "x" +| <div> +| "xx" +| <table> + +#data +x<table>x +#errors +(1,1): expected-doctype-but-got-chars +(1,9): foster-parenting-character +#document +| <html> +| <head> +| <body> +| "xx" +| <table> + +#data +x<table><table>x +#errors +(1,1): expected-doctype-but-got-chars +(1,15): unexpected-start-tag-implies-end-tag +(1,16): foster-parenting-character +#document +| <html> +| <head> +| <body> +| "x" +| <table> +| "x" +| <table> + +#data +<b>a<div></div><div></b>y +#errors +(1,3): expected-doctype-but-got-start-tag +(1,24): adoption-agency-1.3 +(1,25): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| "a" +| <div> +| <div> +| <b> +| "y" + +#data +<a><div><p></a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,15): adoption-agency-1.3 +(1,15): adoption-agency-1.3 +(1,15): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <div> +| <a> +| <p> +| <a> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests9.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests9.dat new file mode 100644 index 0000000000..40651a0613 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests9.dat @@ -0,0 +1,473 @@ +#data +<!DOCTYPE html><math></math> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> + +#data +<!DOCTYPE html><body><math></math> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> + +#data +<!DOCTYPE html><math><mi> +#errors +(1,25) expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mi> + +#data +<!DOCTYPE html><math><annotation-xml><svg><u> +#errors +(1,45) unexpected-html-element-in-foreign-content +(1,45) expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| <svg svg> +| <u> + +#data +<!DOCTYPE html><body><select><math></math></select> +#errors +(1,35) unexpected-start-tag-in-select +(1,42) unexpected-end-tag-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!DOCTYPE html><body><select><option><math></math></option></select> +#errors +(1,43) unexpected-start-tag-in-select +(1,50) unexpected-end-tag-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <option> + +#data +<!DOCTYPE html><body><table><math></math></table> +#errors +(1,34) unexpected-start-tag-implies-table-voodoo +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <table> + +#data +<!DOCTYPE html><body><table><math><mi>foo</mi></math></table> +#errors +(1,34) foster-parenting-start-token +(1,39) foster-parenting-character +(1,40) foster-parenting-character +(1,41) foster-parenting-character +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| "foo" +| <table> + +#data +<!DOCTYPE html><body><table><math><mi>foo</mi><mi>bar</mi></math></table> +#errors +(1,34) foster-parenting-start-tag +(1,39) foster-parenting-character +(1,40) foster-parenting-character +(1,41) foster-parenting-character +(1,51) foster-parenting-character +(1,52) foster-parenting-character +(1,53) foster-parenting-character +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <table> + +#data +<!DOCTYPE html><body><table><tbody><math><mi>foo</mi><mi>bar</mi></math></tbody></table> +#errors +(1,41) foster-parenting-start-tag +(1,46) foster-parenting-character +(1,47) foster-parenting-character +(1,48) foster-parenting-character +(1,58) foster-parenting-character +(1,59) foster-parenting-character +(1,60) foster-parenting-character +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <table> +| <tbody> + +#data +<!DOCTYPE html><body><table><tbody><tr><math><mi>foo</mi><mi>bar</mi></math></tr></tbody></table> +#errors +(1,45) foster-parenting-start-tag +(1,50) foster-parenting-character +(1,51) foster-parenting-character +(1,52) foster-parenting-character +(1,62) foster-parenting-character +(1,63) foster-parenting-character +(1,64) foster-parenting-character +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <table> +| <tbody> +| <tr> + +#data +<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math></td></tr></tbody></table> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" + +#data +<!DOCTYPE html><body><table><tbody><tr><td><math><mi>foo</mi><mi>bar</mi></math><p>baz</td></tr></tbody></table> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <p> +| "baz" + +#data +<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi></math><p>baz</caption></table> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <p> +| "baz" + +#data +<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux +#errors +(1,70) unexpected-html-element-in-foreign-content +(1,81) XXX-undefined-error +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <p> +| "baz" +| <p> +| "quux" + +#data +<!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</table><p>quux +#errors +(1,78) unexpected-end-tag +(1,78) expected-one-end-tag-but-got-another +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| "baz" +| <p> +| "quux" + +#data +<!DOCTYPE html><body><table><colgroup><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux +#errors +(1,44) foster-parenting-start-tag +(1,49) foster-parenting-character +(1,50) foster-parenting-character +(1,51) foster-parenting-character +(1,61) foster-parenting-character +(1,62) foster-parenting-character +(1,63) foster-parenting-character +(1,71) unexpected-html-element-in-foreign-content +(1,71) foster-parenting-start-tag +(1,63) foster-parenting-character +(1,63) foster-parenting-character +(1,63) foster-parenting-character +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <p> +| "baz" +| <table> +| <colgroup> +| <p> +| "quux" + +#data +<!DOCTYPE html><body><table><tr><td><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux +#errors +(1,50) unexpected-start-tag-in-select +(1,54) unexpected-start-tag-in-select +(1,62) unexpected-end-tag-in-select +(1,66) unexpected-start-tag-in-select +(1,74) unexpected-end-tag-in-select +(1,77) unexpected-start-tag-in-select +(1,88) unexpected-table-element-end-tag-in-select-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <select> +| "foobarbaz" +| <p> +| "quux" + +#data +<!DOCTYPE html><body><table><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux +#errors +(1,36) unexpected-start-tag-implies-table-voodoo +(1,42) unexpected-start-tag-in-select +(1,46) unexpected-start-tag-in-select +(1,54) unexpected-end-tag-in-select +(1,58) unexpected-start-tag-in-select +(1,66) unexpected-end-tag-in-select +(1,69) unexpected-start-tag-in-select +(1,80) unexpected-table-element-end-tag-in-select-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| "foobarbaz" +| <table> +| <p> +| "quux" + +#data +<!DOCTYPE html><body></body></html><math><mi>foo</mi><mi>bar</mi><p>baz +#errors +(1,41) expected-eof-but-got-start-tag +(1,68) unexpected-html-element-in-foreign-content +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <p> +| "baz" + +#data +<!DOCTYPE html><body></body><math><mi>foo</mi><mi>bar</mi><p>baz +#errors +(1,34) unexpected-start-tag-after-body +(1,61) unexpected-html-element-in-foreign-content +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| "foo" +| <math mi> +| "bar" +| <p> +| "baz" + +#data +<!DOCTYPE html><frameset><math><mi></mi><mi></mi><p><span> +#errors +(1,31) unexpected-start-tag-in-frameset +(1,35) unexpected-start-tag-in-frameset +(1,40) unexpected-end-tag-in-frameset +(1,44) unexpected-start-tag-in-frameset +(1,49) unexpected-end-tag-in-frameset +(1,52) unexpected-start-tag-in-frameset +(1,58) unexpected-start-tag-in-frameset +(1,58) eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!DOCTYPE html><frameset></frameset><math><mi></mi><mi></mi><p><span> +#errors +(1,42) unexpected-start-tag-after-frameset +(1,46) unexpected-start-tag-after-frameset +(1,51) unexpected-end-tag-after-frameset +(1,55) unexpected-start-tag-after-frameset +(1,60) unexpected-end-tag-after-frameset +(1,63) unexpected-start-tag-after-frameset +(1,69) unexpected-start-tag-after-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!DOCTYPE html><body xlink:href=foo><math xlink:href=foo></math> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| xlink:href="foo" +| <math math> +| xlink href="foo" + +#data +<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo></mi></math> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| xlink:href="foo" +| xml:lang="en" +| <math math> +| <math mi> +| xlink href="foo" +| xml lang="en" + +#data +<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo /></math> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| xlink:href="foo" +| xml:lang="en" +| <math math> +| <math mi> +| xlink href="foo" +| xml lang="en" + +#data +<!DOCTYPE html><body xlink:href=foo xml:lang=en><math><mi xml:lang=en xlink:href=foo />bar</math> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| xlink:href="foo" +| xml:lang="en" +| <math math> +| <math mi> +| xlink href="foo" +| xml lang="en" +| "bar" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests_innerHTML_1.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests_innerHTML_1.dat new file mode 100644 index 0000000000..5ede639bcc --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tests_innerHTML_1.dat @@ -0,0 +1,902 @@ +#data +<body><span> +#errors +(1,6): unexpected-start-tag +(1,12): expected-closing-tag-but-got-eof +#document-fragment +body +#document +| <span> + +#data +<span><body> +#errors +(1,12): unexpected-start-tag +(1,12): expected-closing-tag-but-got-eof +#document-fragment +body +#document +| <span> + +#data +<span><body> +#errors +(1,12): unexpected-start-tag +(1,12): expected-closing-tag-but-got-eof +#document-fragment +div +#document +| <span> + +#data +<body><span> +#errors +(1,12): expected-closing-tag-but-got-eof +#document-fragment +html +#document +| <head> +| <body> +| <span> + +#data +<frameset><span> +#errors +(1,10): unexpected-start-tag +(1,16): expected-closing-tag-but-got-eof +#document-fragment +body +#document +| <span> + +#data +<span><frameset> +#errors +(1,16): unexpected-start-tag +(1,16): expected-closing-tag-but-got-eof +#document-fragment +body +#document +| <span> + +#data +<span><frameset> +#errors +(1,16): unexpected-start-tag +(1,16): expected-closing-tag-but-got-eof +#document-fragment +div +#document +| <span> + +#data +<frameset><span> +#errors +(1,16): unexpected-start-tag-in-frameset +(1,16): eof-in-frameset +#document-fragment +html +#document +| <head> +| <frameset> + +#data +<table><tr> +#errors +(1,7): unexpected-start-tag +#document-fragment +table +#document +| <tbody> +| <tr> + +#data +</table><tr> +#errors +(1,8): unexpected-end-tag +#document-fragment +table +#document +| <tbody> +| <tr> + +#data +<a> +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +(1,3): eof-in-table +#document-fragment +table +#document +| <a> + +#data +<a> +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +(1,3): eof-in-table +#document-fragment +table +#document +| <a> + +#data +<a><caption>a +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +(1,13): expected-closing-tag-but-got-eof +#document-fragment +table +#document +| <a> +| <caption> +| "a" + +#data +<a><colgroup><col> +#errors +(1,3): foster-parenting-start-token +(1,18): expected-closing-tag-but-got-eof +#document-fragment +table +#document +| <a> +| <colgroup> +| <col> + +#data +<a><tbody><tr> +#errors +(1,3): foster-parenting-start-tag +#document-fragment +table +#document +| <a> +| <tbody> +| <tr> + +#data +<a><tfoot><tr> +#errors +(1,3): foster-parenting-start-tag +#document-fragment +table +#document +| <a> +| <tfoot> +| <tr> + +#data +<a><thead><tr> +#errors +(1,3): foster-parenting-start-tag +#document-fragment +table +#document +| <a> +| <thead> +| <tr> + +#data +<a><tr> +#errors +(1,3): foster-parenting-start-tag +#document-fragment +table +#document +| <a> +| <tbody> +| <tr> + +#data +<a><th> +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +(1,7): unexpected-cell-in-table-body +#document-fragment +table +#document +| <a> +| <tbody> +| <tr> +| <th> + +#data +<a><td> +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +(1,7): unexpected-cell-in-table-body +#document-fragment +table +#document +| <a> +| <tbody> +| <tr> +| <td> + +#data +<table></table><tbody> +#errors +(1,22): unexpected-start-tag +#document-fragment +caption +#document +| <table> + +#data +</table><span> +#errors +(1,8): unexpected-end-tag +(1,14): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> + +#data +<span></table> +#errors +(1,14): unexpected-end-tag +(1,14): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> + +#data +</caption><span> +#errors +(1,10): XXX-undefined-error +(1,16): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> + +#data +<span></caption><span> +#errors +(1,16): XXX-undefined-error +(1,22): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><caption><span> +#errors +(1,15): unexpected-start-tag +(1,21): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><col><span> +#errors +(1,11): unexpected-start-tag +(1,17): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><colgroup><span> +#errors +(1,16): unexpected-start-tag +(1,22): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><html><span> +#errors +(1,12): non-html-root +(1,18): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><tbody><span> +#errors +(1,13): unexpected-start-tag +(1,19): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><td><span> +#errors +(1,10): unexpected-start-tag +(1,16): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><tfoot><span> +#errors +(1,13): unexpected-start-tag +(1,19): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><thead><span> +#errors +(1,13): unexpected-start-tag +(1,19): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><th><span> +#errors +(1,10): unexpected-start-tag +(1,16): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><tr><span> +#errors +(1,10): unexpected-start-tag +(1,16): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span></table><span> +#errors +(1,14): unexpected-end-tag +(1,20): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +</colgroup><col> +#errors +(1,11): XXX-undefined-error +#document-fragment +colgroup +#document +| <col> + +#data +<a><col> +#errors +(1,3): XXX-undefined-error +#document-fragment +colgroup +#document +| <col> + +#data +<caption><a> +#errors +(1,9): XXX-undefined-error +(1,12): unexpected-start-tag-implies-table-voodoo +(1,12): eof-in-table +#document-fragment +tbody +#document +| <a> + +#data +<col><a> +#errors +(1,5): XXX-undefined-error +(1,8): unexpected-start-tag-implies-table-voodoo +(1,8): eof-in-table +#document-fragment +tbody +#document +| <a> + +#data +<colgroup><a> +#errors +(1,10): XXX-undefined-error +(1,13): unexpected-start-tag-implies-table-voodoo +(1,13): eof-in-table +#document-fragment +tbody +#document +| <a> + +#data +<tbody><a> +#errors +(1,7): XXX-undefined-error +(1,10): unexpected-start-tag-implies-table-voodoo +(1,10): eof-in-table +#document-fragment +tbody +#document +| <a> + +#data +<tfoot><a> +#errors +(1,7): XXX-undefined-error +(1,10): unexpected-start-tag-implies-table-voodoo +(1,10): eof-in-table +#document-fragment +tbody +#document +| <a> + +#data +<thead><a> +#errors +(1,7): XXX-undefined-error +(1,10): unexpected-start-tag-implies-table-voodoo +(1,10): eof-in-table +#document-fragment +tbody +#document +| <a> + +#data +</table><a> +#errors +(1,8): XXX-undefined-error +(1,11): unexpected-start-tag-implies-table-voodoo +(1,11): eof-in-table +#document-fragment +tbody +#document +| <a> + +#data +<a><tr> +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +#document-fragment +tbody +#document +| <a> +| <tr> + +#data +<a><td> +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +(1,7): unexpected-cell-in-table-body +#document-fragment +tbody +#document +| <a> +| <tr> +| <td> + +#data +<a><td> +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +(1,7): unexpected-cell-in-table-body +#document-fragment +tbody +#document +| <a> +| <tr> +| <td> + +#data +<a><td> +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +(1,7): unexpected-cell-in-table-body +#document-fragment +tbody +#document +| <a> +| <tr> +| <td> + +#data +<td><table><tbody><a><tr> +#errors +(1,4): unexpected-cell-in-table-body +(1,21): unexpected-start-tag-implies-table-voodoo +(1,25): eof-in-table +#document-fragment +tbody +#document +| <tr> +| <td> +| <a> +| <table> +| <tbody> +| <tr> + +#data +</tr><td> +#errors +(1,5): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +<td><table><a><tr></tr><tr> +#errors +(1,14): unexpected-start-tag-implies-table-voodoo +(1,27): eof-in-table +#document-fragment +tr +#document +| <td> +| <a> +| <table> +| <tbody> +| <tr> +| <tr> + +#data +<caption><td> +#errors +(1,9): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +<col><td> +#errors +(1,5): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +<colgroup><td> +#errors +(1,10): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +<tbody><td> +#errors +(1,7): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +<tfoot><td> +#errors +(1,7): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +<thead><td> +#errors +(1,7): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +<tr><td> +#errors +(1,4): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +</table><td> +#errors +(1,8): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +<td><table></table><td> +#errors +#document-fragment +tr +#document +| <td> +| <table> +| <td> + +#data +<td><table></table><td> +#errors +#document-fragment +tr +#document +| <td> +| <table> +| <td> + +#data +<caption><a> +#errors +(1,9): XXX-undefined-error +(1,12): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +<col><a> +#errors +(1,5): XXX-undefined-error +(1,8): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +<colgroup><a> +#errors +(1,10): XXX-undefined-error +(1,13): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +<tbody><a> +#errors +(1,7): XXX-undefined-error +(1,10): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +<tfoot><a> +#errors +(1,7): XXX-undefined-error +(1,10): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +<th><a> +#errors +(1,4): XXX-undefined-error +(1,7): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +<thead><a> +#errors +(1,7): XXX-undefined-error +(1,10): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +<tr><a> +#errors +(1,4): XXX-undefined-error +(1,7): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +</table><a> +#errors +(1,8): XXX-undefined-error +(1,11): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +</tbody><a> +#errors +(1,8): XXX-undefined-error +(1,11): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +</td><a> +#errors +(1,5): unexpected-end-tag +(1,8): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +</tfoot><a> +#errors +(1,8): XXX-undefined-error +(1,11): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +</thead><a> +#errors +(1,8): XXX-undefined-error +(1,11): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +</th><a> +#errors +(1,5): unexpected-end-tag +(1,8): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +</tr><a> +#errors +(1,5): XXX-undefined-error +(1,8): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +<table><td><td> +#errors +(1,11): unexpected-cell-in-table-body +(1,15): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <table> +| <tbody> +| <tr> +| <td> +| <td> + +#data +</select><option> +#errors +(1,9): XXX-undefined-error +(1,17): eof-in-select +#document-fragment +select +#document +| <option> + +#data +<input><option> +#errors +(1,7): unexpected-input-in-select +(1,15): eof-in-select +#document-fragment +select +#document +| <option> + +#data +<keygen><option> +#errors +(1,8): unexpected-input-in-select +(1,16): eof-in-select +#document-fragment +select +#document +| <option> + +#data +<textarea><option> +#errors +(1,10): unexpected-input-in-select +(1,18): eof-in-select +#document-fragment +select +#document +| <option> + +#data +</html><!--abc--> +#errors +(1,7): unexpected-end-tag-after-body-innerhtml +#document-fragment +html +#document +| <head> +| <body> +| <!-- abc --> + +#data +</frameset><frame> +#errors +(1,11): unexpected-frameset-in-frameset-innerhtml +#document-fragment +frameset +#document +| <frame> + +#data +#errors +#document-fragment +html +#document +| <head> +| <body> + +#data +<head></head><script></script> +#errors +21: “script” element between “head” and “body”. +#document-fragment +html +#document +| <head> +| <script> +| <body> diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tricky01.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tricky01.dat new file mode 100644 index 0000000000..f7065214ea --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/tricky01.dat @@ -0,0 +1,334 @@ +#data +<b><p>Bold </b> Not bold</p> +Also not bold. +#errors +(1,3): expected-doctype-but-got-start-tag +(1,15): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <b> +| <p> +| <b> +| "Bold " +| " Not bold" +| " +Also not bold." + +#data +<html> +<font color=red><i>Italic and Red<p>Italic and Red </font> Just italic.</p> Italic only.</i> Plain +<p>I should not be red. <font color=red>Red. <i>Italic and red.</p> +<p>Italic and red. </i> Red.</font> I should not be red.</p> +<b>Bold <i>Bold and italic</b> Only Italic </i> Plain +#errors +(1,6): expected-doctype-but-got-start-tag +(2,58): adoption-agency-1.3 +(3,67): unexpected-end-tag +(4,23): adoption-agency-1.3 +(4,35): adoption-agency-1.3 +(5,30): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <font> +| color="red" +| <i> +| "Italic and Red" +| <i> +| <p> +| <font> +| color="red" +| "Italic and Red " +| " Just italic." +| " Italic only." +| " Plain +" +| <p> +| "I should not be red. " +| <font> +| color="red" +| "Red. " +| <i> +| "Italic and red." +| <font> +| color="red" +| <i> +| " +" +| <p> +| <font> +| color="red" +| <i> +| "Italic and red. " +| " Red." +| " I should not be red." +| " +" +| <b> +| "Bold " +| <i> +| "Bold and italic" +| <i> +| " Only Italic " +| " Plain" + +#data +<html><body> +<p><font size="7">First paragraph.</p> +<p>Second paragraph.</p></font> +<b><p><i>Bold and Italic</b> Italic</p> +#errors +(1,6): expected-doctype-but-got-start-tag +(2,38): unexpected-end-tag +(4,28): adoption-agency-1.3 +(4,28): adoption-agency-1.3 +(4,39): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| " +" +| <p> +| <font> +| size="7" +| "First paragraph." +| <font> +| size="7" +| " +" +| <p> +| "Second paragraph." +| " +" +| <b> +| <p> +| <b> +| <i> +| "Bold and Italic" +| <i> +| " Italic" + +#data +<html> +<dl> +<dt><b>Boo +<dd>Goo? +</dl> +</html> +#errors +(1,6): expected-doctype-but-got-start-tag +(4,4): end-tag-too-early +(5,5): end-tag-too-early +(6,7): expected-one-end-tag-but-got-another +#document +| <html> +| <head> +| <body> +| <dl> +| " +" +| <dt> +| <b> +| "Boo +" +| <dd> +| <b> +| "Goo? +" +| <b> +| " +" + +#data +<html><body> +<label><a><div>Hello<div>World</div></a></label> +</body></html> +#errors +(1,6): expected-doctype-but-got-start-tag +(2,40): adoption-agency-1.3 +(2,48): unexpected-end-tag +(3,7): expected-one-end-tag-but-got-another +#document +| <html> +| <head> +| <body> +| " +" +| <label> +| <a> +| <div> +| <a> +| "Hello" +| <div> +| "World" +| " +" + +#data +<table><center> <font>a</center> <img> <tr><td> </td> </tr> </table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,15): foster-parenting-start-tag +(1,16): foster-parenting-character +(1,22): foster-parenting-start-tag +(1,23): foster-parenting-character +(1,32): foster-parenting-end-tag +(1,32): end-tag-too-early +(1,33): foster-parenting-character +(1,38): foster-parenting-start-tag +#document +| <html> +| <head> +| <body> +| <center> +| " " +| <font> +| "a" +| <font> +| <img> +| " " +| <table> +| " " +| <tbody> +| <tr> +| <td> +| " " +| " " +| " " + +#data +<table><tr><p><a><p>You should see this text. +#errors +(1,7): expected-doctype-but-got-start-tag +(1,14): unexpected-start-tag-implies-table-voodoo +(1,17): unexpected-start-tag-implies-table-voodoo +(1,20): unexpected-start-tag-implies-table-voodoo +(1,20): closing-non-current-p-element +(1,21): foster-parenting-character +(1,22): foster-parenting-character +(1,23): foster-parenting-character +(1,24): foster-parenting-character +(1,25): foster-parenting-character +(1,26): foster-parenting-character +(1,27): foster-parenting-character +(1,28): foster-parenting-character +(1,29): foster-parenting-character +(1,30): foster-parenting-character +(1,31): foster-parenting-character +(1,32): foster-parenting-character +(1,33): foster-parenting-character +(1,34): foster-parenting-character +(1,35): foster-parenting-character +(1,36): foster-parenting-character +(1,37): foster-parenting-character +(1,38): foster-parenting-character +(1,39): foster-parenting-character +(1,40): foster-parenting-character +(1,41): foster-parenting-character +(1,42): foster-parenting-character +(1,43): foster-parenting-character +(1,44): foster-parenting-character +(1,45): foster-parenting-character +(1,45): eof-in-table +#document +| <html> +| <head> +| <body> +| <p> +| <a> +| <p> +| <a> +| "You should see this text." +| <table> +| <tbody> +| <tr> + +#data +<TABLE> +<TR> +<CENTER><CENTER><TD></TD></TR><TR> +<FONT> +<TABLE><tr></tr></TABLE> +</P> +<a></font><font></a> +This page contains an insanely badly-nested tag sequence. +#errors +(1,7): expected-doctype-but-got-start-tag +(3,8): unexpected-start-tag-implies-table-voodoo +(3,16): unexpected-start-tag-implies-table-voodoo +(4,6): unexpected-start-tag-implies-table-voodoo +(5,7): unexpected-start-tag-implies-end-tag +(7,10): adoption-agency-1.3 +(7,20): adoption-agency-1.3 +(8,57): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <center> +| <center> +| <font> +| " +" +| <table> +| " +" +| <tbody> +| <tr> +| " +" +| <td> +| <tr> +| " +" +| <table> +| <tbody> +| <tr> +| <font> +| " +" +| <p> +| " +" +| <a> +| <a> +| <font> +| <font> +| " +This page contains an insanely badly-nested tag sequence." + +#data +<html> +<body> +<b><nobr><div>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the +nobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre> +</body> +</html> +#errors +(1,6): expected-doctype-but-got-start-tag +(3,56): adoption-agency-1.3 +(4,58): adoption-agency-1.3 +(5,7): expected-one-end-tag-but-got-another +#document +| <html> +| <head> +| <body> +| " +" +| <b> +| <nobr> +| <div> +| <b> +| <nobr> +| "This text is in a div inside a nobr" +| "More text that should not be in the nobr, i.e., the +nobr should have closed the div inside it implicitly. " +| <pre> +| "A pre tag outside everything else." +| " + +" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/webkit01.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/webkit01.dat new file mode 100644 index 0000000000..c480accd95 --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/webkit01.dat @@ -0,0 +1,705 @@ +#data +Test +#errors +(1,4): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "Test" + +#data +<div></div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> + +#data +<div>Test</div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| "Test" + +#data +<di +#errors +(1,3): eof-in-tag-name +(1,3): expected-doctype-but-got-eof +#document +| <html> +| <head> +| <body> + +#data +<div>Hello</div> +<script> +console.log("PASS"); +</script> +<div>Bye</div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| "Hello" +| " +" +| <script> +| " +console.log("PASS"); +" +| " +" +| <div> +| "Bye" + +#data +<div foo="bar">Hello</div> +#errors +(1,15): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| foo="bar" +| "Hello" + +#data +<div>Hello</div> +<script> +console.log("FOO<span>BAR</span>BAZ"); +</script> +<div>Bye</div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| "Hello" +| " +" +| <script> +| " +console.log("FOO<span>BAR</span>BAZ"); +" +| " +" +| <div> +| "Bye" + +#data +<foo bar="baz"></foo><potato quack="duck"></potato> +#errors +(1,15): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <foo> +| bar="baz" +| <potato> +| quack="duck" + +#data +<foo bar="baz"><potato quack="duck"></potato></foo> +#errors +(1,15): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <foo> +| bar="baz" +| <potato> +| quack="duck" + +#data +<foo></foo bar="baz"><potato></potato quack="duck"> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,21): attributes-in-end-tag +(1,51): attributes-in-end-tag +#document +| <html> +| <head> +| <body> +| <foo> +| <potato> + +#data +</ tttt> +#errors +(1,2): expected-closing-tag-but-got-char +(1,8): expected-doctype-but-got-eof +#document +| <!-- tttt --> +| <html> +| <head> +| <body> + +#data +<div FOO ><img><img></div> +#errors +(1,10): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| foo="" +| <img> +| <img> + +#data +<p>Test</p<p>Test2</p> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,13): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <p> +| "TestTest2" + +#data +<rdar://problem/6869687> +#errors +(1,7): unexpected-character-after-solidus-in-tag +(1,8): unexpected-character-after-solidus-in-tag +(1,16): unexpected-character-after-solidus-in-tag +(1,24): expected-doctype-but-got-start-tag +(1,24): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <rdar:> +| 6869687="" +| problem="" + +#data +<A>test< /A> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,8): expected-tag-name +(1,12): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| "test< /A>" + +#data +< +#errors +(1,4): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "<" + +#data +<body foo='bar'><body foo='baz' yo='mama'> +#errors +(1,16): expected-doctype-but-got-start-tag +(1,42): unexpected-start-tag +#document +| <html> +| <head> +| <body> +| foo="bar" +| yo="mama" + +#data +<body></br foo="bar"></body> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,21): attributes-in-end-tag +(1,21): unexpected-end-tag-treated-as +#document +| <html> +| <head> +| <body> +| <br> + +#data +<bdy><br foo="bar"></body> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,26): expected-one-end-tag-but-got-another +#document +| <html> +| <head> +| <body> +| <bdy> +| <br> +| foo="bar" + +#data +<body></body></br foo="bar"> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,28): attributes-in-end-tag +(1,28): unexpected-end-tag-after-body +(1,28): unexpected-end-tag-treated-as +#document +| <html> +| <head> +| <body> +| <br> + +#data +<bdy></body><br foo="bar"> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,12): expected-one-end-tag-but-got-another +(1,26): unexpected-start-tag-after-body +(1,26): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <bdy> +| <br> +| foo="bar" + +#data +<html><body></body></html><!-- Hi there --> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <!-- Hi there --> + +#data +<html><body></body></html>x<!-- Hi there --> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,27): expected-eof-but-got-char +#document +| <html> +| <head> +| <body> +| "x" +| <!-- Hi there --> + +#data +<html><body></body></html>x<!-- Hi there --></html><!-- Again --> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,27): expected-eof-but-got-char +#document +| <html> +| <head> +| <body> +| "x" +| <!-- Hi there --> +| <!-- Again --> + +#data +<html><body></body></html>x<!-- Hi there --></body></html><!-- Again --> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,27): expected-eof-but-got-char +#document +| <html> +| <head> +| <body> +| "x" +| <!-- Hi there --> +| <!-- Again --> + +#data +<html><body><ruby><div><rp>xx</rp></div></ruby></body></html> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,27): XXX-undefined-error +#document +| <html> +| <head> +| <body> +| <ruby> +| <div> +| <rp> +| "xx" + +#data +<html><body><ruby><div><rt>xx</rt></div></ruby></body></html> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,27): XXX-undefined-error +#document +| <html> +| <head> +| <body> +| <ruby> +| <div> +| <rt> +| "xx" + +#data +<html><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--></html><!--5--><noframes>C</noframes><!--6--> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <frameset> +| <!-- 1 --> +| <noframes> +| "A" +| <!-- 2 --> +| <!-- 3 --> +| <noframes> +| "B" +| <!-- 4 --> +| <noframes> +| "C" +| <!-- 5 --> +| <!-- 6 --> + +#data +<select><option>A<select><option>B<select><option>C<select><option>D<select><option>E<select><option>F<select><option>G<select> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,25): unexpected-select-in-select +(1,59): unexpected-select-in-select +(1,93): unexpected-select-in-select +(1,127): unexpected-select-in-select +(1,127): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <select> +| <option> +| "A" +| <option> +| "B" +| <select> +| <option> +| "C" +| <option> +| "D" +| <select> +| <option> +| "E" +| <option> +| "F" +| <select> +| <option> +| "G" + +#data +<dd><dd><dt><dt><dd><li><li> +#errors +(1,4): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <dd> +| <dd> +| <dt> +| <dt> +| <dd> +| <li> +| <li> + +#data +<div><b></div><div><nobr>a<nobr> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,14): end-tag-too-early +(1,32): unexpected-start-tag-implies-end-tag +(1,32): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <b> +| <div> +| <b> +| <nobr> +| "a" +| <nobr> + +#data +<head></head> +<body></body> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| " +" +| <body> + +#data +<head></head> <style></style>ddd +#errors +(1,6): expected-doctype-but-got-start-tag +(1,21): unexpected-start-tag-out-of-my-head +#document +| <html> +| <head> +| <style> +| " " +| <body> +| "ddd" + +#data +<kbd><table></kbd><col><select><tr> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,18): unexpected-end-tag-implies-table-voodoo +(1,18): unexpected-end-tag +(1,31): unexpected-start-tag-implies-table-voodoo +(1,35): unexpected-table-element-start-tag-in-select-in-table +(1,35): eof-in-table +#document +| <html> +| <head> +| <body> +| <kbd> +| <select> +| <table> +| <colgroup> +| <col> +| <tbody> +| <tr> + +#data +<kbd><table></kbd><col><select><tr></table><div> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,18): unexpected-end-tag-implies-table-voodoo +(1,18): unexpected-end-tag +(1,31): unexpected-start-tag-implies-table-voodoo +(1,35): unexpected-table-element-start-tag-in-select-in-table +(1,48): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <kbd> +| <select> +| <table> +| <colgroup> +| <col> +| <tbody> +| <tr> +| <div> + +#data +<a><li><style></style><title></title></a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,41): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <a> +| <li> +| <a> +| <style> +| <title> + +#data +<font></p><p><meta><title></title></font> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,10): unexpected-end-tag +(1,41): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <font> +| <p> +| <p> +| <font> +| <meta> +| <title> + +#data +<a><center><title></title><a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,29): unexpected-start-tag-implies-end-tag +(1,29): adoption-agency-1.3 +(1,29): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <center> +| <a> +| <title> +| <a> + +#data +<svg><title><div> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,17): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| <svg title> +| <div> + +#data +<svg><title><rect><div> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,23): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| <svg title> +| <rect> +| <div> + +#data +<svg><title><svg><div> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,22): unexpected-html-element-in-foreign-content +(1,22): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| <svg title> +| <svg svg> +| <div> + +#data +<img <="" FAIL> +#errors +(1,6): invalid-character-in-attribute-name +(1,15): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <img> +| <="" +| fail="" + +#data +<ul><li><div id='foo'/>A</li><li>B<div>C</div></li></ul> +#errors +(1,4): expected-doctype-but-got-start-tag +(1,23): non-void-element-with-trailing-solidus +(1,29): end-tag-too-early +#document +| <html> +| <head> +| <body> +| <ul> +| <li> +| <div> +| id="foo" +| "A" +| <li> +| "B" +| <div> +| "C" + +#data +<svg><em><desc></em> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,9): unexpected-html-element-in-foreign-content +(1,20): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <svg svg> +| <em> +| <desc> + +#data +<svg><tfoot></mi><td> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,17): unexpected-end-tag +(1,17): unexpected-end-tag +(1,21): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| <svg tfoot> +| <svg td> + +#data +<math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <math math> +| <math mrow> +| <math mrow> +| <math mn> +| "1" +| <math mi> +| "a" + +#data +<!doctype html><input type="hidden"><frameset> +#errors +(1,46): unexpected-start-tag +(1,46): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!doctype html><input type="button"><frameset> +#errors +(1,46): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <input> +| type="button" diff --git a/parser/htmlparser/tests/mochitest/html5lib_tree_construction/webkit02.dat b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/webkit02.dat new file mode 100644 index 0000000000..647fcfd41f --- /dev/null +++ b/parser/htmlparser/tests/mochitest/html5lib_tree_construction/webkit02.dat @@ -0,0 +1,116 @@ +#data +<foo bar=qux/> +#errors +(1,14): expected-doctype-but-got-start-tag +(1,14): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <foo> +| bar="qux/" + +#data +<p id="status"><noscript><strong>A</strong></noscript><span>B</span></p> +#errors +(1,15): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <p> +| id="status" +| <noscript> +| "<strong>A</strong>" +| <span> +| "B" + +#data +<div><sarcasm><div></div></sarcasm></div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| <sarcasm> +| <div> + +#data +<html><body><img src="" border="0" alt="><div>A</div></body></html> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,67): eof-in-attribute-value-double-quote +#document +| <html> +| <head> +| <body> + +#data +<table><td></tbody>A +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,20): foster-parenting-character +(1,20): eof-in-table +#document +| <html> +| <head> +| <body> +| "A" +| <table> +| <tbody> +| <tr> +| <td> + +#data +<table><td></thead>A +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,19): XXX-undefined-error +(1,20): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| "A" + +#data +<table><td></tfoot>A +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,19): XXX-undefined-error +(1,20): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| "A" + +#data +<table><thead><td></tbody>A +#errors +(1,7): expected-doctype-but-got-start-tag +(1,18): unexpected-cell-in-table-body +(1,26): XXX-undefined-error +(1,27): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <thead> +| <tr> +| <td> +| "A" |