{
"tests": [
{
"fragmentContext": null,
"description": "<svg><![CDATA[foo\\nbar]]>",
"input": "<svg><![CDATA[foo\nbar]]>",
"output": [
[
"StartTag",
"svg",
{}
],
[
"Character",
"foo\nbar"
]
]
},
{
"fragmentContext": null,
"description": "<svg><![CDATA[foo\\rbar]]>",
"input": "<svg><![CDATA[foo\rbar]]>",
"output": [
[
"StartTag",
"svg",
{}
],
[
"Character",
"foo\nbar"
]
]
},
{
"fragmentContext": null,
"description": "<svg><![CDATA[foo\\nbar]]>",
"input": "<svg><![CDATA[foo\nbar]]>",
"output": [
[
"StartTag",
"svg",
{}
],
[
"Character",
"foo\nbar"
]
]
},
{
"fragmentContext": null,
"description": "<script>a='\\u0000'</script>",
"input": "<script>a='\u0000'</script>",
"output": [
[
"StartTag",
"script",
{}
],
[
"Character",
"a='�'"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!--\\u0000</script>",
"input": "<script type=\"data\"><!--\u0000</script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!--�"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!--foo\\u0000</script>",
"input": "<script type=\"data\"><!--foo\u0000</script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!--foo�"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!-- foo-\\u0000</script>",
"input": "<script type=\"data\"><!-- foo-\u0000</script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!-- foo-�"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!-- foo--\\u0000</script>",
"input": "<script type=\"data\"><!-- foo--\u0000</script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!-- foo--�"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!-- foo-",
"input": "<script type=\"data\"><!-- foo-",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!-- foo-"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!-- foo-<</script>",
"input": "<script type=\"data\"><!-- foo-<</script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!-- foo-<"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!-- foo-<S",
"input": "<script type=\"data\"><!-- foo-<S",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!-- foo-<S"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!-- foo-</SCRIPT>",
"input": "<script type=\"data\"><!-- foo-</SCRIPT>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!-- foo-"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!--<p></script>",
"input": "<script type=\"data\"><!--<p></script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!--<p>"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!--<script></script></script>",
"input": "<script type=\"data\"><!--<script></script></script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!--<script></script>"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!--<script>\\u0000</script></script>",
"input": "<script type=\"data\"><!--<script>\u0000</script></script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!--<script>�</script>"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!--<script>-\\u0000</script></script>",
"input": "<script type=\"data\"><!--<script>-\u0000</script></script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!--<script>-�</script>"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!--<script>--\\u0000</script></script>",
"input": "<script type=\"data\"><!--<script>--\u0000</script></script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!--<script>--�</script>"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!--<script>---</script></script>",
"input": "<script type=\"data\"><!--<script>---</script></script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!--<script>---</script>"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!--<script></scrip></SCRIPT></script>",
"input": "<script type=\"data\"><!--<script></scrip></SCRIPT></script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!--<script></scrip></SCRIPT>"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!--<script></scrip </SCRIPT></script>",
"input": "<script type=\"data\"><!--<script></scrip </SCRIPT></script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!--<script></scrip </SCRIPT>"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!--<script></scrip/</SCRIPT></script>",
"input": "<script type=\"data\"><!--<script></scrip/</SCRIPT></script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!--<script></scrip/</SCRIPT>"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"></scrip/></script>",
"input": "<script type=\"data\"></scrip/></script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"</scrip/>"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"></scrip ></script>",
"input": "<script type=\"data\"></scrip ></script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"</scrip >"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!--</scrip></script>",
"input": "<script type=\"data\"><!--</scrip></script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!--</scrip>"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!--</scrip </script>",
"input": "<script type=\"data\"><!--</scrip </script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!--</scrip "
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<script type=\"data\"><!--</scrip/</script>",
"input": "<script type=\"data\"><!--</scrip/</script>",
"output": [
[
"StartTag",
"script",
{
"type": "data"
}
],
[
"Character",
"<!--</scrip/"
],
[
"EndTag",
"script"
]
]
},
{
"fragmentContext": null,
"description": "<!DOCTYPE html><!DOCTYPE html>",
"input": "<!DOCTYPE html><!DOCTYPE html>",
"output": [
[
"DOCTYPE",
"html",
null,
null,
true
],
[
"DOCTYPE",
"html",
null,
null,
true
]
]
},
{
"fragmentContext": null,
"description": "<html><!DOCTYPE html>",
"input": "<html><!DOCTYPE html>",
"output": [
[
"StartTag",
"html",
{}
],
[
"DOCTYPE",
"html",
null,
null,
true
]
]
},
{
"fragmentContext": null,
"description": "<html><head><!DOCTYPE html></head>",
"input": "<html><head><!DOCTYPE html></head>",
"output": [
[
"StartTag",
"html",
{}
],
[
"StartTag",
"head",
{}
],
[
"DOCTYPE",
"html",
null,
null,
true
],
[
"EndTag",
"head"
]
]
},
{
"fragmentContext": null,
"description": "<html><head></head><!DOCTYPE html>",
"input": "<html><head></head><!DOCTYPE html>",
"output": [
[
"StartTag",
"html",
{}
],
[
"StartTag",
"head",
{}
],
[
"EndTag",
"head"
],
[
"DOCTYPE",
"html",
null,
null,
true
]
]
},
{
"fragmentContext": null,
"description": "<body></body><!DOCTYPE html>",
"input": "<body></body><!DOCTYPE html>",
"output": [
[
"StartTag",
"body",
{}
],
[
"EndTag",
"body"
],
[
"DOCTYPE",
"html",
null,
null,
true
]
]
},
{
"fragmentContext": null,
"description": "<table><!DOCTYPE html></table>",
"input": "<table><!DOCTYPE html></table>",
"output": [
[
"StartTag",
"table",
{}
],
[
"DOCTYPE",
"html",
null,
null,
true
],
[
"EndTag",
"table"
]
]
},
{
"fragmentContext": null,
"description": "<select><!DOCTYPE html></select>",
"input": "<select><!DOCTYPE html></select>",
"output": [
[
"StartTag",
"select",
{}
],
[
"DOCTYPE",
"html",
null,
null,
true
],
[
"EndTag",
"select"
]
]
},
{
"fragmentContext": null,
"description": "<table><colgroup><!DOCTYPE html></colgroup></table>",
"input": "<table><colgroup><!DOCTYPE html></colgroup></table>",
"output": [
[
"StartTag",
"table",
{}
],
[
"StartTag",
"colgroup",
{}
],
[
"DOCTYPE",
"html",
null,
null,
true
],
[
"EndTag",
"colgroup"
],
[
"EndTag",
"table"
]
]
},
{
"fragmentContext": null,
"description": "<table><colgroup><!--test--></colgroup></table>",
"input": "<table><colgroup><!--test--></colgroup></table>",
"output": [
[
"StartTag",
"table",
{}
],
[
"StartTag",
"colgroup",
{}
],
[
"Comment",
"test"
],
[
"EndTag",
"colgroup"
],
[
"EndTag",
"table"
]
]
},
{
"fragmentContext": null,
"description": "<table><colgroup><html></colgroup></table>",
"input": "<table><colgroup><html></colgroup></table>",
"output": [
[
"StartTag",
"table",
{}
],
[
"StartTag",
"colgroup",
{}
],
[
"StartTag",
"html",
{}
],
[
"EndTag",
"colgroup"
],
[
"EndTag",
"table"
]
]
},
{
"fragmentContext": null,
"description": "<table><colgroup> foo</colgroup></table>",
"input": "<table><colgroup> foo</colgroup></table>",
"output": [
[
"StartTag",
"table",
{}
],
[
"StartTag",
"colgroup",
{}
],
[
"Character",
" foo"
],
[
"EndTag",
"colgroup"
],
[
"EndTag",
"table"
]
]
},
{
"fragmentContext": null,
"description": "<select><!--test--></select>",
"input": "<select><!--test--></select>",
"output": [
[
"StartTag",
"select",
{}
],
[
"Comment",
"test"
],
[
"EndTag",
"select"
]
]
},
{
"fragmentContext": null,
"description": "<select><html></select>",
"input": "<select><html></select>",
"output": [
[
"StartTag",
"select",
{}
],
[
"StartTag",
"html",
{}
],
[
"EndTag",
"select"
]
]
},
{
"fragmentContext": null,
"description": "<frameset><html></frameset>",
"input": "<frameset><html></frameset>",
"output": [
[
"StartTag",
"frameset",
{}
],
[
"StartTag",
"html",
{}
],
[
"EndTag",
"frameset"
]
]
},
{
"fragmentContext": null,
"description": "<frameset></frameset><html>",
"input": "<frameset></frameset><html>",
"output": [
[
"StartTag",
"frameset",
{}
],
[
"EndTag",
"frameset"
],
[
"StartTag",
"html",
{}
]
]
},
{
"fragmentContext": null,
"description": "<frameset></frameset><!DOCTYPE html>",
"input": "<frameset></frameset><!DOCTYPE html>",
"output": [
[
"StartTag",
"frameset",
{}
],
[
"EndTag",
"frameset"
],
[
"DOCTYPE",
"html",
null,
null,
true
]
]
},
{
"fragmentContext": null,
"description": "<html><body></body></html><!DOCTYPE html>",
"input": "<html><body></body></html><!DOCTYPE html>",
"output": [
[
"StartTag",
"html",
{}
],
[
"StartTag",
"body",
{}
],
[
"EndTag",
"body"
],
[
"EndTag",
"html"
],
[
"DOCTYPE",
"html",
null,
null,
true
]
]
},
{
"fragmentContext": null,
"description": "<svg><!DOCTYPE html></svg>",
"input": "<svg><!DOCTYPE html></svg>",
"output": [
[
"StartTag",
"svg",
{}
],
[
"DOCTYPE",
"html",
null,
null,
true
],
[
"EndTag",
"svg"
]
]
},
{
"fragmentContext": null,
"description": "<svg><font></font></svg>",
"input": "<svg><font></font></svg>",
"output": [
[
"StartTag",
"svg",
{}
],
[
"StartTag",
"font",
{}
],
[
"EndTag",
"font"
],
[
"EndTag",
"svg"
]
]
},
{
"fragmentContext": null,
"description": "<svg><font id=foo></font></svg>",
"input": "<svg><font id=foo></font></svg>",
"output": [
[
"StartTag",
"svg",
{}
],
[
"StartTag",
"font",
{
"id": "foo"
}
],
[
"EndTag",
"font"
],
[
"EndTag",
"svg"
]
]
},
{
"fragmentContext": null,
"description": "<svg><font size=4></font></svg>",
"input": "<svg><font size=4></font></svg>",
"output": [
[
"StartTag",
"svg",
{}
],
[
"StartTag",
"font",
{
"size": "4"
}
],
[
"EndTag",
"font"
],
[
"EndTag",
"svg"
]
]
},
{
"fragmentContext": null,
"description": "<svg><font color=red></font></svg>",
"input": "<svg><font color=red></font></svg>",
"output": [
[
"StartTag",
"svg",
{}
],
[
"StartTag",
"font",
{
"color": "red"
}
],
[
"EndTag",
"font"
],
[
"EndTag",
"svg"
]
]
},
{
"fragmentContext": null,
"description": "<svg><font font=sans></font></svg>",
"input": "<svg><font font=sans></font></svg>",
"output": [
[
"StartTag",
"svg",
{}
],
[
"StartTag",
"font",
{
"font": "sans"
}
],
[
"EndTag",
"font"
],
[
"EndTag",
"svg"
]
]
}
]
}