diff options
author | Rupinder Singh Khokhar <rsk1coder99@gmail.com> | 2014-06-11 09:13:22 +0530 |
---|---|---|
committer | Rupinder Singh Khokhar <rsk1coder99@gmail.com> | 2014-06-11 09:17:12 +0530 |
commit | 42543b07806ca9b9bec73eda91afa657f57c64bc (patch) | |
tree | b08ae0c9371865989ab6a9abb025346a3dbd1204 /test/data/tree-construction | |
parent | 7630ae893aad7fbb168d073f405cfa2110ccb530 (diff) | |
download | libhubbub-42543b07806ca9b9bec73eda91afa657f57c64bc.tar.gz libhubbub-42543b07806ca9b9bec73eda91afa657f57c64bc.tar.bz2 |
Adding the latest test files without fixing the INDEXes or the test interfacesrupindersingh/test
Diffstat (limited to 'test/data/tree-construction')
49 files changed, 14891 insertions, 1225 deletions
diff --git a/test/data/tree-construction/INDEX b/test/data/tree-construction/INDEX index c994b5a..7e7e38b 100644 --- a/test/data/tree-construction/INDEX +++ b/test/data/tree-construction/INDEX @@ -2,19 +2,57 @@ # # Test Description -tests1.dat html5lib tests -tests2.dat html5lib tests -tests3.dat html5lib tests -tests4.dat html5lib tests -tests5.dat html5lib tests -tests6.dat html5lib tests -tests7.dat html5lib tests -tests8.dat html5lib tests -tests9.dat html5lib tests -tests10.dat html5lib tests -tests11.dat html5lib tests -tests12.dat html5lib tests -after-after-body.dat Tests "after after body" mode -after-after-frameset.dat Tests "after after frameset" mode -after-body.dat Tests "after body" mode -regression.dat Regression tests +#adoption01.dat NA +#adoption02.dat NA +#after-after-body.dat NA +#after-after-frameset.dat NA +#after-body.dat NA +#comments01.dat NA +#doctype01.dat NA +#domjs-unsafe.dat NA +#entities01.dat NA +#entities02.dat NA +#html5test-com.dat NA +#inbody01.dat NA +#isindex.dat NA +#main-element.dat NA +#pending-spec-changes.dat NA +#pending-spec-changes-plain-text-unsafe.dat NA +#plain-text-unsafe.dat NA +#README.md NA +#regression.dat NA +#scriptdata01.dat NA +#scripted/adoption01.dat NA +#scripted/ark.dat NA +#scripted/webkit01.dat NA +#tables01.dat NA +#template.dat NA +#tests10.dat NA +#tests11.dat NA +#tests12.dat NA +#tests14.dat NA +#tests15.dat NA +#tests16.dat NA +#tests17.dat NA +#tests18.dat NA +#tests19.dat NA +#tests1.dat NA +#tests20.dat NA +#tests21.dat NA +#tests22.dat NA +#tests23.dat NA +#tests24.dat NA +#tests25.dat NA +#tests26.dat NA +#tests2.dat NA +#tests3.dat NA +#tests4.dat NA +#tests5.dat NA +#tests6.dat NA +#tests7.dat NA +#tests8.dat NA +#tests9.dat NA +#tests_innerHTML_1.dat NA +#tricky01.dat NA +#webkit01.dat NA +#webkit02.dat NA diff --git a/test/data/tree-construction/README.md b/test/data/tree-construction/README.md new file mode 100644 index 0000000..bc740ad --- /dev/null +++ b/test/data/tree-construction/README.md @@ -0,0 +1,89 @@ +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", 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 this line +is present the "\#data" must be parsed using the HTML fragment parsing +algorithm with the context element as context. + +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.) + +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/test/data/tree-construction/adoption01.dat b/test/data/tree-construction/adoption01.dat new file mode 100644 index 0000000..2e1127e --- /dev/null +++ b/test/data/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/test/data/tree-construction/adoption02.dat b/test/data/tree-construction/adoption02.dat new file mode 100644 index 0000000..e54d803 --- /dev/null +++ b/test/data/tree-construction/adoption02.dat @@ -0,0 +1,39 @@ +#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> diff --git a/test/data/tree-construction/comments01.dat b/test/data/tree-construction/comments01.dat new file mode 100644 index 0000000..35ec6cc --- /dev/null +++ b/test/data/tree-construction/comments01.dat @@ -0,0 +1,178 @@ +#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 +(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/test/data/tree-construction/doctype01.dat b/test/data/tree-construction/doctype01.dat new file mode 100644 index 0000000..cec6638 --- /dev/null +++ b/test/data/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/test/data/tree-construction/domjs-unsafe.dat b/test/data/tree-construction/domjs-unsafe.dat Binary files differnew file mode 100644 index 0000000..34b4e62 --- /dev/null +++ b/test/data/tree-construction/domjs-unsafe.dat diff --git a/test/data/tree-construction/entities01.dat b/test/data/tree-construction/entities01.dat new file mode 100644 index 0000000..20d53a0 --- /dev/null +++ b/test/data/tree-construction/entities01.dat @@ -0,0 +1,723 @@ +#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> +| "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> +| "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> +| "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 +#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 +(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> +| "FOOZOO" + +#data +FOOZOO +#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 +#document +| <html> +| <head> +| <body> +| "FOOôˆŸ”ZOO" + +#data +FOOZOO +#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/test/data/tree-construction/entities02.dat b/test/data/tree-construction/entities02.dat new file mode 100644 index 0000000..f117f06 --- /dev/null +++ b/test/data/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/test/data/tree-construction/html5test-com.dat b/test/data/tree-construction/html5test-com.dat new file mode 100644 index 0000000..8c6ec40 --- /dev/null +++ b/test/data/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/test/data/tree-construction/inbody01.dat b/test/data/tree-construction/inbody01.dat new file mode 100644 index 0000000..10f6520 --- /dev/null +++ b/test/data/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/test/data/tree-construction/isindex.dat b/test/data/tree-construction/isindex.dat new file mode 100644 index 0000000..42ef997 --- /dev/null +++ b/test/data/tree-construction/isindex.dat @@ -0,0 +1,47 @@ +#data +<isindex> +#errors +(1,9): expected-doctype-but-got-start-tag +(1,9): deprecated-tag +#document +| <html> +| <head> +| <body> +| <form> +| <hr> +| <label> +| "This is a searchable index. Enter search keywords: " +| <input> +| name="isindex" +| <hr> + +#data +<isindex name="A" action="B" prompt="C" foo="D"> +#errors +(1,48): expected-doctype-but-got-start-tag +(1,48): deprecated-tag +#document +| <html> +| <head> +| <body> +| <form> +| action="B" +| <hr> +| <label> +| "C" +| <input> +| foo="D" +| name="isindex" +| <hr> + +#data +<form><isindex> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,15): deprecated-tag +(1,15): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <form> diff --git a/test/data/tree-construction/main-element.dat b/test/data/tree-construction/main-element.dat new file mode 100644 index 0000000..0d2102e --- /dev/null +++ b/test/data/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/test/data/tree-construction/pending-spec-changes-plain-text-unsafe.dat b/test/data/tree-construction/pending-spec-changes-plain-text-unsafe.dat Binary files differnew file mode 100644 index 0000000..3ee8cec --- /dev/null +++ b/test/data/tree-construction/pending-spec-changes-plain-text-unsafe.dat diff --git a/test/data/tree-construction/pending-spec-changes.dat b/test/data/tree-construction/pending-spec-changes.dat new file mode 100644 index 0000000..1647d7f --- /dev/null +++ b/test/data/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/test/data/tree-construction/plain-text-unsafe.dat b/test/data/tree-construction/plain-text-unsafe.dat Binary files differnew file mode 100644 index 0000000..f40dd57 --- /dev/null +++ b/test/data/tree-construction/plain-text-unsafe.dat diff --git a/test/data/tree-construction/scriptdata01.dat b/test/data/tree-construction/scriptdata01.dat new file mode 100644 index 0000000..710f541 --- /dev/null +++ b/test/data/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/test/data/tree-construction/scripted/adoption01.dat b/test/data/tree-construction/scripted/adoption01.dat new file mode 100644 index 0000000..4e08d0e --- /dev/null +++ b/test/data/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/test/data/tree-construction/scripted/ark.dat b/test/data/tree-construction/scripted/ark.dat new file mode 100644 index 0000000..acbac41 --- /dev/null +++ b/test/data/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/test/data/tree-construction/scripted/webkit01.dat b/test/data/tree-construction/scripted/webkit01.dat new file mode 100644 index 0000000..ef4a41c --- /dev/null +++ b/test/data/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/test/data/tree-construction/tables01.dat b/test/data/tree-construction/tables01.dat new file mode 100644 index 0000000..f0caaa3 --- /dev/null +++ b/test/data/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/test/data/tree-construction/template.dat b/test/data/tree-construction/template.dat new file mode 100644 index 0000000..3ae40c3 --- /dev/null +++ b/test/data/tree-construction/template.dat @@ -0,0 +1,1320 @@ +#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></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><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> diff --git a/test/data/tree-construction/tests1.dat b/test/data/tree-construction/tests1.dat index 70189ba..f12e871 100644 --- a/test/data/tree-construction/tests1.dat +++ b/test/data/tree-construction/tests1.dat @@ -1,7 +1,7 @@ #data Test #errors -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. +(1,0): expected-doctype-but-got-chars #document | <html> | <head> @@ -11,7 +11,7 @@ Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. #data <p>One<p>Two #errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. +(1,3): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -24,7 +24,7 @@ Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. #data Line1<br>Line2<br>Line3<br>Line4 #errors -Line: 1 Col: 5 Unexpected non-space characters. Expected DOCTYPE. +(1,0): expected-doctype-but-got-chars #document | <html> | <head> @@ -40,7 +40,7 @@ Line: 1 Col: 5 Unexpected non-space characters. Expected DOCTYPE. #data <html> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -49,7 +49,7 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <head> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -58,7 +58,7 @@ Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. #data <body> #errors -Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -67,7 +67,7 @@ Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. #data <html><head> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -76,7 +76,7 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <html><head></head> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -85,7 +85,7 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <html><head></head><body> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -94,7 +94,7 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <html><head></head><body></body> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -103,7 +103,7 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <html><head><body></body></html> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -112,9 +112,7 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <html><head></body></html> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected end tag (body). -Line: 1 Col: 26 Unexpected end tag (html). +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -123,7 +121,7 @@ Line: 1 Col: 26 Unexpected end tag (html). #data <html><head><body></html> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -132,7 +130,7 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <html><body></html> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -141,7 +139,7 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <body></html> #errors -Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -150,8 +148,7 @@ Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. #data <head></html> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end tag (html). Ignored. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -160,7 +157,7 @@ Line: 1 Col: 13 Unexpected end tag (html). Ignored. #data </head> #errors -Line: 1 Col: 7 Unexpected end tag (head). Expected DOCTYPE. +(1,7): expected-doctype-but-got-end-tag #document | <html> | <head> @@ -169,8 +166,7 @@ Line: 1 Col: 7 Unexpected end tag (head). Expected DOCTYPE. #data </body> #errors -Line: 1 Col: 7 Unexpected end tag (body). Expected DOCTYPE. -Line: 1 Col: 7 Unexpected end tag (body) after the (implied) root element. +(1,7): expected-doctype-but-got-end-tag element. #document | <html> | <head> @@ -179,8 +175,7 @@ Line: 1 Col: 7 Unexpected end tag (body) after the (implied) root element. #data </html> #errors -Line: 1 Col: 7 Unexpected end tag (html). Expected DOCTYPE. -Line: 1 Col: 7 Unexpected end tag (html) after the (implied) root element. +(1,7): expected-doctype-but-got-end-tag element. #document | <html> | <head> @@ -189,10 +184,10 @@ Line: 1 Col: 7 Unexpected end tag (html) after the (implied) root element. #data <b><table><td><i></table> #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 25 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. +(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> @@ -207,11 +202,11 @@ Line: 1 Col: 25 Expected closing tag. Unexpected end of file. #data <b><table><td></b><i></table>X #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 18 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 29 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 30 Expected closing tag. Unexpected end of file. +(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> @@ -227,9 +222,9 @@ Line: 1 Col: 30 Expected closing tag. Unexpected end of file. #data <h1>Hello<h2>World #errors -4: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>â€. -13: Heading cannot be a child of another heading. -18: End of file seen and there were open elements. +(1,4): expected-doctype-but-got-start-tag +(1,13): unexpected-start-tag +(1,18): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -242,10 +237,10 @@ Line: 1 Col: 30 Expected closing tag. Unexpected end of file. #data <a><p>X<a>Y</a>Z</p></a> #errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 10 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 24 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. +(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> @@ -259,26 +254,44 @@ Line: 1 Col: 24 End tag (a) violates step 1, paragraph 1 of the adoption agency | "Z" #data -<b><button></b></button></b> +<b><button>foo</b>bar #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 15 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. +(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 -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end tag (p). Ignored. -Line: 1 Col: 24 Unexpected end tag (p). Ignored. -Line: 1 Col: 28 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 34 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 35 Expected closing tag. Unexpected end of file. +(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> @@ -294,8 +307,8 @@ Line: 1 Col: 35 Expected closing tag. Unexpected end of file. #data <script><div></script></div><title><p></title><p><p> #errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 28 Unexpected end tag (div). Ignored. +(1,8): expected-doctype-but-got-start-tag +(1,28): unexpected-end-tag #document | <html> | <head> @@ -310,10 +323,10 @@ Line: 1 Col: 28 Unexpected end tag (div). Ignored. #data <!--><div>--<!--> #errors -Line: 1 Col: 5 Incorrect comment. -Line: 1 Col: 10 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 17 Incorrect comment. -Line: 1 Col: 17 Expected closing tag. Unexpected end of file. +(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> @@ -326,8 +339,8 @@ Line: 1 Col: 17 Expected closing tag. Unexpected end of file. #data <p><hr></p> #errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end tag (p). Ignored. +(1,3): expected-doctype-but-got-start-tag +(1,11): unexpected-end-tag #document | <html> | <head> @@ -339,12 +352,12 @@ Line: 1 Col: 11 Unexpected end tag (p). Ignored. #data <select><b><option><select><option></b></select>X #errors -Line: 1 Col: 8 Unexpected start tag (select). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected start tag token (b) in the select phase. Ignored. -Line: 1 Col: 27 Unexpected select start tag in the select phase treated as select end tag. -Line: 1 Col: 39 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 48 Unexpected end tag (select). Ignored. -Line: 1 Col: 49 Expected closing tag. Unexpected end of file. +(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> @@ -357,16 +370,15 @@ Line: 1 Col: 49 Expected closing tag. Unexpected end of file. #data <a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y #errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 40 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 43 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 43 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 43 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 51 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 63 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 64 Expected closing tag. Unexpected end of file. +(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> @@ -390,10 +402,10 @@ Line: 1 Col: 64 Expected closing tag. Unexpected end of file. #data <a X>0<b>1<a Y>2 #errors -Line: 1 Col: 5 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 15 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 16 Expected closing tag. Unexpected end of file. +(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> @@ -411,14 +423,23 @@ Line: 1 Col: 16 Expected closing tag. Unexpected end of file. #data <!-----><font><div>hello<table>excite!<b>me!<th><i>please!</tr><!--X--> #errors -Line: 1 Col: 7 Unexpected '-' after '--' found in comment. -Line: 1 Col: 14 Unexpected start tag (font). Expected DOCTYPE. -Line: 1 Col: 38 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 41 Unexpected start tag (b) in table context caused voodoo mode. -Line: 1 Col: 48 Unexpected implied end tag (b) in the table phase. -Line: 1 Col: 48 Unexpected table cell start tag (th) in the table body phase. -Line: 1 Col: 63 Got table cell end tag (th) while required end tags are missing. -Line: 1 Col: 71 Unexpected end of file. Expected table content. +(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> @@ -440,7 +461,6 @@ Line: 1 Col: 71 Unexpected end of file. Expected table content. #data <!DOCTYPE html><li>hello<li>world<ul>how<li>do</ul>you</body><!--do--> #errors -Line: 1 Col: 61 Unexpected end tag (li). Missing end tag (body). #document | <!DOCTYPE html> | <html> @@ -460,8 +480,8 @@ Line: 1 Col: 61 Unexpected end tag (li). Missing end tag (body). #data <!DOCTYPE html>A<option>B<optgroup>C<select>D</option>E #errors -Line: 1 Col: 54 Unexpected end tag (option) in the select phase. Ignored. -Line: 1 Col: 55 Expected closing tag. Unexpected end of file. +(1,54): unexpected-end-tag-in-select +(1,55): eof-in-select #document | <!DOCTYPE html> | <html> @@ -478,8 +498,8 @@ Line: 1 Col: 55 Expected closing tag. Unexpected end of file. #data < #errors -Line: 1 Col: 1 Expected tag name. Got something else instead -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. +(1,1): expected-tag-name +(1,1): expected-doctype-but-got-chars #document | <html> | <head> @@ -489,8 +509,8 @@ Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #data <# #errors -Line: 1 Col: 1 Expected tag name. Got something else instead -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. +(1,1): expected-tag-name +(1,1): expected-doctype-but-got-chars #document | <html> | <head> @@ -500,8 +520,8 @@ Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #data </ #errors -Line: 1 Col: 2 Expected closing tag. Unexpected end of file. -Line: 1 Col: 2 Unexpected non-space characters. Expected DOCTYPE. +(1,2): expected-closing-tag-but-got-eof +(1,2): expected-doctype-but-got-chars #document | <html> | <head> @@ -511,8 +531,8 @@ Line: 1 Col: 2 Unexpected non-space characters. Expected DOCTYPE. #data </# #errors -Line: 1 Col: 2 Expected closing tag. Unexpected character '#' found. -Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. +(1,2): expected-closing-tag-but-got-char +(1,3): expected-doctype-but-got-eof #document | <!-- # --> | <html> @@ -522,8 +542,8 @@ Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. #data <? #errors -Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) -Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE. +(1,1): expected-tag-name-but-got-question-mark +(1,2): expected-doctype-but-got-eof #document | <!-- ? --> | <html> @@ -533,8 +553,8 @@ Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE. #data <?# #errors -Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) -Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. +(1,1): expected-tag-name-but-got-question-mark +(1,3): expected-doctype-but-got-eof #document | <!-- ?# --> | <html> @@ -544,8 +564,8 @@ Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. #data <! #errors -Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found. -Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE. +(1,2): expected-dashes-or-doctype +(1,2): expected-doctype-but-got-eof #document | <!-- --> | <html> @@ -555,8 +575,8 @@ Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE. #data <!# #errors -Line: 1 Col: 3 Expected '--' or 'DOCTYPE'. Not found. -Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. +(1,2): expected-dashes-or-doctype +(1,3): expected-doctype-but-got-eof #document | <!-- # --> | <html> @@ -566,8 +586,8 @@ Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. #data <?COMMENT?> #errors -Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) -Line: 1 Col: 11 Unexpected End of file. Expected DOCTYPE. +(1,1): expected-tag-name-but-got-question-mark +(1,11): expected-doctype-but-got-eof #document | <!-- ?COMMENT? --> | <html> @@ -577,8 +597,8 @@ Line: 1 Col: 11 Unexpected End of file. Expected DOCTYPE. #data <!COMMENT> #errors -Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found. -Line: 1 Col: 10 Unexpected End of file. Expected DOCTYPE. +(1,2): expected-dashes-or-doctype +(1,10): expected-doctype-but-got-eof #document | <!-- COMMENT --> | <html> @@ -588,8 +608,8 @@ Line: 1 Col: 10 Unexpected End of file. Expected DOCTYPE. #data </ COMMENT > #errors -Line: 1 Col: 2 Expected closing tag. Unexpected character ' ' found. -Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE. +(1,2): expected-closing-tag-but-got-char +(1,12): expected-doctype-but-got-eof #document | <!-- COMMENT --> | <html> @@ -599,8 +619,8 @@ Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE. #data <?COM--MENT?> #errors -Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) -Line: 1 Col: 13 Unexpected End of file. Expected DOCTYPE. +(1,1): expected-tag-name-but-got-question-mark +(1,13): expected-doctype-but-got-eof #document | <!-- ?COM--MENT? --> | <html> @@ -610,8 +630,8 @@ Line: 1 Col: 13 Unexpected End of file. Expected DOCTYPE. #data <!COM--MENT> #errors -Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found. -Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE. +(1,2): expected-dashes-or-doctype +(1,12): expected-doctype-but-got-eof #document | <!-- COM--MENT --> | <html> @@ -621,8 +641,8 @@ Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE. #data </ COM--MENT > #errors -Line: 1 Col: 2 Expected closing tag. Unexpected character ' ' found. -Line: 1 Col: 14 Unexpected End of file. Expected DOCTYPE. +(1,2): expected-closing-tag-but-got-char +(1,14): expected-doctype-but-got-eof #document | <!-- COM--MENT --> | <html> @@ -632,7 +652,7 @@ Line: 1 Col: 14 Unexpected End of file. Expected DOCTYPE. #data <!DOCTYPE html><style> EOF #errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (style). +(1,26): expected-named-closing-tag-but-got-eof #document | <!DOCTYPE html> | <html> @@ -644,21 +664,22 @@ Line: 1 Col: 26 Unexpected end of file. Expected end tag (style). #data <!DOCTYPE html><script> <!-- </script> --> </script> EOF #errors +(1,52): unexpected-end-tag #document | <!DOCTYPE html> | <html> | <head> | <script> -| " <!-- </script> --> " +| " <!-- " | " " | <body> -| "EOF" +| "--> EOF" #data <b><p></b>TEST #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 10 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. +(1,3): expected-doctype-but-got-start-tag +(1,10): adoption-agency-1.3 #document | <html> | <head> @@ -671,9 +692,9 @@ Line: 1 Col: 10 End tag (b) violates step 1, paragraph 3 of the adoption agency #data <p id=a><b><p id=b></b>TEST #errors -Line: 1 Col: 8 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected end tag (p). Ignored. -Line: 1 Col: 23 End tag (b) violates step 1, paragraph 2 of the adoption agency algorithm. +(1,8): expected-doctype-but-got-start-tag +(1,19): unexpected-end-tag +(1,23): adoption-agency-1.2 #document | <html> | <head> @@ -688,10 +709,10 @@ Line: 1 Col: 23 End tag (b) violates step 1, paragraph 2 of the adoption agency #data <b id=a><p><b id=b></p></b>TEST #errors -Line: 1 Col: 8 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end tag (p). Ignored. -Line: 1 Col: 27 End tag (b) violates step 1, paragraph 2 of the adoption agency algorithm. -Line: 1 Col: 31 Expected closing tag. Unexpected end of file. +(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> @@ -706,7 +727,7 @@ Line: 1 Col: 31 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><title>U-test</title><body><div><p>Test<u></p></div></body> #errors -Line: 1 Col: 61 Unexpected end tag (p). Ignored. +(1,61): unexpected-end-tag #document | <!DOCTYPE html> | <html> @@ -722,8 +743,8 @@ Line: 1 Col: 61 Unexpected end tag (p). Ignored. #data <!DOCTYPE html><font><table></font></table></font> #errors -Line: 1 Col: 35 Unexpected end tag (font) in table context caused voodoo mode. -Line: 1 Col: 35 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm. +(1,35): unexpected-end-tag-implies-table-voodoo +(1,35): unexpected-end-tag #document | <!DOCTYPE html> | <html> @@ -735,10 +756,10 @@ Line: 1 Col: 35 End tag (font) violates step 1, paragraph 1 of the adoption agen #data <font><p>hello<b>cruel</font>world #errors -Line: 1 Col: 6 Unexpected start tag (font). Expected DOCTYPE. -Line: 1 Col: 29 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 29 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 34 Expected closing tag. Unexpected end of file. +(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> @@ -755,9 +776,9 @@ Line: 1 Col: 34 Expected closing tag. Unexpected end of file. #data <b>Test</i>Test #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 11 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,11): unexpected-end-tag +(1,15): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -768,8 +789,8 @@ Line: 1 Col: 15 Expected closing tag. Unexpected end of file. #data <b>A<cite>B<div>C #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 17 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,17): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -784,9 +805,9 @@ Line: 1 Col: 17 Expected closing tag. Unexpected end of file. #data <b>A<cite>B<div>C</cite>D #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 24 Unexpected end tag (cite). Ignored. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,24): unexpected-end-tag +(1,25): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -801,9 +822,9 @@ Line: 1 Col: 25 Expected closing tag. Unexpected end of file. #data <b>A<cite>B<div>C</b>D #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 21 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 22 Expected closing tag. Unexpected end of file. +(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> @@ -818,35 +839,9 @@ Line: 1 Col: 22 Expected closing tag. Unexpected end of file. | "D" #data -<cite><b><cite><i><cite><i><cite><i><div>X</b>TEST -#errors -Line: 1 Col: 6 Unexpected start tag (cite). Expected DOCTYPE. -Line: 1 Col: 46 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 50 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <cite> -| <b> -| <cite> -| <i> -| <cite> -| <i> -| <cite> -| <i> -| <i> -| <i> -| <i> -| <div> -| <b> -| "X" -| "TEST" - -#data #errors -Line: 1 Col: 0 Unexpected End of file. Expected DOCTYPE. +(1,0): expected-doctype-but-got-eof #document | <html> | <head> @@ -855,8 +850,8 @@ Line: 1 Col: 0 Unexpected End of file. Expected DOCTYPE. #data <DIV> #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 5 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,5): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -866,8 +861,8 @@ Line: 1 Col: 5 Expected closing tag. Unexpected end of file. #data <DIV> abc #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 9 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,9): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -878,8 +873,8 @@ Line: 1 Col: 9 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 13 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,13): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -891,8 +886,8 @@ Line: 1 Col: 13 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 17 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,17): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -905,8 +900,8 @@ Line: 1 Col: 17 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 21 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,21): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -920,8 +915,8 @@ Line: 1 Col: 21 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,25): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -936,8 +931,8 @@ Line: 1 Col: 25 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi <P> #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 29 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,29): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -953,8 +948,8 @@ Line: 1 Col: 29 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi <P> jkl #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 33 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,33): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -971,9 +966,9 @@ Line: 1 Col: 33 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi <P> jkl </B> #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 38 Expected closing tag. Unexpected end of file. +(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> @@ -992,9 +987,9 @@ Line: 1 Col: 38 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi <P> jkl </B> mno #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 42 Expected closing tag. Unexpected end of file. +(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> @@ -1014,10 +1009,10 @@ Line: 1 Col: 42 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 Expected closing tag. Unexpected end of file. +(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> @@ -1038,10 +1033,10 @@ Line: 1 Col: 47 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 51 Expected closing tag. Unexpected end of file. +(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> @@ -1063,10 +1058,10 @@ Line: 1 Col: 51 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 56 Expected closing tag. Unexpected end of file. +(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> @@ -1088,10 +1083,10 @@ Line: 1 Col: 56 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> stu #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 60 Expected closing tag. Unexpected end of file. +(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> @@ -1114,8 +1109,8 @@ Line: 1 Col: 60 Expected closing tag. Unexpected end of file. #data <test attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> #errors -Line: 1 Col: 1040 Unexpected start tag (test). Expected DOCTYPE. -Line: 1 Col: 1040 Expected closing tag. Unexpected end of file. +(1,1040): expected-doctype-but-got-start-tag +(1,1040): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1126,14 +1121,14 @@ Line: 1 Col: 1040 Expected closing tag. Unexpected end of file. #data <a href="blah">aba<table><a href="foo">br<tr><td></td></tr>x</table>aoe #errors -Line: 1 Col: 15 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 39 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 39 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 39 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 45 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 68 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 71 Expected closing tag. Unexpected end of file. - +(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> @@ -1158,10 +1153,9 @@ Line: 1 Col: 71 Expected closing tag. Unexpected end of file. #data <a href="blah">aba<table><tr><td><a href="foo">br</td></tr>x</table>aoe #errors -Line: 1 Col: 15 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 54 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 60 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 71 Expected closing tag. Unexpected end of file. +(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> @@ -1181,12 +1175,14 @@ Line: 1 Col: 71 Expected closing tag. Unexpected end of file. #data <table><a href="blah">aba<tr><td><a href="foo">br</td></tr>x</table>aoe #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 29 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 54 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 68 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 71 Expected closing tag. Unexpected end of file. +(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> @@ -1211,9 +1207,9 @@ Line: 1 Col: 71 Expected closing tag. Unexpected end of file. #data <a href=a>aa<marquee>aa<a href=b>bb</marquee>aa #errors -Line: 1 Col: 10 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 45 End tag (marquee) seen too early. Expected other end tag. -Line: 1 Col: 47 Expected closing tag. Unexpected end of file. +(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> @@ -1231,9 +1227,10 @@ Line: 1 Col: 47 Expected closing tag. Unexpected end of file. #data <wbr><strike><code></strike><code><strike></code> #errors -Line: 1 Col: 5 Unexpected start tag (wbr). Expected DOCTYPE. -Line: 1 Col: 28 End tag (strike) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 49 Unexpected end tag (code). Ignored. +(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> @@ -1242,12 +1239,25 @@ Line: 1 Col: 49 Unexpected end tag (code). Ignored. | <strike> | <code> | <code> -| <strike> +| <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 -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -1261,20 +1271,22 @@ Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. #data <style><!--</style><meta><script>--><link></script> #errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 51 Unexpected end of file. Expected end tag (style). +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> | <style> -| "<!--</style><meta><script>--><link></script>" +| "<!--" +| <meta> +| <script> +| "--><link>" | <body> #data <head><meta></head><link> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 25 Unexpected start tag (link) that can be in head. Moved. +(1,6): expected-doctype-but-got-start-tag +(1,25): unexpected-start-tag-out-of-my-head #document | <html> | <head> @@ -1285,9 +1297,9 @@ Line: 1 Col: 25 Unexpected start tag (link) that can be in head. Moved. #data <table><tr><tr><td><td><span><th><span>X</table> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 33 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 48 Got table cell end tag (th) while required end tags are missing. +(1,7): expected-doctype-but-got-start-tag +(1,33): unexpected-cell-end-tag +(1,48): unexpected-cell-end-tag #document | <html> | <head> @@ -1306,10 +1318,9 @@ Line: 1 Col: 48 Got table cell end tag (th) while required end tags are missing. #data <body><body><base><link><meta><title><p></title><body><p></body> #errors -Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected start tag (body). -Line: 1 Col: 54 Unexpected start tag (body). -Line: 1 Col: 64 Unexpected end tag (p). Missing end tag (body). +(1,6): expected-doctype-but-got-start-tag +(1,12): unexpected-start-tag +(1,54): unexpected-start-tag #document | <html> | <head> @@ -1324,7 +1335,7 @@ Line: 1 Col: 64 Unexpected end tag (p). Missing end tag (body). #data <textarea><p></textarea> #errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. +(1,10): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -1335,8 +1346,8 @@ Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. #data <p><image></p> #errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected start tag (image). Treated as img. +(1,3): expected-doctype-but-got-start-tag +(1,10): unexpected-start-tag-treated-as #document | <html> | <head> @@ -1347,17 +1358,16 @@ Line: 1 Col: 10 Unexpected start tag (image). Treated as img. #data <a><table><a></table><p><a><div><a> #errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 13 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 13 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 21 Unexpected end tag (table). Expected end tag (a). -Line: 1 Col: 27 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 27 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm. -Line: 1 Col: 32 Unexpected end tag (p). Ignored. -Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 35 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm. -Line: 1 Col: 35 Expected closing tag. Unexpected end of file. +(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> @@ -1373,8 +1383,8 @@ Line: 1 Col: 35 Expected closing tag. Unexpected end of file. #data <head></p><meta><p> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected end tag (p). Ignored. +(1,6): expected-doctype-but-got-start-tag +(1,10): unexpected-end-tag #document | <html> | <head> @@ -1385,8 +1395,8 @@ Line: 1 Col: 10 Unexpected end tag (p). Ignored. #data <head></html><meta><p> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end tag (html). Ignored. +(1,6): expected-doctype-but-got-start-tag +(1,19): expected-eof-but-got-start-tag #document | <html> | <head> @@ -1397,10 +1407,10 @@ Line: 1 Col: 13 Unexpected end tag (html). Ignored. #data <b><table><td><i></table> #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 25 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. +(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> @@ -1415,11 +1425,11 @@ Line: 1 Col: 25 Expected closing tag. Unexpected end of file. #data <b><table><td></b><i></table> #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 18 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 29 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 29 Expected closing tag. Unexpected end of file. +(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> @@ -1434,9 +1444,9 @@ Line: 1 Col: 29 Expected closing tag. Unexpected end of file. #data <h1><h2> #errors -4: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>â€. -8: Heading cannot be a child of another heading. -8: End of file seen and there were open elements. +(1,4): expected-doctype-but-got-start-tag +(1,8): unexpected-start-tag +(1,8): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1447,10 +1457,10 @@ Line: 1 Col: 29 Expected closing tag. Unexpected end of file. #data <a><p><a></a></p></a> #errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 9 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 9 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 21 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. +(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> @@ -1463,24 +1473,26 @@ Line: 1 Col: 21 End tag (a) violates step 1, paragraph 1 of the adoption agency #data <b><button></b></button></b> #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 15 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. +(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> +| <button> +| <b> #data <p><b><div><marquee></p></b></div> #errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end tag (p). Ignored. -Line: 1 Col: 24 Unexpected end tag (p). Ignored. -Line: 1 Col: 28 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 34 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 34 Expected closing tag. Unexpected end of file. +(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> @@ -1495,8 +1507,8 @@ Line: 1 Col: 34 Expected closing tag. Unexpected end of file. #data <script></script></div><title></title><p><p> #errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end tag (div). Ignored. +(1,8): expected-doctype-but-got-start-tag +(1,23): unexpected-end-tag #document | <html> | <head> @@ -1509,8 +1521,8 @@ Line: 1 Col: 23 Unexpected end tag (div). Ignored. #data <p><hr></p> #errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end tag (p). Ignored. +(1,3): expected-doctype-but-got-start-tag +(1,11): unexpected-end-tag #document | <html> | <head> @@ -1522,12 +1534,12 @@ Line: 1 Col: 11 Unexpected end tag (p). Ignored. #data <select><b><option><select><option></b></select> #errors -Line: 1 Col: 8 Unexpected start tag (select). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected start tag token (b) in the select phase. Ignored. -Line: 1 Col: 27 Unexpected select start tag in the select phase treated as select end tag. -Line: 1 Col: 39 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 48 Unexpected end tag (select). Ignored. -Line: 1 Col: 48 Expected closing tag. Unexpected end of file. +(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> @@ -1539,7 +1551,7 @@ Line: 1 Col: 48 Expected closing tag. Unexpected end of file. #data <html><head><title></title><body></body></html> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -1549,17 +1561,16 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <a><table><td><a><table></table><a></tr><a></table><a> #errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 40 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 43 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 43 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 43 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 51 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 54 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 54 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm. -Line: 1 Col: 54 Expected closing tag. Unexpected end of file. +(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> @@ -1578,10 +1589,10 @@ Line: 1 Col: 54 Expected closing tag. Unexpected end of file. #data <ul><li></li><div><li></div><li><li><div><li><address><li><b><em></b><li></ul> #errors -Line: 1 Col: 4 Unexpected start tag (ul). Expected DOCTYPE. -Line: 1 Col: 45 Missing end tag (div, li). -Line: 1 Col: 58 Missing end tag (address, li). -Line: 1 Col: 69 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. +(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> @@ -1601,31 +1612,24 @@ Line: 1 Col: 69 End tag (b) violates step 1, paragraph 3 of the adoption agency | <li> #data -<frameset><frame><frameset><frame></frameset><noframes></noframes></frameset> +<ul><li><ul></li><li>a</li></ul></li></ul> #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. +(1,4): expected-doctype-but-got-start-tag +(1,17): unexpected-end-tag #document | <html> | <head> -| <frameset> -| <frame> -| <frameset> -| <frame> -| <noframes> +| <body> +| <ul> +| <li> +| <ul> +| <li> +| "a" #data -<body><frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes> +<frameset><frame><frameset><frame></frameset><noframes></noframes></frameset> #errors -Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected start tag frame. Ignored. -Line: 1 Col: 21 This element (frame) has no end tag. -Line: 1 Col: 29 This element (frame) has no end tag. -Line: 1 Col: 39 Unexpected start tag frameset. Ignored. -Line: 1 Col: 46 Unexpected start tag frame. Ignored. -Line: 1 Col: 56 Unexpected start tag frameset. Ignored. -Line: 1 Col: 63 Unexpected start tag frame. Ignored. -Line: 1 Col: 74 Unexpected end tag (frameset). Ignored. -Line: 1 Col: 105 Expected closing tag. Unexpected end of file. +(1,10): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -1634,16 +1638,15 @@ Line: 1 Col: 105 Expected closing tag. Unexpected end of file. | <frameset> | <frame> | <noframes> -| "</frameset><noframes>" #data <h1><table><td><h3></table><h3></h1> #errors -4: Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>â€. -15: “td†start tag in table body. -27: Unclosed elements. -31: Heading cannot be a child of another heading. -36: End tag “h1†seen but there were unclosed elements. +(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> @@ -1659,7 +1662,7 @@ Line: 1 Col: 105 Expected closing tag. Unexpected end of file. #data <table><colgroup><col><colgroup><col><col><col><colgroup><col><col><thead><tr><td></table> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -1681,9 +1684,9 @@ Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. #data <table><col><tbody><col><tr><col><td><col></table><col> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 37 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 55 Unexpected start tag col. Ignored. +(1,7): expected-doctype-but-got-start-tag +(1,37): unexpected-cell-in-table-body +(1,55): unexpected-start-tag-ignored #document | <html> | <head> @@ -1707,9 +1710,9 @@ Line: 1 Col: 55 Unexpected start tag col. Ignored. #data <table><colgroup><tbody><colgroup><tr><colgroup><td><colgroup></table><colgroup> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 52 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 80 Unexpected start tag colgroup. Ignored. +(1,7): expected-doctype-but-got-start-tag +(1,52): unexpected-cell-in-table-body +(1,80): unexpected-start-tag-ignored #document | <html> | <head> @@ -1729,90 +1732,91 @@ Line: 1 Col: 80 Unexpected start tag colgroup. Ignored. #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 -Line: 1 Col: 9 Unexpected end tag (strong). Expected DOCTYPE. -Line: 1 Col: 9 Unexpected end tag (strong) after the (implied) root element. -Line: 1 Col: 13 Unexpected end tag (b) after the (implied) root element. -Line: 1 Col: 18 Unexpected end tag (em) after the (implied) root element. -Line: 1 Col: 22 Unexpected end tag (i) after the (implied) root element. -Line: 1 Col: 26 Unexpected end tag (u) after the (implied) root element. -Line: 1 Col: 35 Unexpected end tag (strike) after the (implied) root element. -Line: 1 Col: 39 Unexpected end tag (s) after the (implied) root element. -Line: 1 Col: 47 Unexpected end tag (blink) after the (implied) root element. -Line: 1 Col: 52 Unexpected end tag (tt) after the (implied) root element. -Line: 1 Col: 58 Unexpected end tag (pre) after the (implied) root element. -Line: 1 Col: 64 Unexpected end tag (big) after the (implied) root element. -Line: 1 Col: 72 Unexpected end tag (small) after the (implied) root element. -Line: 1 Col: 79 Unexpected end tag (font) after the (implied) root element. -Line: 1 Col: 88 Unexpected end tag (select) after the (implied) root element. -Line: 1 Col: 93 Unexpected end tag (h1) after the (implied) root element. -Line: 1 Col: 98 Unexpected end tag (h2) after the (implied) root element. -Line: 1 Col: 103 Unexpected end tag (h3) after the (implied) root element. -Line: 1 Col: 108 Unexpected end tag (h4) after the (implied) root element. -Line: 1 Col: 113 Unexpected end tag (h5) after the (implied) root element. -Line: 1 Col: 118 Unexpected end tag (h6) after the (implied) root element. -Line: 1 Col: 125 Unexpected end tag (body) after the (implied) root element. -Line: 1 Col: 130 Unexpected end tag (br). Treated as br element. -Line: 1 Col: 134 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 140 This element (img) has no end tag. -Line: 1 Col: 148 Unexpected end tag (title). Ignored. -Line: 1 Col: 155 Unexpected end tag (span). Ignored. -Line: 1 Col: 163 Unexpected end tag (style). Ignored. -Line: 1 Col: 172 Unexpected end tag (script). Ignored. -Line: 1 Col: 180 Unexpected end tag (table). Ignored. -Line: 1 Col: 185 Unexpected end tag (th). Ignored. -Line: 1 Col: 190 Unexpected end tag (td). Ignored. -Line: 1 Col: 195 Unexpected end tag (tr). Ignored. -Line: 1 Col: 203 This element (frame) has no end tag. -Line: 1 Col: 210 This element (area) has no end tag. -Line: 1 Col: 217 Unexpected end tag (link). Ignored. -Line: 1 Col: 225 This element (param) has no end tag. -Line: 1 Col: 230 This element (hr) has no end tag. -Line: 1 Col: 238 This element (input) has no end tag. -Line: 1 Col: 244 Unexpected end tag (col). Ignored. -Line: 1 Col: 251 Unexpected end tag (base). Ignored. -Line: 1 Col: 258 Unexpected end tag (meta). Ignored. -Line: 1 Col: 269 This element (basefont) has no end tag. -Line: 1 Col: 279 This element (bgsound) has no end tag. -Line: 1 Col: 287 This element (embed) has no end tag. -Line: 1 Col: 296 This element (spacer) has no end tag. -Line: 1 Col: 300 Unexpected end tag (p). Ignored. -Line: 1 Col: 305 End tag (dd) seen too early. Expected other end tag. -Line: 1 Col: 310 End tag (dt) seen too early. Expected other end tag. -Line: 1 Col: 320 Unexpected end tag (caption). Ignored. -Line: 1 Col: 331 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 339 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 347 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 355 Unexpected end tag (thead). Ignored. -Line: 1 Col: 365 End tag (address) seen too early. Expected other end tag. -Line: 1 Col: 378 End tag (blockquote) seen too early. Expected other end tag. -Line: 1 Col: 387 End tag (center) seen too early. Expected other end tag. -Line: 1 Col: 393 Unexpected end tag (dir). Ignored. -Line: 1 Col: 399 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 404 End tag (dl) seen too early. Expected other end tag. -Line: 1 Col: 415 End tag (fieldset) seen too early. Expected other end tag. -Line: 1 Col: 425 End tag (listing) seen too early. Expected other end tag. -Line: 1 Col: 432 End tag (menu) seen too early. Expected other end tag. -Line: 1 Col: 437 End tag (ol) seen too early. Expected other end tag. -Line: 1 Col: 442 End tag (ul) seen too early. Expected other end tag. -Line: 1 Col: 447 End tag (li) seen too early. Expected other end tag. -Line: 1 Col: 454 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 460 This element (wbr) has no end tag. -Line: 1 Col: 476 End tag (button) seen too early. Expected other end tag. -Line: 1 Col: 486 End tag (marquee) seen too early. Expected other end tag. -Line: 1 Col: 495 End tag (object) seen too early. Expected other end tag. -Line: 1 Col: 513 Unexpected end tag (). Ignored. -Line: 1 Col: 513 Unexpected end tag (frameset). Ignored. -Line: 1 Col: 520 Unexpected end tag (head). Ignored. -Line: 1 Col: 529 Unexpected end tag (iframe). Ignored. -Line: 1 Col: 537 This element (image) has no end tag. -Line: 1 Col: 547 This element (isindex) has no end tag. -Line: 1 Col: 557 Unexpected end tag (noembed). Ignored. -Line: 1 Col: 568 Unexpected end tag (noframes). Ignored. -Line: 1 Col: 579 Unexpected end tag (noscript). Ignored. -Line: 1 Col: 590 Unexpected end tag (optgroup). Ignored. -Line: 1 Col: 599 Unexpected end tag (option). Ignored. -Line: 1 Col: 611 Unexpected end tag (plaintext). Ignored. -Line: 1 Col: 622 Unexpected end tag (textarea). Ignored. +(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> @@ -1823,116 +1827,117 @@ Line: 1 Col: 622 Unexpected end tag (textarea). Ignored. #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 -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (strong) in table context caused voodoo mode. -Line: 1 Col: 20 End tag (strong) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 24 Unexpected end tag (b) in table context caused voodoo mode. -Line: 1 Col: 24 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 29 Unexpected end tag (em) in table context caused voodoo mode. -Line: 1 Col: 29 End tag (em) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 33 Unexpected end tag (i) in table context caused voodoo mode. -Line: 1 Col: 33 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 37 Unexpected end tag (u) in table context caused voodoo mode. -Line: 1 Col: 37 End tag (u) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 46 Unexpected end tag (strike) in table context caused voodoo mode. -Line: 1 Col: 46 End tag (strike) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 50 Unexpected end tag (s) in table context caused voodoo mode. -Line: 1 Col: 50 End tag (s) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 58 Unexpected end tag (blink) in table context caused voodoo mode. -Line: 1 Col: 58 Unexpected end tag (blink). Ignored. -Line: 1 Col: 63 Unexpected end tag (tt) in table context caused voodoo mode. -Line: 1 Col: 63 End tag (tt) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 69 Unexpected end tag (pre) in table context caused voodoo mode. -Line: 1 Col: 69 End tag (pre) seen too early. Expected other end tag. -Line: 1 Col: 75 Unexpected end tag (big) in table context caused voodoo mode. -Line: 1 Col: 75 End tag (big) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 83 Unexpected end tag (small) in table context caused voodoo mode. -Line: 1 Col: 83 End tag (small) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 90 Unexpected end tag (font) in table context caused voodoo mode. -Line: 1 Col: 90 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 99 Unexpected end tag (select) in table context caused voodoo mode. -Line: 1 Col: 99 Unexpected end tag (select). Ignored. -Line: 1 Col: 104 Unexpected end tag (h1) in table context caused voodoo mode. -Line: 1 Col: 104 End tag (h1) seen too early. Expected other end tag. -Line: 1 Col: 109 Unexpected end tag (h2) in table context caused voodoo mode. -Line: 1 Col: 109 End tag (h2) seen too early. Expected other end tag. -Line: 1 Col: 114 Unexpected end tag (h3) in table context caused voodoo mode. -Line: 1 Col: 114 End tag (h3) seen too early. Expected other end tag. -Line: 1 Col: 119 Unexpected end tag (h4) in table context caused voodoo mode. -Line: 1 Col: 119 End tag (h4) seen too early. Expected other end tag. -Line: 1 Col: 124 Unexpected end tag (h5) in table context caused voodoo mode. -Line: 1 Col: 124 End tag (h5) seen too early. Expected other end tag. -Line: 1 Col: 129 Unexpected end tag (h6) in table context caused voodoo mode. -Line: 1 Col: 129 End tag (h6) seen too early. Expected other end tag. -Line: 1 Col: 136 Unexpected end tag (body) in the table row phase. Ignored. -Line: 1 Col: 141 Unexpected end tag (br) in table context caused voodoo mode. -Line: 1 Col: 141 Unexpected end tag (br). Treated as br element. -Line: 1 Col: 145 Unexpected end tag (a) in table context caused voodoo mode. -Line: 1 Col: 145 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 151 Unexpected end tag (img) in table context caused voodoo mode. -Line: 1 Col: 151 This element (img) has no end tag. -Line: 1 Col: 159 Unexpected end tag (title) in table context caused voodoo mode. -Line: 1 Col: 159 Unexpected end tag (title). Ignored. -Line: 1 Col: 166 Unexpected end tag (span) in table context caused voodoo mode. -Line: 1 Col: 166 Unexpected end tag (span). Ignored. -Line: 1 Col: 174 Unexpected end tag (style) in table context caused voodoo mode. -Line: 1 Col: 174 Unexpected end tag (style). Ignored. -Line: 1 Col: 183 Unexpected end tag (script) in table context caused voodoo mode. -Line: 1 Col: 183 Unexpected end tag (script). Ignored. -Line: 1 Col: 196 Unexpected end tag (th). Ignored. -Line: 1 Col: 201 Unexpected end tag (td). Ignored. -Line: 1 Col: 206 Unexpected end tag (tr). Ignored. -Line: 1 Col: 214 This element (frame) has no end tag. -Line: 1 Col: 221 This element (area) has no end tag. -Line: 1 Col: 228 Unexpected end tag (link). Ignored. -Line: 1 Col: 236 This element (param) has no end tag. -Line: 1 Col: 241 This element (hr) has no end tag. -Line: 1 Col: 249 This element (input) has no end tag. -Line: 1 Col: 255 Unexpected end tag (col). Ignored. -Line: 1 Col: 262 Unexpected end tag (base). Ignored. -Line: 1 Col: 269 Unexpected end tag (meta). Ignored. -Line: 1 Col: 280 This element (basefont) has no end tag. -Line: 1 Col: 290 This element (bgsound) has no end tag. -Line: 1 Col: 298 This element (embed) has no end tag. -Line: 1 Col: 307 This element (spacer) has no end tag. -Line: 1 Col: 311 Unexpected end tag (p). Ignored. -Line: 1 Col: 316 End tag (dd) seen too early. Expected other end tag. -Line: 1 Col: 321 End tag (dt) seen too early. Expected other end tag. -Line: 1 Col: 331 Unexpected end tag (caption). Ignored. -Line: 1 Col: 342 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 350 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 358 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 366 Unexpected end tag (thead). Ignored. -Line: 1 Col: 376 End tag (address) seen too early. Expected other end tag. -Line: 1 Col: 389 End tag (blockquote) seen too early. Expected other end tag. -Line: 1 Col: 398 End tag (center) seen too early. Expected other end tag. -Line: 1 Col: 404 Unexpected end tag (dir). Ignored. -Line: 1 Col: 410 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 415 End tag (dl) seen too early. Expected other end tag. -Line: 1 Col: 426 End tag (fieldset) seen too early. Expected other end tag. -Line: 1 Col: 436 End tag (listing) seen too early. Expected other end tag. -Line: 1 Col: 443 End tag (menu) seen too early. Expected other end tag. -Line: 1 Col: 448 End tag (ol) seen too early. Expected other end tag. -Line: 1 Col: 453 End tag (ul) seen too early. Expected other end tag. -Line: 1 Col: 458 End tag (li) seen too early. Expected other end tag. -Line: 1 Col: 465 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 471 This element (wbr) has no end tag. -Line: 1 Col: 487 End tag (button) seen too early. Expected other end tag. -Line: 1 Col: 497 End tag (marquee) seen too early. Expected other end tag. -Line: 1 Col: 506 End tag (object) seen too early. Expected other end tag. -Line: 1 Col: 524 Unexpected end tag (). Ignored. -Line: 1 Col: 524 Unexpected end tag (frameset). Ignored. -Line: 1 Col: 531 Unexpected end tag (head). Ignored. -Line: 1 Col: 540 Unexpected end tag (iframe). Ignored. -Line: 1 Col: 548 This element (image) has no end tag. -Line: 1 Col: 558 This element (isindex) has no end tag. -Line: 1 Col: 568 Unexpected end tag (noembed). Ignored. -Line: 1 Col: 579 Unexpected end tag (noframes). Ignored. -Line: 1 Col: 590 Unexpected end tag (noscript). Ignored. -Line: 1 Col: 601 Unexpected end tag (optgroup). Ignored. -Line: 1 Col: 610 Unexpected end tag (option). Ignored. -Line: 1 Col: 622 Unexpected end tag (plaintext). Ignored. -Line: 1 Col: 633 Unexpected end tag (textarea). Ignored. +(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> @@ -1946,8 +1951,8 @@ Line: 1 Col: 633 Unexpected end tag (textarea). Ignored. #data <frameset> #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 1 Col: 10 Expected closing tag. Unexpected end of file. +(1,10): expected-doctype-but-got-start-tag +(1,10): eof-in-frameset #document | <html> | <head> diff --git a/test/data/tree-construction/tests10.dat b/test/data/tree-construction/tests10.dat index 877c9a3..87d9478 100644 --- a/test/data/tree-construction/tests10.dat +++ b/test/data/tree-construction/tests10.dat @@ -9,6 +9,18 @@ | <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 @@ -21,8 +33,8 @@ #data <!DOCTYPE html><body><select><svg></svg></select> #errors -35: Stray “svg†start tag. -42: Stray end tag “svg†+(1,34) unexpected-start-tag-in-select +(1,40) unexpected-end-tag-in-select #document | <!DOCTYPE html> | <html> @@ -33,8 +45,8 @@ #data <!DOCTYPE html><body><select><option><svg></svg></option></select> #errors -43: Stray “svg†start tag. -50: Stray end tag “svg†+(1,42) unexpected-start-tag-in-select +(1,48) unexpected-end-tag-in-select #document | <!DOCTYPE html> | <html> @@ -46,8 +58,7 @@ #data <!DOCTYPE html><body><table><svg></svg></table> #errors -34: Start tag “svg†seen in “tableâ€. -41: Stray end tag “svgâ€. +(1,33) foster-parenting-start-tag #document | <!DOCTYPE html> | <html> @@ -59,9 +70,7 @@ #data <!DOCTYPE html><body><table><svg><g>foo</g></svg></table> #errors -34: Start tag “svg†seen in “tableâ€. -46: Stray end tag “gâ€. -53: Stray end tag “svgâ€. +(1,33) foster-parenting-start-tag #document | <!DOCTYPE html> | <html> @@ -75,10 +84,7 @@ #data <!DOCTYPE html><body><table><svg><g>foo</g><g>bar</g></svg></table> #errors -34: Start tag “svg†seen in “tableâ€. -46: Stray end tag “gâ€. -58: Stray end tag “gâ€. -65: Stray end tag “svgâ€. +(1,33) foster-parenting-start-tag #document | <!DOCTYPE html> | <html> @@ -94,10 +100,7 @@ #data <!DOCTYPE html><body><table><tbody><svg><g>foo</g><g>bar</g></svg></tbody></table> #errors -41: Start tag “svg†seen in “tableâ€. -53: Stray end tag “gâ€. -65: Stray end tag “gâ€. -72: Stray end tag “svgâ€. +(1,40) foster-parenting-start-tag #document | <!DOCTYPE html> | <html> @@ -114,10 +117,7 @@ #data <!DOCTYPE html><body><table><tbody><tr><svg><g>foo</g><g>bar</g></svg></tr></tbody></table> #errors -45: Start tag “svg†seen in “tableâ€. -57: Stray end tag “gâ€. -69: Stray end tag “gâ€. -76: Stray end tag “svgâ€. +(1,44) foster-parenting-start-tag #document | <!DOCTYPE html> | <html> @@ -191,8 +191,8 @@ #data <!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g><p>baz</table><p>quux #errors -70: HTML start tag “p†in a foreign namespace context. -81: “table†closed but “caption†was still open. +(1,65) unexpected-html-element-in-foreign-content +(1,76) XXX-undefined-error #document | <!DOCTYPE html> | <html> @@ -213,8 +213,8 @@ #data <!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g>baz</table><p>quux #errors -78: “table†closed but “caption†was still open. -78: Unclosed elements on stack. +(1,73) unexpected-end-tag +(1,73) expected-one-end-tag-but-got-another #document | <!DOCTYPE html> | <html> @@ -234,11 +234,11 @@ #data <!DOCTYPE html><body><table><colgroup><svg><g>foo</g><g>bar</g><p>baz</table><p>quux #errors -44: Start tag “svg†seen in “tableâ€. -56: Stray end tag “gâ€. -68: Stray end tag “gâ€. -71: HTML start tag “p†in a foreign namespace context. -71: Start tag “p†seen in “tableâ€. +(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> @@ -259,13 +259,13 @@ #data <!DOCTYPE html><body><table><tr><td><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux #errors -50: Stray “svg†start tag. -54: Stray “g†start tag. -62: Stray end tag “g†-66: Stray “g†start tag. -74: Stray end tag “g†-77: Stray “p†start tag. -88: “table†end tag with “select†open. +(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> @@ -283,14 +283,14 @@ #data <!DOCTYPE html><body><table><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux #errors -36: Start tag “select†seen in “tableâ€. -42: Stray “svg†start tag. -46: Stray “g†start tag. -54: Stray end tag “g†-58: Stray “g†start tag. -66: Stray end tag “g†-69: Stray “p†start tag. -80: “table†end tag with “select†open. +(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> @@ -305,8 +305,8 @@ #data <!DOCTYPE html><body></body></html><svg><g>foo</g><g>bar</g><p>baz #errors -41: Stray “svg†start tag. -68: HTML start tag “p†in a foreign namespace context. +(1,40) expected-eof-but-got-start-tag +(1,63) unexpected-html-element-in-foreign-content #document | <!DOCTYPE html> | <html> @@ -323,8 +323,8 @@ #data <!DOCTYPE html><body></body><svg><g>foo</g><g>bar</g><p>baz #errors -34: Stray “svg†start tag. -61: HTML start tag “p†in a foreign namespace context. +(1,33) unexpected-start-tag-after-body +(1,56) unexpected-html-element-in-foreign-content #document | <!DOCTYPE html> | <html> @@ -341,14 +341,14 @@ #data <!DOCTYPE html><frameset><svg><g></g><g></g><p><span> #errors -31: Stray “svg†start tag. -35: Stray “g†start tag. -40: Stray end tag “g†-44: Stray “g†start tag. -49: Stray end tag “g†-52: Stray “p†start tag. -58: Stray “span†start tag. -58: End of file seen and there were open elements. +(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> @@ -358,13 +358,13 @@ #data <!DOCTYPE html><frameset></frameset><svg><g></g><g></g><p><span> #errors -42: Stray “svg†start tag. -46: Stray “g†start tag. -51: Stray end tag “g†-55: Stray “g†start tag. -60: Stray end tag “g†-63: Stray “p†start tag. -69: Stray “span†start tag. +(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> @@ -428,3 +428,420 @@ | 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/test/data/tree-construction/tests14.dat b/test/data/tree-construction/tests14.dat new file mode 100644 index 0000000..a08b764 --- /dev/null +++ b/test/data/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/test/data/tree-construction/tests15.dat b/test/data/tree-construction/tests15.dat new file mode 100644 index 0000000..93d06a8 --- /dev/null +++ b/test/data/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/test/data/tree-construction/tests16.dat b/test/data/tree-construction/tests16.dat new file mode 100644 index 0000000..c8f6d43 --- /dev/null +++ b/test/data/tree-construction/tests16.dat @@ -0,0 +1,2374 @@ +#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><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/test/data/tree-construction/tests17.dat b/test/data/tree-construction/tests17.dat new file mode 100644 index 0000000..37a7be4 --- /dev/null +++ b/test/data/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/test/data/tree-construction/tests18.dat b/test/data/tree-construction/tests18.dat new file mode 100644 index 0000000..926bccb --- /dev/null +++ b/test/data/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/test/data/tree-construction/tests19.dat b/test/data/tree-construction/tests19.dat new file mode 100644 index 0000000..9e7e03f --- /dev/null +++ b/test/data/tree-construction/tests19.dat @@ -0,0 +1,1464 @@ +#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><form><isindex> +#errors +(1,30): deprecated-tag +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <form> + +#data +<!doctype html><isindex action="POST"> +#errors +(1,38): deprecated-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <form> +| action="POST" +| <hr> +| <label> +| "This is a searchable index. Enter search keywords: " +| <input> +| name="isindex" +| <hr> + +#data +<!doctype html><isindex prompt="this is isindex"> +#errors +(1,49): deprecated-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <form> +| <hr> +| <label> +| "this is isindex" +| <input> +| name="isindex" +| <hr> + +#data +<!doctype html><isindex type="hidden"> +#errors +(1,38): deprecated-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <form> +| <hr> +| <label> +| "This is a searchable index. Enter search keywords: " +| <input> +| name="isindex" +| type="hidden" +| <hr> + +#data +<!doctype html><isindex name="foo"> +#errors +(1,35): deprecated-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <form> +| <hr> +| <label> +| "This is a searchable index. Enter search keywords: " +| <input> +| name="isindex" +| <hr> + +#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 +<!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): 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/test/data/tree-construction/tests2.dat b/test/data/tree-construction/tests2.dat index eb9b444..0ad7708 100644 --- a/test/data/tree-construction/tests2.dat +++ b/test/data/tree-construction/tests2.dat @@ -11,8 +11,8 @@ #data <textarea>test</div>test #errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -Line: 1 Col: 24 Expected closing tag. Unexpected end of file. +(1,10): expected-doctype-but-got-start-tag +(1,24): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -23,9 +23,9 @@ Line: 1 Col: 24 Expected closing tag. Unexpected end of file. #data <table><td> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 11 Expected closing tag. Unexpected end of file. +(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> @@ -38,8 +38,8 @@ Line: 1 Col: 11 Expected closing tag. Unexpected end of file. #data <table><td>test</tbody></table> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase. +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body #document | <html> | <head> @@ -53,8 +53,8 @@ Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase. #data <frame>test #errors -Line: 1 Col: 7 Unexpected start tag (frame). Expected DOCTYPE. -Line: 1 Col: 7 Unexpected start tag frame. Ignored. +(1,7): expected-doctype-but-got-start-tag +(1,7): unexpected-start-tag-ignored #document | <html> | <head> @@ -64,8 +64,11 @@ Line: 1 Col: 7 Unexpected start tag frame. Ignored. #data <!DOCTYPE html><frameset>test #errors -Line: 1 Col: 29 Unepxected characters in the frameset phase. Characters ignored. -Line: 1 Col: 29 Expected closing tag. Unexpected end of file. +(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> @@ -75,8 +78,8 @@ Line: 1 Col: 29 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><frameset><!DOCTYPE html> #errors -Line: 1 Col: 40 Unexpected DOCTYPE. Ignored. -Line: 1 Col: 40 Expected closing tag. Unexpected end of file. +(1,40): unexpected-doctype +(1,40): eof-in-frameset #document | <!DOCTYPE html> | <html> @@ -86,8 +89,8 @@ Line: 1 Col: 40 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><font><p><b>test</font> #errors -Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. +(1,38): adoption-agency-1.3 +(1,38): adoption-agency-1.3 #document | <!DOCTYPE html> | <html> @@ -102,7 +105,7 @@ Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agen #data <!DOCTYPE html><dt><div><dd> #errors -Line: 1 Col: 28 Missing end tag (div, dt). +(1,28): end-tag-too-early #document | <!DOCTYPE html> | <html> @@ -115,8 +118,8 @@ Line: 1 Col: 28 Missing end tag (div, dt). #data <script></x #errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). +(1,8): expected-doctype-but-got-start-tag +(1,11): expected-named-closing-tag-but-got-eof #document | <html> | <head> @@ -127,9 +130,13 @@ Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). #data <table><plaintext><td> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 18 Unexpected start tag (plaintext) in table context caused voodoo mode. -Line: 1 Col: 22 Unexpected end of file. Expected table content. +(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> @@ -141,8 +148,8 @@ Line: 1 Col: 22 Unexpected end of file. Expected table content. #data <plaintext></plaintext> #errors -Line: 1 Col: 11 Unexpected start tag (plaintext). Expected DOCTYPE. -Line: 1 Col: 23 Expected closing tag. Unexpected end of file. +(1,11): expected-doctype-but-got-start-tag +(1,23): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -153,8 +160,11 @@ Line: 1 Col: 23 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><table><tr>TEST #errors -Line: 1 Col: 30 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 30 Unexpected end of file. Expected table content. +(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> @@ -168,8 +178,8 @@ Line: 1 Col: 30 Unexpected end of file. Expected table content. #data <!DOCTYPE html><body t1=1><body t2=2><body t3=3 t4=4> #errors -Line: 1 Col: 37 Unexpected start tag (body). -Line: 1 Col: 53 Unexpected start tag (body). +(1,37): unexpected-start-tag +(1,53): unexpected-start-tag #document | <!DOCTYPE html> | <html> @@ -183,10 +193,8 @@ Line: 1 Col: 53 Unexpected start tag (body). #data </b test #errors -Line: 1 Col: 8 Unexpected end of file in attribute name. -Line: 1 Col: 8 End tag contains unexpected attributes. -Line: 1 Col: 8 Unexpected end tag (b). Expected DOCTYPE. -Line: 1 Col: 8 Unexpected end tag (b) after the (implied) root element. +(1,8): eof-in-attribute-name +(1,8): expected-doctype-but-got-eof #document | <html> | <head> @@ -195,9 +203,10 @@ Line: 1 Col: 8 Unexpected end tag (b) after the (implied) root element. #data <!DOCTYPE html></b test<b &=&>X #errors -Line: 1 Col: 32 Named entity didn't end with ';'. -Line: 1 Col: 33 End tag contains unexpected attributes. -Line: 1 Col: 33 Unexpected end tag (b) after the (implied) root element. +(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 #document | <!DOCTYPE html> | <html> @@ -208,21 +217,21 @@ Line: 1 Col: 33 Unexpected end tag (b) after the (implied) root element. #data <!doctypehtml><scrIPt type=text/x-foobar;baz>X</SCRipt #errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -Line: 1 Col: 54 Unexpected end of file in the tag name. +(1,9): need-space-after-doctype +(1,54): expected-named-closing-tag-but-got-eof #document | <!DOCTYPE html> | <html> | <head> | <script> | type="text/x-foobar;baz" -| "X" +| "X</SCRipt" | <body> #data & #errors -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. +(1,1): expected-doctype-but-got-chars #document | <html> | <head> @@ -232,8 +241,8 @@ Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #data &# #errors -Line: 1 Col: 1 Numeric entity expected. Got end of file instead. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. +(1,2): expected-numeric-entity +(1,2): expected-doctype-but-got-chars #document | <html> | <head> @@ -243,8 +252,8 @@ Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #data &#X #errors -Line: 1 Col: 3 Numeric entity expected but none found. -Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. +(1,3): expected-numeric-entity +(1,3): expected-doctype-but-got-chars #document | <html> | <head> @@ -254,8 +263,8 @@ Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. #data &#x #errors -Line: 1 Col: 3 Numeric entity expected but none found. -Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. +(1,3): expected-numeric-entity +(1,3): expected-doctype-but-got-chars #document | <html> | <head> @@ -265,8 +274,8 @@ Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. #data - #errors -Line: 1 Col: 4 Numeric entity didn't end with ';'. -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. +(1,4): numeric-entity-without-semicolon +(1,4): expected-doctype-but-got-chars #document | <html> | <head> @@ -276,8 +285,7 @@ Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. #data &x-test #errors -Line: 1 Col: 1 Named entity expected. Got none. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. +(1,2): expected-doctype-but-got-chars #document | <html> | <head> @@ -287,7 +295,7 @@ Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #data <!doctypehtml><p><li> #errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. +(1,9): need-space-after-doctype #document | <!DOCTYPE html> | <html> @@ -299,7 +307,7 @@ Line: 1 Col: 9 No space after literal string 'DOCTYPE'. #data <!doctypehtml><p><dt> #errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. +(1,9): need-space-after-doctype #document | <!DOCTYPE html> | <html> @@ -311,7 +319,7 @@ Line: 1 Col: 9 No space after literal string 'DOCTYPE'. #data <!doctypehtml><p><dd> #errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. +(1,9): need-space-after-doctype #document | <!DOCTYPE html> | <html> @@ -323,8 +331,8 @@ Line: 1 Col: 9 No space after literal string 'DOCTYPE'. #data <!doctypehtml><p><form> #errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -Line: 1 Col: 23 Expected closing tag. Unexpected end of file. +(1,9): need-space-after-doctype +(1,23): expected-closing-tag-but-got-eof #document | <!DOCTYPE html> | <html> @@ -334,27 +342,6 @@ Line: 1 Col: 23 Expected closing tag. Unexpected end of file. | <form> #data -<!DOCTYPE html><p><b><i><u></p> <p>X -#errors -Line: 1 Col: 31 Unexpected end tag (p). Ignored. -Line: 1 Col: 36 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <b> -| <i> -| <u> -| <b> -| <i> -| <u> -| " " -| <p> -| "X" - -#data <!DOCTYPE html><p></P>X #errors #document @@ -368,8 +355,8 @@ Line: 1 Col: 36 Expected closing tag. Unexpected end of file. #data & #errors -Line: 1 Col: 4 Named entity didn't end with ';'. -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. +(1,4): named-entity-without-semicolon +(1,4): expected-doctype-but-got-chars #document | <html> | <head> @@ -379,8 +366,8 @@ Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. #data &AMp; #errors -Line: 1 Col: 1 Named entity expected. Got none. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. +(1,3): expected-named-entity +(1,3): expected-doctype-but-got-chars #document | <html> | <head> @@ -390,7 +377,7 @@ Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #data <!DOCTYPE html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY> #errors -Line: 1 Col: 110 Expected closing tag. Unexpected end of file. +(1,110): expected-closing-tag-but-got-eof #document | <!DOCTYPE html> | <html> @@ -401,7 +388,7 @@ Line: 1 Col: 110 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html>X</body>X #errors -Line: 1 Col: 24 Unexpected non-space characters in the after body phase. +(1,24): unexpected-char-after-body #document | <!DOCTYPE html> | <html> @@ -412,7 +399,7 @@ Line: 1 Col: 24 Unexpected non-space characters in the after body phase. #data <!DOCTYPE html><!-- X #errors -Line: 1 Col: 21 Unexpected end of file in comment. +(1,21): eof-in-comment #document | <!DOCTYPE html> | <!-- X --> @@ -423,8 +410,8 @@ Line: 1 Col: 21 Unexpected end of file in comment. #data <!DOCTYPE html><table><caption>test TEST</caption><td>test #errors -Line: 1 Col: 54 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 58 Expected closing tag. Unexpected end of file. +(1,54): unexpected-cell-in-table-body +(1,58): expected-closing-tag-but-got-eof #document | <!DOCTYPE html> | <html> @@ -441,7 +428,7 @@ Line: 1 Col: 58 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><select><option><optgroup> #errors -Line: 1 Col: 41 Expected closing tag. Unexpected end of file. +(1,41): eof-in-select #document | <!DOCTYPE html> | <html> @@ -454,8 +441,8 @@ Line: 1 Col: 41 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><select><optgroup><option></optgroup><option><select><option> #errors -Line: 1 Col: 68 Unexpected select start tag in the select phase treated as select end tag. -Line: 1 Col: 76 Expected closing tag. Unexpected end of file. +(1,68): unexpected-select-in-select +(1,76): expected-closing-tag-but-got-eof #document | <!DOCTYPE html> | <html> @@ -470,7 +457,7 @@ Line: 1 Col: 76 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><select><optgroup><option><optgroup> #errors -Line: 1 Col: 51 Expected closing tag. Unexpected end of file. +(1,51): eof-in-select #document | <!DOCTYPE html> | <html> @@ -482,6 +469,19 @@ Line: 1 Col: 51 Expected closing tag. Unexpected end of file. | <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 @@ -506,7 +506,7 @@ Line: 1 Col: 51 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><!-- XXX - XXX #errors -Line: 1 Col: 29 Unexpected end of file in comment (-) +(1,29): eof-in-comment #document | <!DOCTYPE html> | <!-- XXX - XXX --> @@ -527,27 +527,26 @@ Line: 1 Col: 29 Unexpected end of file in comment (-) #data <isindex test=x name=x> #errors -Line: 1 Col: 23 Unexpected start tag (isindex). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected start tag isindex. Don't use it! +(1,23): expected-doctype-but-got-start-tag +(1,23): deprecated-tag #document | <html> | <head> | <body> | <form> | <hr> -| <p> -| <label> -| "This is a searchable index. Insert your search keywords here: " -| <input> -| name="isindex" -| test="x" +| <label> +| "This is a searchable index. Enter search keywords: " +| <input> +| name="isindex" +| test="x" | <hr> #data test test #errors -Line: 2 Col: 4 Unexpected non-space characters. Expected DOCTYPE. +(2,4): expected-doctype-but-got-chars #document | <html> | <head> @@ -556,29 +555,6 @@ Line: 2 Col: 4 Unexpected non-space characters. Expected DOCTYPE. test" #data -<p><b><i><u></p> -<p>X -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end tag (p). Ignored. -Line: 2 Col: 4 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| <i> -| <u> -| <b> -| <i> -| <u> -| " -" -| <p> -| "X" - -#data <!DOCTYPE html><body><title>test</body></title> #errors #document @@ -623,7 +599,7 @@ x { content:"</style" } " #errors -Line: 2 Col: 1 Unexpected End of file. Expected DOCTYPE. +(2,1): expected-doctype-but-got-eof #document | <html> | <head> @@ -658,7 +634,7 @@ Line: 2 Col: 1 Unexpected End of file. Expected DOCTYPE. #data <!DOCTYPE html><html><body><html id=x> #errors -Line: 1 Col: 38 html needs to be the first start tag. +(1,38): non-html-root #document | <!DOCTYPE html> | <html> @@ -669,8 +645,7 @@ Line: 1 Col: 38 html needs to be the first start tag. #data <!DOCTYPE html>X</body><html id="x"> #errors -Line: 1 Col: 36 Unexpected start tag token (html) in the after body phase. -Line: 1 Col: 36 html needs to be the first start tag. +(1,36): non-html-root #document | <!DOCTYPE html> | <html> @@ -682,7 +657,7 @@ Line: 1 Col: 36 html needs to be the first start tag. #data <!DOCTYPE html><head><html id=x> #errors -Line: 1 Col: 32 html needs to be the first start tag. +(1,32): non-html-root #document | <!DOCTYPE html> | <html> @@ -693,7 +668,7 @@ Line: 1 Col: 32 html needs to be the first start tag. #data <!DOCTYPE html>X</html>X #errors -Line: 1 Col: 24 Unexpected non-space characters in the after body phase. +(1,24): expected-eof-but-got-char #document | <!DOCTYPE html> | <html> @@ -714,7 +689,7 @@ Line: 1 Col: 24 Unexpected non-space characters in the after body phase. #data <!DOCTYPE html>X</html><p>X #errors -Line: 1 Col: 26 Unexpected start tag (). +(1,26): expected-eof-but-got-start-tag #document | <!DOCTYPE html> | <html> @@ -727,9 +702,9 @@ Line: 1 Col: 26 Unexpected start tag (). #data <!DOCTYPE html>X<p/x/y/z> #errors -Line: 1 Col: 19 Expected a > after the /. -Line: 1 Col: 21 Solidus (/) incorrectly placed in tag. -Line: 1 Col: 23 Solidus (/) incorrectly placed in tag. +(1,19): unexpected-character-after-solidus-in-tag +(1,21): unexpected-character-after-solidus-in-tag +(1,23): unexpected-character-after-solidus-in-tag #document | <!DOCTYPE html> | <html> @@ -744,7 +719,7 @@ Line: 1 Col: 23 Solidus (/) incorrectly placed in tag. #data <!DOCTYPE html><!--x-- #errors -Line: 1 Col: 22 Unexpected end of file in comment (--). +(1,22): eof-in-comment-double-dash #document | <!DOCTYPE html> | <!-- x --> @@ -755,7 +730,7 @@ Line: 1 Col: 22 Unexpected end of file in comment (--). #data <!DOCTYPE html><table><tr><td></p></table> #errors -Line: 1 Col: 34 Unexpected end tag (p). Ignored. +(1,34): unexpected-end-tag #document | <!DOCTYPE html> | <html> @@ -770,9 +745,9 @@ Line: 1 Col: 34 Unexpected end tag (p). Ignored. #data <!DOCTYPE <!DOCTYPE HTML>><!--<!--x-->--> #errors -Line: 1 Col: 20 Expected space or '>'. Got '' -Line: 1 Col: 25 Erroneous DOCTYPE. -Line: 1 Col: 35 Unexpected character in comment found. +(1,20): expected-space-or-right-bracket-in-doctype +(1,25): unknown-doctype +(1,35): unexpected-char-in-comment #document | <!DOCTYPE <!doctype> | <html> @@ -781,3 +756,15 @@ Line: 1 Col: 35 Unexpected character in comment found. | ">" | <!-- <!--x --> | "-->" + +#data +<!doctype html><div><form></form><div></div></div> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <div> +| <form> +| <div> diff --git a/test/data/tree-construction/tests20.dat b/test/data/tree-construction/tests20.dat new file mode 100644 index 0000000..52c5acd --- /dev/null +++ b/test/data/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/test/data/tree-construction/tests21.dat b/test/data/tree-construction/tests21.dat new file mode 100644 index 0000000..d384a55 --- /dev/null +++ b/test/data/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/test/data/tree-construction/tests22.dat b/test/data/tree-construction/tests22.dat new file mode 100644 index 0000000..31e6d9e --- /dev/null +++ b/test/data/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/test/data/tree-construction/tests23.dat b/test/data/tree-construction/tests23.dat new file mode 100644 index 0000000..49e4a4a --- /dev/null +++ b/test/data/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/test/data/tree-construction/tests24.dat b/test/data/tree-construction/tests24.dat new file mode 100644 index 0000000..f6dc7eb --- /dev/null +++ b/test/data/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/test/data/tree-construction/tests25.dat b/test/data/tree-construction/tests25.dat new file mode 100644 index 0000000..cbc0051 --- /dev/null +++ b/test/data/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/test/data/tree-construction/tests26.dat b/test/data/tree-construction/tests26.dat new file mode 100644 index 0000000..8964624 --- /dev/null +++ b/test/data/tree-construction/tests26.dat @@ -0,0 +1,388 @@ +#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> diff --git a/test/data/tree-construction/tests3.dat b/test/data/tree-construction/tests3.dat index a958293..423e2b3 100644 --- a/test/data/tree-construction/tests3.dat +++ b/test/data/tree-construction/tests3.dat @@ -1,8 +1,8 @@ #data <head></head><style></style> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected start tag (style) that can be in head. Moved. +(1,6): expected-doctype-but-got-start-tag +(1,20): unexpected-start-tag-out-of-my-head #document | <html> | <head> @@ -12,8 +12,8 @@ Line: 1 Col: 20 Unexpected start tag (style) that can be in head. Moved. #data <head></head><script></script> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected start tag (script) that can be in head. Moved. +(1,6): expected-doctype-but-got-start-tag +(1,21): unexpected-start-tag-out-of-my-head #document | <html> | <head> @@ -23,8 +23,9 @@ Line: 1 Col: 21 Unexpected start tag (script) that can be in head. Moved. #data <head></head><!-- --><style></style><!-- --><script></script> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 28 Unexpected start tag (style) that can be in head. Moved. +(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> @@ -37,7 +38,7 @@ Line: 1 Col: 28 Unexpected start tag (style) that can be in head. Moved. #data <head></head><!-- -->x<style></style><!-- --><script></script> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -131,7 +132,7 @@ y" <!DOCTYPE html><html><head></head><body><pre>x<div> y</pre></body></html> #errors -Line: 2 Col: 7 End tag (pre) seen too early. Expected other end tag. +(2,7): end-tag-too-early #document | <!DOCTYPE html> | <html> @@ -144,9 +145,21 @@ Line: 2 Col: 7 End tag (pre) seen too early. Expected other end tag. 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 -Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored. +(1,33): two-heads-are-not-better-than-one #document | <!DOCTYPE html> | <html> @@ -157,7 +170,7 @@ Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored. #data <!DOCTYPE html><HTML><HEAD><head></HEAD></HTML> #errors -Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored. +(1,33): two-heads-are-not-better-than-one #document | <!DOCTYPE html> | <html> @@ -167,8 +180,8 @@ Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored. #data <textarea>foo<span>bar</span><i>baz #errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -Line: 1 Col: 35 Expected closing tag. Unexpected end of file. +(1,10): expected-doctype-but-got-start-tag +(1,35): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -179,8 +192,8 @@ Line: 1 Col: 35 Expected closing tag. Unexpected end of file. #data <title>foo<span>bar</em><i>baz #errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -Line: 1 Col: 30 Unexpected end of file. Expected end tag (title). +(1,7): expected-doctype-but-got-start-tag +(1,30): expected-named-closing-tag-but-got-eof #document | <html> | <head> @@ -228,7 +241,7 @@ foo" #data <!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html> #errors -Line: 1 Col: 60 Missing end tag (div, li). +(1,60): end-tag-too-early #document | <!DOCTYPE html> | <html> @@ -243,9 +256,9 @@ Line: 1 Col: 60 Missing end tag (div, li). #data <!doctype html><nobr><nobr><nobr> #errors -Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr). -Line: 1 Col: 33 Unexpected start tag (nobr) implies end tag (nobr). -Line: 1 Col: 33 Expected closing tag. Unexpected end of file. +(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> @@ -258,8 +271,8 @@ Line: 1 Col: 33 Expected closing tag. Unexpected end of file. #data <!doctype html><nobr><nobr></nobr><nobr> #errors -Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr). -Line: 1 Col: 40 Expected closing tag. Unexpected end of file. +(1,27): unexpected-start-tag-implies-end-tag +(1,40): expected-closing-tag-but-got-eof #document | <!DOCTYPE html> | <html> @@ -268,3 +281,26 @@ Line: 1 Col: 40 Expected closing tag. Unexpected end of file. | <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/test/data/tree-construction/tests4.dat b/test/data/tree-construction/tests4.dat index 3c50632..0a6174c 100644 --- a/test/data/tree-construction/tests4.dat +++ b/test/data/tree-construction/tests4.dat @@ -41,7 +41,6 @@ plaintext #data setting html's innerHTML #errors -Line: 1 Col: 24 Unexpected EOF in inner html mode. #document-fragment html #document diff --git a/test/data/tree-construction/tests5.dat b/test/data/tree-construction/tests5.dat index 2c95031..4d5fcd7 100644 --- a/test/data/tree-construction/tests5.dat +++ b/test/data/tree-construction/tests5.dat @@ -1,31 +1,33 @@ #data <style> <!-- </style>x #errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (style). +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> | <style> -| " <!-- </style>x" +| " <!-- " | <body> +| "x" #data <style> <!-- </style> --> </style>x #errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag +(1,34): unexpected-end-tag #document | <html> | <head> | <style> -| " <!-- </style> --> " +| " <!-- " +| " " | <body> -| "x" +| "--> x" #data <style> <!--> </style>x #errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -37,7 +39,7 @@ Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. #data <style> <!---> </style>x #errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -49,7 +51,7 @@ Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. #data <iframe> <!---> </iframe>x #errors -Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. +(1,8): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -61,55 +63,63 @@ Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. #data <iframe> <!--- </iframe>->x</iframe> --> </iframe>x #errors -Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. +(1,8): expected-doctype-but-got-start-tag +(1,36): unexpected-end-tag +(1,50): unexpected-end-tag #document | <html> | <head> | <body> | <iframe> -| " <!--- </iframe>->x</iframe> --> " -| "x" +| " <!--- " +| "->x --> x" #data <script> <!-- </script> --> </script>x #errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. +(1,8): expected-doctype-but-got-start-tag +(1,37): unexpected-end-tag #document | <html> | <head> | <script> -| " <!-- </script> --> " +| " <!-- " +| " " | <body> -| "x" +| "--> x" #data <title> <!-- </title> --> </title>x #errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag +(1,34): unexpected-end-tag #document | <html> | <head> | <title> -| " <!-- </title> --> " +| " <!-- " +| " " | <body> -| "x" +| "--> x" #data <textarea> <!--- </textarea>->x</textarea> --> </textarea>x #errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. +(1,10): expected-doctype-but-got-start-tag +(1,42): unexpected-end-tag +(1,58): unexpected-end-tag #document | <html> | <head> | <body> | <textarea> -| " <!--- </textarea>->x</textarea> --> " -| "x" +| " <!--- " +| "->x --> x" #data <style> <!</-- </style>x #errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -119,9 +129,20 @@ Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. | "x" #data +<p><xmp></xmp> +#errors +(1,3): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <p> +| <xmp> + +#data <xmp> <!-- > --> </xmp> #errors -Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE. +(1,5): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -132,7 +153,7 @@ Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE. #data <title>&</title> #errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -143,33 +164,34 @@ Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. #data <title><!--&--></title> #errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> | <title> -| "<!--&-->" +| "<!--&-->" | <body> #data <title><!--</title> #errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected end of file. Expected end tag (title). +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> | <title> -| "<!--</title>" +| "<!--" | <body> #data <noscript><!--</noscript>--></noscript> #errors -Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE. +(1,10): expected-doctype-but-got-start-tag +(1,39): unexpected-end-tag #document | <html> | <head> | <noscript> -| "<!--</noscript>-->" +| "<!--" | <body> +| "-->" diff --git a/test/data/tree-construction/tests6.dat b/test/data/tree-construction/tests6.dat index 40e347c..fedc64e 100644 --- a/test/data/tree-construction/tests6.dat +++ b/test/data/tree-construction/tests6.dat @@ -1,7 +1,7 @@ #data <!doctype html></head> <head> #errors -Line: 1 Col: 29 Unexpected start tag head. Ignored. +(1,29): unexpected-start-tag #document | <!DOCTYPE html> | <html> @@ -10,32 +10,10 @@ Line: 1 Col: 29 Unexpected start tag head. Ignored. | <body> #data -<!doctype html></html> <head> -#errors -Line: 1 Col: 22 Unexpected end tag (html) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " " - -#data -<!doctype html></body><meta> -#errors -Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <meta> - -#data <!doctype html><form><div></form><div> #errors -33: End tag “form” seen but there were unclosed elements. -38: End of file seen and there were open elements. +(1,33): end-tag-too-early-ignored +(1,38): expected-closing-tag-but-got-eof #document | <!DOCTYPE html> | <html> @@ -64,15 +42,15 @@ Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element. | <html> | <head> | <title> -| "<!--&-->" +| "<!--&-->" | <body> #data <!doctype> #errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -Line: 1 Col: 10 Unexpected > character. Expected DOCTYPE name. -Line: 1 Col: 10 Erroneous DOCTYPE. +(1,9): need-space-after-doctype +(1,10): expected-doctype-name-but-got-right-bracket +(1,10): unknown-doctype #document | <!DOCTYPE > | <html> @@ -82,8 +60,8 @@ Line: 1 Col: 10 Erroneous DOCTYPE. #data <!---x #errors -Line: 1 Col: 6 Unexpected end of file in comment. -Line: 1 Col: 6 Unexpected End of file. Expected DOCTYPE. +(1,6): eof-in-comment +(1,6): expected-doctype-but-got-eof #document | <!-- -x --> | <html> @@ -94,8 +72,8 @@ Line: 1 Col: 6 Unexpected End of file. Expected DOCTYPE. <body> <div> #errors -Line: 1 Col: 6 Unexpected start tag (body). -Line: 2 Col: 5 Expected closing tag. Unexpected end of file. +(1,6): unexpected-start-tag +(2,5): expected-closing-tag-but-got-eof #document-fragment div #document @@ -107,8 +85,10 @@ div <frameset></frameset> foo #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 2 Col: 3 Unexpected non-space characters in the after frameset phase. Ignored. +(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> @@ -120,8 +100,8 @@ Line: 2 Col: 3 Unexpected non-space characters in the after frameset phase. Igno <frameset></frameset> <noframes> #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 2 Col: 10 Expected closing tag. Unexpected end of file. +(1,10): expected-doctype-but-got-start-tag +(2,10): expected-named-closing-tag-but-got-eof #document | <html> | <head> @@ -134,8 +114,8 @@ Line: 2 Col: 10 Expected closing tag. Unexpected end of file. <frameset></frameset> <div> #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 2 Col: 5 Unexpected start tag (div) in the after frameset phase. Ignored. +(1,10): expected-doctype-but-got-start-tag +(2,5): unexpected-start-tag-after-frameset #document | <html> | <head> @@ -147,7 +127,7 @@ Line: 2 Col: 5 Unexpected start tag (div) in the after frameset phase. Ignored. <frameset></frameset> </html> #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. +(1,10): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -159,8 +139,8 @@ Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. <frameset></frameset> </div> #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 2 Col: 6 Unexpected end tag (div) in the after frameset phase. Ignored. +(1,10): expected-doctype-but-got-start-tag +(2,6): unexpected-end-tag-after-frameset #document | <html> | <head> @@ -171,9 +151,9 @@ Line: 2 Col: 6 Unexpected end tag (div) in the after frameset phase. Ignored. #data <form><form> #errors -Line: 1 Col: 6 Unexpected start tag (form). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected start tag (form). -Line: 1 Col: 12 Expected closing tag. Unexpected end of file. +(1,6): expected-doctype-but-got-start-tag +(1,12): unexpected-start-tag +(1,12): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -183,9 +163,9 @@ Line: 1 Col: 12 Expected closing tag. Unexpected end of file. #data <button><button> #errors -Line: 1 Col: 8 Unexpected start tag (button). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected start tag (button) implies end tag (button). -Line: 1 Col: 16 Expected closing tag. Unexpected end of file. +(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> @@ -196,9 +176,9 @@ Line: 1 Col: 16 Expected closing tag. Unexpected end of file. #data <table><tr><td></th> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (th). Ignored. -Line: 1 Col: 20 Expected closing tag. Unexpected end of file. +(1,7): expected-doctype-but-got-start-tag +(1,20): unexpected-end-tag +(1,20): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -211,10 +191,10 @@ Line: 1 Col: 20 Expected closing tag. Unexpected end of file. #data <table><caption><td> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (td). Ignored. -Line: 1 Col: 20 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 20 Expected closing tag. Unexpected end of file. +(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> @@ -228,8 +208,8 @@ Line: 1 Col: 20 Expected closing tag. Unexpected end of file. #data <table><caption><div> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 21 Expected closing tag. Unexpected end of file. +(1,7): expected-doctype-but-got-start-tag +(1,21): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -241,8 +221,8 @@ Line: 1 Col: 21 Expected closing tag. Unexpected end of file. #data </caption><div> #errors -Line: 1 Col: 10 Unexpected end tag (caption). Ignored. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. +(1,10): XXX-undefined-error +(1,15): expected-closing-tag-but-got-eof #document-fragment caption #document @@ -251,9 +231,9 @@ caption #data <table><caption><div></caption> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 31 Unexpected end tag (caption). Missing end tag (div). -Line: 1 Col: 31 Unexpected end of file. Expected table content. +(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> @@ -265,8 +245,8 @@ Line: 1 Col: 31 Unexpected end of file. Expected table content. #data <table><caption></table> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 24 Unexpected end table tag in caption. Generates implied end caption. +(1,7): expected-doctype-but-got-start-tag +(1,24): end-table-tag-in-caption #document | <html> | <head> @@ -277,9 +257,8 @@ Line: 1 Col: 24 Unexpected end table tag in caption. Generates implied end capti #data </table><div> #errors -Line: 1 Col: 8 Unexpected end table tag in caption. Generates implied end caption. -Line: 1 Col: 8 Unexpected end tag (caption). Ignored. -Line: 1 Col: 13 Expected closing tag. Unexpected end of file. +(1,8): unexpected-end-tag +(1,13): expected-closing-tag-but-got-eof #document-fragment caption #document @@ -288,18 +267,18 @@ caption #data <table><caption></body></col></colgroup></html></tbody></td></tfoot></th></thead></tr> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end tag (body). Ignored. -Line: 1 Col: 29 Unexpected end tag (col). Ignored. -Line: 1 Col: 40 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 47 Unexpected end tag (html). Ignored. -Line: 1 Col: 55 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 60 Unexpected end tag (td). Ignored. -Line: 1 Col: 68 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 73 Unexpected end tag (th). Ignored. -Line: 1 Col: 81 Unexpected end tag (thead). Ignored. -Line: 1 Col: 86 Unexpected end tag (tr). Ignored. -Line: 1 Col: 86 Expected closing tag. Unexpected end of file. +(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> @@ -310,8 +289,8 @@ Line: 1 Col: 86 Expected closing tag. Unexpected end of file. #data <table><caption><div></div> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 27 Expected closing tag. Unexpected end of file. +(1,7): expected-doctype-but-got-start-tag +(1,27): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -323,13 +302,13 @@ Line: 1 Col: 27 Expected closing tag. Unexpected end of file. #data <table><tr><td></body></caption></col></colgroup></html> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end tag (body). Ignored. -Line: 1 Col: 32 Unexpected end tag (caption). Ignored. -Line: 1 Col: 38 Unexpected end tag (col). Ignored. -Line: 1 Col: 49 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 56 Unexpected end tag (html). Ignored. -Line: 1 Col: 56 Expected closing tag. Unexpected end of file. +(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> @@ -342,12 +321,12 @@ Line: 1 Col: 56 Expected closing tag. Unexpected end of file. #data </table></tbody></tfoot></thead></tr><div> #errors -Line: 1 Col: 8 Unexpected end tag (table). Ignored. -Line: 1 Col: 16 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 24 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 32 Unexpected end tag (thead). Ignored. -Line: 1 Col: 37 Unexpected end tag (tr). Ignored. -Line: 1 Col: 42 Expected closing tag. Unexpected end of file. +(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 @@ -356,9 +335,11 @@ td #data <table><colgroup>foo #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 20 Unexpected end of file. Expected table content. +(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> @@ -370,7 +351,9 @@ Line: 1 Col: 20 Unexpected end of file. Expected table content. #data foo<col> #errors -Line: 1 Col: 3 Unexpected end tag (colgroup). Ignored. +(1,1): unexpected-character-in-colgroup +(1,2): unexpected-character-in-colgroup +(1,3): unexpected-character-in-colgroup #document-fragment colgroup #document @@ -379,9 +362,9 @@ colgroup #data <table><colgroup></col> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 23 This element (col) has no end tag. -Line: 1 Col: 23 Expected closing tag. Unexpected end of file. +(1,7): expected-doctype-but-got-start-tag +(1,23): no-end-tag +(1,23): eof-in-table #document | <html> | <head> @@ -392,9 +375,9 @@ Line: 1 Col: 23 Expected closing tag. Unexpected end of file. #data <frameset><div> #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 1 Col: 15 Unexpected start tag token (div) in the frameset phase. Ignored. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. +(1,10): expected-doctype-but-got-start-tag +(1,15): unexpected-start-tag-in-frameset +(1,15): eof-in-frameset #document | <html> | <head> @@ -403,7 +386,7 @@ Line: 1 Col: 15 Expected closing tag. Unexpected end of file. #data </frameset><frame> #errors -Line: 1 Col: 11 Unexpected end tag token (frameset) in the frameset phase (innerHTML). +(1,11): unexpected-frameset-in-frameset-innerhtml #document-fragment frameset #document @@ -412,9 +395,9 @@ frameset #data <frameset></div> #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end tag token (div) in the frameset phase. Ignored. -Line: 1 Col: 16 Expected closing tag. Unexpected end of file. +(1,10): expected-doctype-but-got-start-tag +(1,16): unexpected-end-tag-in-frameset +(1,16): eof-in-frameset #document | <html> | <head> @@ -423,8 +406,8 @@ Line: 1 Col: 16 Expected closing tag. Unexpected end of file. #data </body><div> #errors -Line: 1 Col: 7 Unexpected end tag (body). Ignored. -Line: 1 Col: 12 Expected closing tag. Unexpected end of file. +(1,7): unexpected-close-tag +(1,12): expected-closing-tag-but-got-eof #document-fragment body #document @@ -433,9 +416,9 @@ body #data <table><tr><div> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected start tag (div) in table context caused voodoo mode. -Line: 1 Col: 16 Unexpected end of file. Expected table content. +(1,7): expected-doctype-but-got-start-tag +(1,16): unexpected-start-tag-implies-table-voodoo +(1,16): eof-in-table #document | <html> | <head> @@ -448,7 +431,7 @@ Line: 1 Col: 16 Unexpected end of file. Expected table content. #data </tr><td> #errors -Line: 1 Col: 5 Unexpected end tag (tr). Ignored. +(1,5): unexpected-end-tag #document-fragment tr #document @@ -457,9 +440,9 @@ tr #data </tbody></tfoot></thead><td> #errors -Line: 1 Col: 8 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 16 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 24 Unexpected end tag (thead). Ignored. +(1,8): unexpected-end-tag +(1,16): unexpected-end-tag +(1,24): unexpected-end-tag #document-fragment tr #document @@ -468,10 +451,9 @@ tr #data <table><tr><div><td> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected start tag (div) in table context caused voodoo mode. -Line: 1 Col: 20 Unexpected implied end tag (div) in the table row phase. -Line: 1 Col: 20 Expected closing tag. Unexpected end of file. +(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> @@ -485,13 +467,12 @@ Line: 1 Col: 20 Expected closing tag. Unexpected end of file. #data <caption><col><colgroup><tbody><tfoot><thead><tr> #errors -Line: 1 Col: 9 Unexpected start tag (caption). -Line: 1 Col: 14 Unexpected start tag (col). -Line: 1 Col: 24 Unexpected start tag (colgroup). -Line: 1 Col: 31 Unexpected start tag (tbody). -Line: 1 Col: 38 Unexpected start tag (tfoot). -Line: 1 Col: 45 Unexpected start tag (thead). -Line: 1 Col: 49 Unexpected end of file. Expected table content. +(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 @@ -500,9 +481,9 @@ tbody #data <table><tbody></thead> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end tag (thead) in the table body phase. Ignored. -Line: 1 Col: 22 Unexpected end of file. Expected table content. +(1,7): expected-doctype-but-got-start-tag +(1,22): unexpected-end-tag-in-table-body +(1,22): eof-in-table #document | <html> | <head> @@ -513,8 +494,7 @@ Line: 1 Col: 22 Unexpected end of file. Expected table content. #data </table><tr> #errors -Line: 1 Col: 8 Unexpected end tag (table). Ignored. -Line: 1 Col: 12 Unexpected end of file. Expected table content. +(1,8): unexpected-end-tag #document-fragment tbody #document @@ -523,16 +503,16 @@ tbody #data <table><tbody></body></caption></col></colgroup></html></td></th></tr> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected end tag (body) in the table body phase. Ignored. -Line: 1 Col: 31 Unexpected end tag (caption) in the table body phase. Ignored. -Line: 1 Col: 37 Unexpected end tag (col) in the table body phase. Ignored. -Line: 1 Col: 48 Unexpected end tag (colgroup) in the table body phase. Ignored. -Line: 1 Col: 55 Unexpected end tag (html) in the table body phase. Ignored. -Line: 1 Col: 60 Unexpected end tag (td) in the table body phase. Ignored. -Line: 1 Col: 65 Unexpected end tag (th) in the table body phase. Ignored. -Line: 1 Col: 70 Unexpected end tag (tr) in the table body phase. Ignored. -Line: 1 Col: 70 Unexpected end of file. Expected table content. +(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> @@ -543,10 +523,10 @@ Line: 1 Col: 70 Unexpected end of file. Expected table content. #data <table><tbody></div> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (div) in table context caused voodoo mode. -Line: 1 Col: 20 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 20 Unexpected end of file. Expected table content. +(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> @@ -557,9 +537,9 @@ Line: 1 Col: 20 Unexpected end of file. Expected table content. #data <table><table> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected start tag (table) implies end tag (table). -Line: 1 Col: 14 Unexpected end of file. Expected table content. +(1,7): expected-doctype-but-got-start-tag +(1,14): unexpected-start-tag-implies-end-tag +(1,14): eof-in-table #document | <html> | <head> @@ -570,19 +550,19 @@ Line: 1 Col: 14 Unexpected end of file. Expected table content. #data <table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end tag (body). Ignored. -Line: 1 Col: 24 Unexpected end tag (caption). Ignored. -Line: 1 Col: 30 Unexpected end tag (col). Ignored. -Line: 1 Col: 41 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 48 Unexpected end tag (html). Ignored. -Line: 1 Col: 56 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 61 Unexpected end tag (td). Ignored. -Line: 1 Col: 69 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 74 Unexpected end tag (th). Ignored. -Line: 1 Col: 82 Unexpected end tag (thead). Ignored. -Line: 1 Col: 87 Unexpected end tag (tr). Ignored. -Line: 1 Col: 87 Unexpected end of file. Expected table content. +(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> @@ -592,8 +572,7 @@ Line: 1 Col: 87 Unexpected end of file. Expected table content. #data </table><tr> #errors -Line: 1 Col: 8 Unexpected end tag (table). Ignored. -Line: 1 Col: 12 Unexpected end of file. Expected table content. +(1,8): unexpected-end-tag #document-fragment table #document @@ -601,21 +580,9 @@ table | <tr> #data -<html></html><!-- foo --> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end tag (html) after the (implied) root element. -#document -| <html> -| <head> -| <body> -| <!-- foo --> - -#data <body></body></html> #errors -Line: 1 Col: 20 Unexpected html end tag in inner html mode. -Line: 1 Col: 20 Unexpected EOF in inner html mode. +(1,20): unexpected-end-tag-after-body-innerhtml #document-fragment html #document @@ -625,7 +592,7 @@ html #data <html><frameset></frameset></html> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -635,10 +602,61 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"><html></html> #errors -Line: 1 Col: 50 Erroneous DOCTYPE. -Line: 1 Col: 63 Unexpected end tag (html) after the (implied) root element. +(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/test/data/tree-construction/tests7.dat b/test/data/tree-construction/tests7.dat index 0ae1db6..f9471b9 100644 --- a/test/data/tree-construction/tests7.dat +++ b/test/data/tree-construction/tests7.dat @@ -12,8 +12,7 @@ #data <!doctype html><table><title>X</title></table> #errors -Line: 1 Col: 29 Unexpected start tag (title) in table context caused voodoo mode. -Line: 1 Col: 38 Unexpected end tag (title) in table context caused voodoo mode. +(1,29): unexpected-start-tag-implies-table-voodoo #document | <!DOCTYPE html> | <html> @@ -26,7 +25,7 @@ Line: 1 Col: 38 Unexpected end tag (title) in table context caused voodoo mode. #data <!doctype html><head></head><title>X</title> #errors -Line: 1 Col: 35 Unexpected start tag (title) that can be in head. Moved. +(1,35): unexpected-start-tag-out-of-my-head #document | <!DOCTYPE html> | <html> @@ -38,7 +37,7 @@ Line: 1 Col: 35 Unexpected start tag (title) that can be in head. Moved. #data <!doctype html></head><title>X</title> #errors -Line: 1 Col: 29 Unexpected start tag (title) that can be in head. Moved. +(1,29): unexpected-start-tag-out-of-my-head #document | <!DOCTYPE html> | <html> @@ -48,21 +47,9 @@ Line: 1 Col: 29 Unexpected start tag (title) that can be in head. Moved. | <body> #data -<!doctype html></body><title>X</title> -#errors -Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <title> -| "X" - -#data <!doctype html><table><meta></table> #errors -Line: 1 Col: 28 Unexpected start tag (meta) in table context caused voodoo mode. +(1,28): unexpected-start-tag-implies-table-voodoo #document | <!DOCTYPE html> | <html> @@ -72,25 +59,9 @@ Line: 1 Col: 28 Unexpected start tag (meta) in table context caused voodoo mode. | <table> #data -<!doctype html><table> X<meta></table> -#errors -Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 30 Unexpected start tag (meta) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <meta> -| <table> -| " " - -#data <!doctype html><table>X<tr><td><table> <meta></table></table> #errors -Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 45 Unexpected start tag (meta) in table context caused voodoo mode. +(1,45): unexpected-start-tag-implies-table-voodoo #document | <!DOCTYPE html> | <html> @@ -124,50 +95,8 @@ Line: 1 Col: 45 Unexpected start tag (meta) in table context caused voodoo mode. | <body> #data -<!doctype html><table> x</table> -#errors -Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "x" -| <table> -| " " - -#data -<!doctype html><table> x </table> -#errors -Line: 1 Col: 25 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "x " -| <table> -| " " - -#data -<!doctype html><table><tr> x</table> -#errors -Line: 1 Col: 28 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "x" -| <table> -| <tbody> -| <tr> -| " " - -#data <!doctype html><table><style> <tr>x </style> </table> #errors -Line: 1 Col: 44 Unexpected end tag (style) in table context caused voodoo mode. #document | <!DOCTYPE html> | <html> @@ -181,7 +110,6 @@ Line: 1 Col: 44 Unexpected end tag (style) in table context caused voodoo mode. #data <!doctype html><table><TBODY><script> <tr>x </script> </table> #errors -Line: 1 Col: 53 Unexpected end tag (script) in table context caused voodoo mode. #document | <!DOCTYPE html> | <html> @@ -194,23 +122,6 @@ Line: 1 Col: 53 Unexpected end tag (script) in table context caused voodoo mode. | " " #data -<!doctype html><table>X<style> <tr>x </style> </table> -#errors -Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 30 Unexpected start tag (style) in table context caused voodoo mode. -Line: 1 Col: 45 Unexpected end tag (style) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <style> -| " <tr>x " -| " " -| <table> - -#data <!doctype html><p><applet><p>X</p></applet> #errors #document @@ -238,7 +149,7 @@ X</listing> #data <!doctype html><select><input>X #errors -Line: 1 Col: 30 Unexpected input start tag in the select phase. +(1,30): unexpected-input-in-select #document | <!DOCTYPE html> | <html> @@ -251,7 +162,7 @@ Line: 1 Col: 30 Unexpected input start tag in the select phase. #data <!doctype html><select><select>X #errors -Line: 1 Col: 31 Unexpected select start tag in the select phase treated as select end tag. +(1,31): unexpected-select-in-select #document | <!DOCTYPE html> | <html> @@ -263,7 +174,7 @@ Line: 1 Col: 31 Unexpected select start tag in the select phase treated as selec #data <!doctype html><table><input type=hidDEN></table> #errors -Line: 1 Col: 41 Unexpected input with type hidden in table context. +(1,41): unexpected-hidden-input-in-table #document | <!DOCTYPE html> | <html> @@ -276,22 +187,22 @@ Line: 1 Col: 41 Unexpected input with type hidden in table context. #data <!doctype html><table>X<input type=hidDEN></table> #errors -Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 42 Unexpected start tag (input) in table context caused voodoo mode. +(1,23): foster-parenting-character +(1,42): unexpected-hidden-input-in-table #document | <!DOCTYPE html> | <html> | <head> | <body> | "X" -| <input> -| type="hidDEN" | <table> +| <input> +| type="hidDEN" #data <!doctype html><table> <input type=hidDEN></table> #errors -Line: 1 Col: 43 Unexpected input with type hidden in table context. +(1,43): unexpected-hidden-input-in-table #document | <!DOCTYPE html> | <html> @@ -305,7 +216,7 @@ Line: 1 Col: 43 Unexpected input with type hidden in table context. #data <!doctype html><table> <input type='hidDEN'></table> #errors -Line: 1 Col: 45 Unexpected input with type hidden in table context. +(1,45): unexpected-hidden-input-in-table #document | <!DOCTYPE html> | <html> @@ -319,8 +230,8 @@ Line: 1 Col: 45 Unexpected input with type hidden in table context. #data <!doctype html><table><input type=" hidden"><input type=hidDEN></table> #errors -Line: 1 Col: 44 Unexpected start tag (input) in table context caused voodoo mode. -Line: 1 Col: 63 Unexpected start tag (input) in table context caused voodoo mode. +(1,44): unexpected-start-tag-implies-table-voodoo +(1,63): unexpected-hidden-input-in-table #document | <!DOCTYPE html> | <html> @@ -328,16 +239,16 @@ Line: 1 Col: 63 Unexpected start tag (input) in table context caused voodoo mode | <body> | <input> | type=" hidden" -| <input> -| type="hidDEN" | <table> +| <input> +| type="hidDEN" #data <!doctype html><table><select>X<tr> #errors -Line: 1 Col: 30 Unexpected start tag (select) in table context caused voodoo mode. -Line: 1 Col: 35 Unexpected table element start tag (trs) in the select in table phase. -Line: 1 Col: 35 Unexpected end of file. Expected table content. +(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> @@ -363,7 +274,6 @@ Line: 1 Col: 35 Unexpected end of file. Expected table content. #data <!DOCTYPE hTmL><html></html> #errors -Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element. #document | <!DOCTYPE html> | <html> @@ -373,7 +283,6 @@ Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element. #data <!DOCTYPE HTML><html></html> #errors -Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element. #document | <!DOCTYPE html> | <html> @@ -383,8 +292,7 @@ Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element. #data <body>X</body></body> #errors -Line: 1 Col: 21 Unexpected end tag token (body) in the after body phase. -Line: 1 Col: 21 Unexpected EOF in inner html mode. +(1,21): unexpected-end-tag-after-body #document-fragment html #document @@ -393,35 +301,102 @@ html | "X" #data -<!doctype html><div><table><a>foo</a> <tr><td>bar</td> </tr></table></div> +<div><p>a</x> b #errors -Line: 1 Col: 30 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 37 Unexpected end tag (a) in table context caused voodoo mode. +(1,5): expected-doctype-but-got-start-tag +(1,13): unexpected-end-tag +(1,15): expected-closing-tag-but-got-eof #document -| <!DOCTYPE html> | <html> | <head> | <body> | <div> -| <a> -| "foo" -| " " -| <table> -| <tbody> -| <tr> -| <td> -| "bar" +| <p> +| "a b" #data -<div><p>a</x> b +<table><tr><td><code></code> </table> #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end tag (x). Ignored. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> | <body> -| <div> -| <p> -| "a b" +| <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/test/data/tree-construction/tests8.dat b/test/data/tree-construction/tests8.dat index 90e6c91..93289f3 100644 --- a/test/data/tree-construction/tests8.dat +++ b/test/data/tree-construction/tests8.dat @@ -3,9 +3,9 @@ <div></div> </span>x #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 3 Col: 7 Unexpected end tag (span). Ignored. -Line: 3 Col: 8 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(3,7): unexpected-end-tag +(3,8): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -21,9 +21,9 @@ x" <div>x<div></div> </span>x #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 2 Col: 7 Unexpected end tag (span). Ignored. -Line: 2 Col: 8 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(2,7): unexpected-end-tag +(2,8): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -37,9 +37,9 @@ x" #data <div>x<div></div>x</span>x #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 25 Unexpected end tag (span). Ignored. -Line: 1 Col: 26 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,25): unexpected-end-tag +(1,26): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -52,9 +52,9 @@ Line: 1 Col: 26 Expected closing tag. Unexpected end of file. #data <div>x<div></div>y</span>z #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 25 Unexpected end tag (span). Ignored. -Line: 1 Col: 26 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,25): unexpected-end-tag +(1,26): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -67,13 +67,16 @@ Line: 1 Col: 26 Expected closing tag. Unexpected end of file. #data <table><div>x<div></div>x</span>x #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected start tag (div) in table context caused voodoo mode. -Line: 1 Col: 18 Unexpected start tag (div) in table context caused voodoo mode. -Line: 1 Col: 24 Unexpected end tag (div) in table context caused voodoo mode. -Line: 1 Col: 32 Unexpected end tag (span) in table context caused voodoo mode. -Line: 1 Col: 32 Unexpected end tag (span). Ignored. -Line: 1 Col: 33 Unexpected end of file. Expected table content. +(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> @@ -87,9 +90,8 @@ Line: 1 Col: 33 Unexpected end of file. Expected table content. #data x<table>x #errors -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -Line: 1 Col: 9 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 9 Unexpected end of file. Expected table content. +(1,1): expected-doctype-but-got-chars +(1,9): foster-parenting-character #document | <html> | <head> @@ -100,10 +102,9 @@ Line: 1 Col: 9 Unexpected end of file. Expected table content. #data x<table><table>x #errors -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -Line: 1 Col: 15 Unexpected start tag (table) implies end tag (table). -Line: 1 Col: 16 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 16 Unexpected end of file. Expected table content. +(1,1): expected-doctype-but-got-chars +(1,15): unexpected-start-tag-implies-end-tag +(1,16): foster-parenting-character #document | <html> | <head> @@ -116,9 +117,9 @@ Line: 1 Col: 16 Unexpected end of file. Expected table content. #data <b>a<div></div><div></b>y #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 24 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. +(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> @@ -133,10 +134,10 @@ Line: 1 Col: 25 Expected closing tag. Unexpected end of file. #data <a><div><p></a> #errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. +(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> diff --git a/test/data/tree-construction/tests9.dat b/test/data/tree-construction/tests9.dat index 3bc87b9..40651a0 100644 --- a/test/data/tree-construction/tests9.dat +++ b/test/data/tree-construction/tests9.dat @@ -19,10 +19,37 @@ | <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 -Line: 1 Col: 35 Unexpected start tag token (math) in the select phase. Ignored. -Line: 1 Col: 42 Unexpected end tag (math) in the select phase. Ignored. +(1,35) unexpected-start-tag-in-select +(1,42) unexpected-end-tag-in-select #document | <!DOCTYPE html> | <html> @@ -33,8 +60,8 @@ Line: 1 Col: 42 Unexpected end tag (math) in the select phase. Ignored. #data <!DOCTYPE html><body><select><option><math></math></option></select> #errors -Line: 1 Col: 43 Unexpected start tag token (math) in the select phase. Ignored. -Line: 1 Col: 50 Unexpected end tag (math) in the select phase. Ignored. +(1,43) unexpected-start-tag-in-select +(1,50) unexpected-end-tag-in-select #document | <!DOCTYPE html> | <html> @@ -46,8 +73,7 @@ Line: 1 Col: 50 Unexpected end tag (math) in the select phase. Ignored. #data <!DOCTYPE html><body><table><math></math></table> #errors -Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 41 Unexpected end tag (math) in table context caused voodoo mode. +(1,34) unexpected-start-tag-implies-table-voodoo #document | <!DOCTYPE html> | <html> @@ -59,9 +85,10 @@ Line: 1 Col: 41 Unexpected end tag (math) in table context caused voodoo mode. #data <!DOCTYPE html><body><table><math><mi>foo</mi></math></table> #errors -Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 46 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 53 Unexpected end tag (math) in table context caused voodoo mode. +(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> @@ -75,10 +102,13 @@ Line: 1 Col: 53 Unexpected end tag (math) in table context caused voodoo mode. #data <!DOCTYPE html><body><table><math><mi>foo</mi><mi>bar</mi></math></table> #errors -Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 46 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 58 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 65 Unexpected end tag (math) in table context caused voodoo mode. +(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> @@ -94,10 +124,13 @@ Line: 1 Col: 65 Unexpected end tag (math) in table context caused voodoo mode. #data <!DOCTYPE html><body><table><tbody><math><mi>foo</mi><mi>bar</mi></math></tbody></table> #errors -Line: 1 Col: 41 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 53 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 65 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 72 Unexpected end tag (math) in table context caused voodoo mode. +(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> @@ -114,10 +147,13 @@ Line: 1 Col: 72 Unexpected end tag (math) in table context caused voodoo mode. #data <!DOCTYPE html><body><table><tbody><tr><math><mi>foo</mi><mi>bar</mi></math></tr></tbody></table> #errors -Line: 1 Col: 45 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 57 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 69 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 76 Unexpected end tag (math) in table context caused voodoo mode. +(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> @@ -191,8 +227,8 @@ Line: 1 Col: 76 Unexpected end tag (math) in table context caused voodoo mode. #data <!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux #errors -Line: 1 Col: 70 HTML start tag "p" in a foreign namespace context. -Line: 1 Col: 81 Unexpected end table tag in caption. Generates implied end caption. +(1,70) unexpected-html-element-in-foreign-content +(1,81) XXX-undefined-error #document | <!DOCTYPE html> | <html> @@ -213,8 +249,8 @@ Line: 1 Col: 81 Unexpected end table tag in caption. Generates implied end capti #data <!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</table><p>quux #errors -Line: 1 Col: 78 Unexpected end table tag in caption. Generates implied end caption. -Line: 1 Col: 78 Unexpected end tag (caption). Missing end tag (math). +(1,78) unexpected-end-tag +(1,78) expected-one-end-tag-but-got-another #document | <!DOCTYPE html> | <html> @@ -234,11 +270,18 @@ Line: 1 Col: 78 Unexpected end tag (caption). Missing end tag (math). #data <!DOCTYPE html><body><table><colgroup><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux #errors -Line: 1 Col: 44 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 56 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 68 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 71 HTML start tag "p" in a foreign namespace context. -Line: 1 Col: 71 Unexpected start tag (p) in table context caused voodoo mode. +(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> @@ -259,13 +302,13 @@ Line: 1 Col: 71 Unexpected start tag (p) in table context caused voodoo mode. #data <!DOCTYPE html><body><table><tr><td><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux #errors -Line: 1 Col: 50 Unexpected start tag token (math) in the select phase. Ignored. -Line: 1 Col: 54 Unexpected start tag token (mi) in the select phase. Ignored. -Line: 1 Col: 62 Unexpected end tag (mi) in the select phase. Ignored. -Line: 1 Col: 66 Unexpected start tag token (mi) in the select phase. Ignored. -Line: 1 Col: 74 Unexpected end tag (mi) in the select phase. Ignored. -Line: 1 Col: 77 Unexpected start tag token (p) in the select phase. Ignored. -Line: 1 Col: 88 Unexpected table element end tag (tables) in the select in table phase. +(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> @@ -283,14 +326,14 @@ Line: 1 Col: 88 Unexpected table element end tag (tables) in the select in table #data <!DOCTYPE html><body><table><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux #errors -Line: 1 Col: 36 Unexpected start tag (select) in table context caused voodoo mode. -Line: 1 Col: 42 Unexpected start tag token (math) in the select phase. Ignored. -Line: 1 Col: 46 Unexpected start tag token (mi) in the select phase. Ignored. -Line: 1 Col: 54 Unexpected end tag (mi) in the select phase. Ignored. -Line: 1 Col: 58 Unexpected start tag token (mi) in the select phase. Ignored. -Line: 1 Col: 66 Unexpected end tag (mi) in the select phase. Ignored. -Line: 1 Col: 69 Unexpected start tag token (p) in the select phase. Ignored. -Line: 1 Col: 80 Unexpected table element end tag (tables) in the select in table phase. +(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> @@ -305,8 +348,8 @@ Line: 1 Col: 80 Unexpected table element end tag (tables) in the select in table #data <!DOCTYPE html><body></body></html><math><mi>foo</mi><mi>bar</mi><p>baz #errors -Line: 1 Col: 41 Unexpected start tag (). -Line: 1 Col: 68 HTML start tag "p" in a foreign namespace context. +(1,41) expected-eof-but-got-start-tag +(1,68) unexpected-html-element-in-foreign-content #document | <!DOCTYPE html> | <html> @@ -323,8 +366,8 @@ Line: 1 Col: 68 HTML start tag "p" in a foreign namespace context. #data <!DOCTYPE html><body></body><math><mi>foo</mi><mi>bar</mi><p>baz #errors -Line: 1 Col: 34 Unexpected start tag token (math) in the after body phase. -Line: 1 Col: 61 HTML start tag "p" in a foreign namespace context. +(1,34) unexpected-start-tag-after-body +(1,61) unexpected-html-element-in-foreign-content #document | <!DOCTYPE html> | <html> @@ -341,14 +384,14 @@ Line: 1 Col: 61 HTML start tag "p" in a foreign namespace context. #data <!DOCTYPE html><frameset><math><mi></mi><mi></mi><p><span> #errors -Line: 1 Col: 31 Unexpected start tag token (math) in the frameset phase. Ignored. -Line: 1 Col: 35 Unexpected start tag token (mi) in the frameset phase. Ignored. -Line: 1 Col: 40 Unexpected end tag token (mi) in the frameset phase. Ignored. -Line: 1 Col: 44 Unexpected start tag token (mi) in the frameset phase. Ignored. -Line: 1 Col: 49 Unexpected end tag token (mi) in the frameset phase. Ignored. -Line: 1 Col: 52 Unexpected start tag token (p) in the frameset phase. Ignored. -Line: 1 Col: 58 Unexpected start tag token (span) in the frameset phase. Ignored. -Line: 1 Col: 58 Expected closing tag. Unexpected end of file. +(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> @@ -358,13 +401,13 @@ Line: 1 Col: 58 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><frameset></frameset><math><mi></mi><mi></mi><p><span> #errors -Line: 1 Col: 42 Unexpected start tag (math) in the after frameset phase. Ignored. -Line: 1 Col: 46 Unexpected start tag (mi) in the after frameset phase. Ignored. -Line: 1 Col: 51 Unexpected end tag (mi) in the after frameset phase. Ignored. -Line: 1 Col: 55 Unexpected start tag (mi) in the after frameset phase. Ignored. -Line: 1 Col: 60 Unexpected end tag (mi) in the after frameset phase. Ignored. -Line: 1 Col: 63 Unexpected start tag (p) in the after frameset phase. Ignored. -Line: 1 Col: 69 Unexpected start tag (span) in the after frameset phase. Ignored. +(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> diff --git a/test/data/tree-construction/tests_innerHTML_1.dat b/test/data/tree-construction/tests_innerHTML_1.dat new file mode 100644 index 0000000..9c5c182 --- /dev/null +++ b/test/data/tree-construction/tests_innerHTML_1.dat @@ -0,0 +1,891 @@ +#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> diff --git a/test/data/tree-construction/tricky01.dat b/test/data/tree-construction/tricky01.dat new file mode 100644 index 0000000..f706521 --- /dev/null +++ b/test/data/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/test/data/tree-construction/webkit01.dat b/test/data/tree-construction/webkit01.dat new file mode 100644 index 0000000..c480acc --- /dev/null +++ b/test/data/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/test/data/tree-construction/webkit02.dat b/test/data/tree-construction/webkit02.dat new file mode 100644 index 0000000..647fcfd --- /dev/null +++ b/test/data/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" |