Ruby 1.9 Compatibility
Completely removed the html5lib sanitizer. Fixed the string-handling to work in both Ruby 1.8.x and 1.9.2. There are still, inexplicably, two functional tests that fail. But the rest seems to work quite well.
This commit is contained in:
parent
79c8572053
commit
a6429f8c22
142 changed files with 519 additions and 843 deletions
51
attic/vendor/plugins/HTML5lib/testdata/encoding/chardet/test_big5.txt
vendored
Normal file
51
attic/vendor/plugins/HTML5lib/testdata/encoding/chardet/test_big5.txt
vendored
Normal file
|
@ -0,0 +1,51 @@
|
|||
老子《道德經》 第一~四十章
|
||||
|
||||
老子道經
|
||||
|
||||
第一章
|
||||
|
||||
道可道,非常道。名可名,非常名。無,名天地之始﹔有,名萬物之母。
|
||||
故常無,欲以觀其妙;常有,欲以觀其徼。此兩者,同出而異名,同謂之
|
||||
玄。玄之又玄,眾妙之門。
|
||||
|
||||
第二章
|
||||
|
||||
天下皆知美之為美,斯惡矣﹔皆知善之為善,斯不善矣。故有無相生,難
|
||||
易相成,長短相形,高下相傾,音聲相和,前後相隨。是以聖人處「無為
|
||||
」之事,行「不言」之教。萬物作焉而不辭,生而不有,為而不恃,功成
|
||||
而弗居。夫唯弗居,是以不去。
|
||||
|
||||
第三章
|
||||
|
||||
不尚賢,使民不爭﹔不貴難得之貨,使民不為盜﹔不見可欲,使民心不亂
|
||||
。是以「聖人」之治,虛其心,實其腹,弱其志,強其骨。常使民無知無
|
||||
欲。使夫智者不敢為也。為「無為」,則無不治。
|
||||
|
||||
第四章
|
||||
|
||||
「道」沖,而用之或不盈。淵兮,似萬物之宗﹔挫其銳,解其紛,和其光
|
||||
,同其塵﹔湛兮似或存。吾不知誰之子?象帝之先。
|
||||
|
||||
第五章
|
||||
|
||||
天地不仁,以萬物為芻狗﹔聖人不仁,以百姓為芻狗。天地之間,其猶橐
|
||||
蘥乎?虛而不屈,動而愈出。多言數窮,不如守中。
|
||||
|
||||
第六章
|
||||
|
||||
谷神不死,是謂玄牝。玄牝之門,是謂天地根。綿綿若存,用之不勤。
|
||||
|
||||
第七章
|
||||
|
||||
天長地久。天地所以能長且久者,以其不自生,故能長久。是以聖人後其
|
||||
身而身先,外其身而身存。非以其無私邪?故能成其私。
|
||||
|
||||
第八章
|
||||
|
||||
上善若水。水善利萬物而不爭。處眾人之所惡,故幾於道。居善地,心善
|
||||
淵,與善仁,言善信,政善治,事善能,動善時。夫唯不爭,故無尤。
|
||||
|
||||
第九章
|
||||
|
||||
持而盈之,不如其已﹔揣而銳之,不可長保。金玉滿堂,莫之能守﹔富貴
|
||||
而驕,自遺其咎。功遂身退,天之道。
|
10
attic/vendor/plugins/HTML5lib/testdata/encoding/test-yahoo-jp.dat
vendored
Normal file
10
attic/vendor/plugins/HTML5lib/testdata/encoding/test-yahoo-jp.dat
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
#data
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
|
||||
<!--京-->
|
||||
<title>Yahoo! JAPAN</title>
|
||||
<meta name="description" content="日本最大級のポータルサイト。検索、オークション、ニュース、メール、コミュニティ、ショッピング、など80以上のサービスを展開。あなたの生活をより豊かにする「ライフ・エンジン」を目指していきます。">
|
||||
<style type="text/css" media="all">
|
||||
#encoding
|
||||
euc-jp
|
394
attic/vendor/plugins/HTML5lib/testdata/encoding/tests1.dat
vendored
Normal file
394
attic/vendor/plugins/HTML5lib/testdata/encoding/tests1.dat
vendored
Normal file
File diff suppressed because one or more lines are too long
114
attic/vendor/plugins/HTML5lib/testdata/encoding/tests2.dat
vendored
Normal file
114
attic/vendor/plugins/HTML5lib/testdata/encoding/tests2.dat
vendored
Normal file
|
@ -0,0 +1,114 @@
|
|||
#data
|
||||
<meta
|
||||
#encoding
|
||||
windows-1252
|
||||
|
||||
#data
|
||||
<
|
||||
#encoding
|
||||
windows-1252
|
||||
|
||||
#data
|
||||
<!
|
||||
#encoding
|
||||
windows-1252
|
||||
|
||||
#data
|
||||
<meta charset = "
|
||||
#encoding
|
||||
windows-1252
|
||||
|
||||
#data
|
||||
<meta charset=EUC-jp
|
||||
#encoding
|
||||
windows-1252
|
||||
|
||||
#data
|
||||
<meta <meta charset='EUC-jp'>
|
||||
#encoding
|
||||
EUC-jp
|
||||
|
||||
#data
|
||||
<meta charset = 'EUC-jp'>
|
||||
#encoding
|
||||
EUC-jp
|
||||
|
||||
#data
|
||||
<!-- -->
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
#encoding
|
||||
utf-8
|
||||
|
||||
#data
|
||||
<!-- -->
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf
|
||||
#encoding
|
||||
windows-1252
|
||||
|
||||
#data
|
||||
<meta http-equiv="Content-Type<meta charset="utf-8">
|
||||
#encoding
|
||||
windows-1252
|
||||
|
||||
#data
|
||||
<meta http-equiv="Content-Type" content="text/html; charset='utf-8'">
|
||||
#encoding
|
||||
utf-8
|
||||
|
||||
#data
|
||||
<meta http-equiv="Content-Type" content="text/html; charset='utf-8">
|
||||
#encoding
|
||||
windows-1252
|
||||
|
||||
#data
|
||||
<meta
|
||||
#encoding
|
||||
windows-1252
|
||||
|
||||
#data
|
||||
<meta charset =
|
||||
#encoding
|
||||
windows-1252
|
||||
|
||||
#data
|
||||
<meta charset= utf-8
|
||||
#encoding
|
||||
windows-1252
|
||||
|
||||
#data
|
||||
<meta content = "text/html;
|
||||
#encoding
|
||||
windows-1252
|
||||
|
||||
#data
|
||||
<meta charset="UTF-16">
|
||||
#encoding
|
||||
utf-8
|
||||
|
||||
#data
|
||||
<meta charset="UTF-16LE">
|
||||
#encoding
|
||||
utf-8
|
||||
|
||||
#data
|
||||
<meta charset="UTF-16BE">
|
||||
#encoding
|
||||
utf-8
|
||||
|
||||
#data
|
||||
<html a=ñ>
|
||||
<meta charset="utf-8">
|
||||
#encoding
|
||||
utf-8
|
||||
|
||||
#data
|
||||
<html ñ>
|
||||
<meta charset="utf-8">
|
||||
#encoding
|
||||
utf-8
|
||||
|
||||
#data
|
||||
<html>ñ
|
||||
<meta charset="utf-8">
|
||||
#encoding
|
||||
utf-8
|
501
attic/vendor/plugins/HTML5lib/testdata/sanitizer/tests1.dat
vendored
Normal file
501
attic/vendor/plugins/HTML5lib/testdata/sanitizer/tests1.dat
vendored
Normal file
|
@ -0,0 +1,501 @@
|
|||
[
|
||||
{
|
||||
"name": "IE_Comments",
|
||||
"input": "<!--[if gte IE 4]><script>alert('XSS');</script><![endif]-->",
|
||||
"output": ""
|
||||
},
|
||||
|
||||
{
|
||||
"name": "IE_Comments_2",
|
||||
"input": "<![if !IE 5]><script>alert('XSS');</script><![endif]>",
|
||||
"output": "<script>alert('XSS');</script>",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "allow_colons_in_path_component",
|
||||
"input": "<a href=\"./this:that\">foo</a>",
|
||||
"output": "<a href='./this:that'>foo</a>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "background_attribute",
|
||||
"input": "<div background=\"javascript:alert('XSS')\"></div>",
|
||||
"output": "<div/>",
|
||||
"xhtml": "<div></div>",
|
||||
"rexml": "<div></div>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "bgsound",
|
||||
"input": "<bgsound src=\"javascript:alert('XSS');\" />",
|
||||
"output": "<bgsound src=\"javascript:alert('XSS');\"/>",
|
||||
"rexml": "<bgsound src=\"javascript:alert('XSS');\"></bgsound>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "div_background_image_unicode_encoded",
|
||||
"input": "<div style=\"background-image:\u00a5\u00a2\u006C\u0028'\u006a\u0061\u00a6\u0061\u00a3\u0063\u00a2\u0069\u00a0\u00a4\u003a\u0061\u006c\u0065\u00a2\u00a4\u0028.1027\u0058.1053\u0053\u0027\u0029'\u0029\">foo</div>",
|
||||
"output": "<div style=''>foo</div>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "div_expression",
|
||||
"input": "<div style=\"width: expression(alert('XSS'));\">foo</div>",
|
||||
"output": "<div style=''>foo</div>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "double_open_angle_brackets",
|
||||
"input": "<img src=http://ha.ckers.org/scriptlet.html <",
|
||||
"output": "<img src='http://ha.ckers.org/scriptlet.html'/>",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "double_open_angle_brackets_2",
|
||||
"input": "<script src=http://ha.ckers.org/scriptlet.html <",
|
||||
"output": "<script src=\"http://ha.ckers.org/scriptlet.html\" <=\"\">",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "grave_accents",
|
||||
"input": "<img src=`javascript:alert('XSS')` />",
|
||||
"output": "<img/>",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "img_dynsrc_lowsrc",
|
||||
"input": "<img dynsrc=\"javascript:alert('XSS')\" />",
|
||||
"output": "<img/>",
|
||||
"rexml": "<img />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "img_vbscript",
|
||||
"input": "<img src='vbscript:msgbox(\"XSS\")' />",
|
||||
"output": "<img/>",
|
||||
"rexml": "<img />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "input_image",
|
||||
"input": "<input type=\"image\" src=\"javascript:alert('XSS');\" />",
|
||||
"output": "<input type='image'/>",
|
||||
"rexml": "<input type='image' />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "link_stylesheets",
|
||||
"input": "<link rel=\"stylesheet\" href=\"javascript:alert('XSS');\" />",
|
||||
"output": "<link rel=\"stylesheet\" href=\"javascript:alert('XSS');\"/>",
|
||||
"rexml": "<link href=\"javascript:alert('XSS');\" rel=\"stylesheet\"/>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "link_stylesheets_2",
|
||||
"input": "<link rel=\"stylesheet\" href=\"http://ha.ckers.org/xss.css\" />",
|
||||
"output": "<link rel=\"stylesheet\" href=\"http://ha.ckers.org/xss.css\"/>",
|
||||
"rexml": "<link href=\"http://ha.ckers.org/xss.css\" rel=\"stylesheet\"/>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "list_style_image",
|
||||
"input": "<li style=\"list-style-image: url(javascript:alert('XSS'))\">foo</li>",
|
||||
"output": "<li style=''>foo</li>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "no_closing_script_tags",
|
||||
"input": "<script src=http://ha.ckers.org/xss.js?<b>",
|
||||
"output": "<script src=\"http://ha.ckers.org/xss.js?&lt;b\">",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "non_alpha_non_digit",
|
||||
"input": "<script/XSS src=\"http://ha.ckers.org/xss.js\"></script>",
|
||||
"output": "<script XSS=\"\" src=\"http://ha.ckers.org/xss.js\"></script>",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "non_alpha_non_digit_2",
|
||||
"input": "<a onclick!\\#$%&()*~+-_.,:;?@[/|\\]^`=alert(\"XSS\")>foo</a>",
|
||||
"output": "<a>foo</a>",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "non_alpha_non_digit_3",
|
||||
"input": "<img/src=\"http://ha.ckers.org/xss.js\"/>",
|
||||
"output": "<img src='http://ha.ckers.org/xss.js'/>",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "non_alpha_non_digit_II",
|
||||
"input": "<a href!\\#$%&()*~+-_.,:;?@[/|]^`=alert('XSS')>foo</a>",
|
||||
"output": "<a>foo</a>",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "non_alpha_non_digit_III",
|
||||
"input": "<a/href=\"javascript:alert('XSS');\">foo</a>",
|
||||
"output": "<a>foo</a>",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "platypus",
|
||||
"input": "<a href=\"http://www.ragingplatypus.com/\" style=\"display:block; position:absolute; left:0; top:0; width:100%; height:100%; z-index:1; background-color:black; background-image:url(http://www.ragingplatypus.com/i/cam-full.jpg); background-x:center; background-y:center; background-repeat:repeat;\">never trust your upstream platypus</a>",
|
||||
"output": "<a href='http://www.ragingplatypus.com/' style='display: block; width: 100%; height: 100%; background-color: black; background-x: center; background-y: center;'>never trust your upstream platypus</a>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "protocol_resolution_in_script_tag",
|
||||
"input": "<script src=//ha.ckers.org/.j></script>",
|
||||
"output": "<script src=\"//ha.ckers.org/.j\"></script>",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_allow_anchors",
|
||||
"input": "<a href='foo' onclick='bar'><script>baz</script></a>",
|
||||
"output": "<a href='foo'><script>baz</script></a>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_allow_image_alt_attribute",
|
||||
"input": "<img alt='foo' onclick='bar' />",
|
||||
"output": "<img alt='foo'/>",
|
||||
"rexml": "<img alt='foo' />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_allow_image_height_attribute",
|
||||
"input": "<img height='foo' onclick='bar' />",
|
||||
"output": "<img height='foo'/>",
|
||||
"rexml": "<img height='foo' />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_allow_image_src_attribute",
|
||||
"input": "<img src='foo' onclick='bar' />",
|
||||
"output": "<img src='foo'/>",
|
||||
"rexml": "<img src='foo' />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_allow_image_width_attribute",
|
||||
"input": "<img width='foo' onclick='bar' />",
|
||||
"output": "<img width='foo'/>",
|
||||
"rexml": "<img width='foo' />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_handle_blank_text",
|
||||
"input": "",
|
||||
"output": ""
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_handle_malformed_image_tags",
|
||||
"input": "<img \"\"\"><script>alert(\"XSS\")</script>\">",
|
||||
"output": "<img/><script>alert(\"XSS\")</script>\">",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_handle_non_html",
|
||||
"input": "abc",
|
||||
"output": "abc"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_not_fall_for_ridiculous_hack",
|
||||
"input": "<img\nsrc\n=\n\"\nj\na\nv\na\ns\nc\nr\ni\np\nt\n:\na\nl\ne\nr\nt\n(\n'\nX\nS\nS\n'\n)\n\"\n />",
|
||||
"output": "<img/>",
|
||||
"rexml": "<img />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_not_fall_for_xss_image_hack_0",
|
||||
"input": "<img src=\"javascript:alert('XSS');\" />",
|
||||
"output": "<img/>",
|
||||
"rexml": "<img />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_not_fall_for_xss_image_hack_1",
|
||||
"input": "<img src=javascript:alert('XSS') />",
|
||||
"output": "<img/>",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_not_fall_for_xss_image_hack_10",
|
||||
"input": "<img src=\"jav
ascript:alert('XSS');\" />",
|
||||
"output": "<img/>",
|
||||
"rexml": "<img />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_not_fall_for_xss_image_hack_11",
|
||||
"input": "<img src=\"jav
ascript:alert('XSS');\" />",
|
||||
"output": "<img/>",
|
||||
"rexml": "<img />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_not_fall_for_xss_image_hack_12",
|
||||
"input": "<img src=\"  javascript:alert('XSS');\" />",
|
||||
"output": "<img/>",
|
||||
"rexml": "<img />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_not_fall_for_xss_image_hack_13",
|
||||
"input": "<img src=\" javascript:alert('XSS');\" />",
|
||||
"output": "<img/>",
|
||||
"rexml": "<img />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_not_fall_for_xss_image_hack_14",
|
||||
"input": "<img src=\" javascript:alert('XSS');\" />",
|
||||
"output": "<img/>",
|
||||
"rexml": "<img />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_not_fall_for_xss_image_hack_2",
|
||||
"input": "<img src=\"JaVaScRiPt:alert('XSS')\" />",
|
||||
"output": "<img/>",
|
||||
"rexml": "<img />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_not_fall_for_xss_image_hack_3",
|
||||
"input": "<img src='javascript:alert("XSS")' />",
|
||||
"output": "<img/>",
|
||||
"rexml": "<img />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_not_fall_for_xss_image_hack_4",
|
||||
"input": "<img src='javascript:alert(String.fromCharCode(88,83,83))' />",
|
||||
"output": "<img/>",
|
||||
"rexml": "<img />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_not_fall_for_xss_image_hack_5",
|
||||
"input": "<img src='javascript:alert('XSS')' />",
|
||||
"output": "<img/>",
|
||||
"rexml": "<img />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_not_fall_for_xss_image_hack_6",
|
||||
"input": "<img src='javascript:alert('XSS')' />",
|
||||
"output": "<img/>",
|
||||
"rexml": "<img />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_not_fall_for_xss_image_hack_7",
|
||||
"input": "<img src='javascript:alert('XSS')' />",
|
||||
"output": "<img/>",
|
||||
"rexml": "<img />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_not_fall_for_xss_image_hack_8",
|
||||
"input": "<img src=\"jav\tascript:alert('XSS');\" />",
|
||||
"output": "<img/>",
|
||||
"rexml": "<img />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_not_fall_for_xss_image_hack_9",
|
||||
"input": "<img src=\"jav	ascript:alert('XSS');\" />",
|
||||
"output": "<img/>",
|
||||
"rexml": "<img />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_sanitize_half_open_scripts",
|
||||
"input": "<img src=\"javascript:alert('XSS')\"",
|
||||
"output": "<img/>",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_sanitize_invalid_script_tag",
|
||||
"input": "<script/XSS SRC=\"http://ha.ckers.org/xss.js\"></script>",
|
||||
"output": "<script XSS=\"\" SRC=\"http://ha.ckers.org/xss.js\"></script>",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_sanitize_script_tag_with_multiple_open_brackets",
|
||||
"input": "<<script>alert(\"XSS\");//<</script>",
|
||||
"output": "<<script>alert(\"XSS\");//<</script>",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_sanitize_script_tag_with_multiple_open_brackets_2",
|
||||
"input": "<iframe src=http://ha.ckers.org/scriptlet.html\n<",
|
||||
"output": "<iframe src=\"http://ha.ckers.org/scriptlet.html\" <=\"\">",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_sanitize_tag_broken_up_by_null",
|
||||
"input": "<scr\u0000ipt>alert(\"XSS\")</scr\u0000ipt>",
|
||||
"output": "<scr\ufffdipt>alert(\"XSS\")</scr\ufffdipt>",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_sanitize_unclosed_script",
|
||||
"input": "<script src=http://ha.ckers.org/xss.js?<b>",
|
||||
"output": "<script src=\"http://ha.ckers.org/xss.js?&lt;b\">",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_strip_href_attribute_in_a_with_bad_protocols",
|
||||
"input": "<a href=\"javascript:XSS\" title=\"1\">boo</a>",
|
||||
"output": "<a title='1'>boo</a>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_strip_href_attribute_in_a_with_bad_protocols_and_whitespace",
|
||||
"input": "<a href=\" javascript:XSS\" title=\"1\">boo</a>",
|
||||
"output": "<a title='1'>boo</a>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_strip_src_attribute_in_img_with_bad_protocols",
|
||||
"input": "<img src=\"javascript:XSS\" title=\"1\">boo</img>",
|
||||
"output": "<img title='1'/>boo",
|
||||
"rexml": "<img title='1' />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "should_strip_src_attribute_in_img_with_bad_protocols_and_whitespace",
|
||||
"input": "<img src=\" javascript:XSS\" title=\"1\">boo</img>",
|
||||
"output": "<img title='1'/>boo",
|
||||
"rexml": "<img title='1' />"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "xml_base",
|
||||
"input": "<div xml:base=\"javascript:alert('XSS');//\">foo</div>",
|
||||
"output": "<div>foo</div>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "xul",
|
||||
"input": "<p style=\"-moz-binding:url('http://ha.ckers.org/xssmoz.xml#xss')\">fubar</p>",
|
||||
"output": "<p style=''>fubar</p>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "quotes_in_attributes",
|
||||
"input": "<img src='foo' title='\"foo\" bar' />",
|
||||
"rexml": "<img src='foo' title='\"foo\" bar' />",
|
||||
"output": "<img title='"foo" bar' src='foo'/>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "uri_refs_in_svg_attributes",
|
||||
"input": "<rect fill='url(#foo)' />",
|
||||
"rexml": "<rect fill='url(#foo)'></rect>",
|
||||
"xhtml": "<rect fill='url(#foo)'></rect>",
|
||||
"output": "<rect fill='url(#foo)'/>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "absolute_uri_refs_in_svg_attributes",
|
||||
"input": "<rect fill='url(http://bad.com/) #fff' />",
|
||||
"rexml": "<rect fill=' #fff'></rect>",
|
||||
"xhtml": "<rect fill=' #fff'></rect>",
|
||||
"output": "<rect fill=' #fff'/>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "uri_ref_with_space_in svg_attribute",
|
||||
"input": "<rect fill='url(\n#foo)' />",
|
||||
"rexml": "<rect fill='url(\n#foo)'></rect>",
|
||||
"xhtml": "<rect fill='url(\n#foo)'></rect>",
|
||||
"output": "<rect fill='url(\n#foo)'/>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "absolute_uri_ref_with_space_in svg_attribute",
|
||||
"input": "<rect fill=\"url(\nhttp://bad.com/)\" />",
|
||||
"rexml": "<rect fill=' '></rect>",
|
||||
"xhtml": "<rect fill=' '></rect>",
|
||||
"output": "<rect fill=' '/>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "allow_html5_image_tag",
|
||||
"input": "<image src='foo' />",
|
||||
"rexml": "<image src=\"foo\"></image>",
|
||||
"output": "<image src=\"foo\"/>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "style_attr_end_with_nothing",
|
||||
"input": "<div style=\"color: blue\" />",
|
||||
"output": "<div style='color: blue;'/>",
|
||||
"xhtml": "<div style='color: blue;'></div>",
|
||||
"rexml": "<div style='color: blue;'></div>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "style_attr_end_with_space",
|
||||
"input": "<div style=\"color: blue \" />",
|
||||
"output": "<div style='color: blue ;'/>",
|
||||
"xhtml": "<div style='color: blue ;'></div>",
|
||||
"rexml": "<div style='color: blue ;'></div>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "style_attr_end_with_semicolon",
|
||||
"input": "<div style=\"color: blue;\" />",
|
||||
"output": "<div style='color: blue;'/>",
|
||||
"xhtml": "<div style='color: blue;'></div>",
|
||||
"rexml": "<div style='color: blue;'></div>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "style_attr_end_with_semicolon_space",
|
||||
"input": "<div style=\"color: blue; \" />",
|
||||
"output": "<div style='color: blue;'/>",
|
||||
"xhtml": "<div style='color: blue;'></div>",
|
||||
"rexml": "<div style='color: blue;'></div>"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "attributes_with_embedded_quotes",
|
||||
"input": "<img src=doesntexist.jpg\"'onerror=\"alert(1) />",
|
||||
"output": "<img src='doesntexist.jpg"'onerror="alert(1)'/>",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "attributes_with_embedded_quotes_II",
|
||||
"input": "<img src=notthere.jpg\"\"onerror=\"alert(2) />",
|
||||
"output": "<img src='notthere.jpg""onerror="alert(2)'/>",
|
||||
"rexml": "Ill-formed XHTML!"
|
||||
}
|
||||
]
|
104
attic/vendor/plugins/HTML5lib/testdata/serializer/core.test
vendored
Normal file
104
attic/vendor/plugins/HTML5lib/testdata/serializer/core.test
vendored
Normal file
|
@ -0,0 +1,104 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "proper attribute value escaping",
|
||||
"input": [["StartTag", "span", {"title": "test \"with\" ""}]],
|
||||
"expected": ["<span title='test \"with\" &quot;'>"]
|
||||
},
|
||||
|
||||
{"description": "proper attribute value non-quoting",
|
||||
"input": [["StartTag", "span", {"title": "foo"}]],
|
||||
"expected": ["<span title=foo>"],
|
||||
"xhtml": ["<span title=\"foo\">"]
|
||||
},
|
||||
|
||||
{"description": "proper attribute value quoting (with >)",
|
||||
"input": [["StartTag", "span", {"title": "foo>bar"}]],
|
||||
"expected": ["<span title=\"foo>bar\">"]
|
||||
},
|
||||
|
||||
{"description": "proper attribute value quoting (with <)",
|
||||
"input": [["StartTag", "span", {"title": "foo<bar"}]],
|
||||
"expected": ["<span title=\"foo<bar\">"],
|
||||
"xhtml": ["<span title=\"foo<bar\">"]
|
||||
},
|
||||
|
||||
{"description": "proper attribute value quoting (with \")",
|
||||
"input": [["StartTag", "span", {"title": "foo\"bar"}]],
|
||||
"expected": ["<span title='foo\"bar'>"]
|
||||
},
|
||||
|
||||
{"description": "proper attribute value quoting (with ')",
|
||||
"input": [["StartTag", "span", {"title": "foo'bar"}]],
|
||||
"expected": ["<span title=\"foo'bar\">"]
|
||||
},
|
||||
|
||||
{"description": "proper attribute value quoting (with both \" and ')",
|
||||
"input": [["StartTag", "span", {"title": "foo'bar\"baz"}]],
|
||||
"expected": ["<span title=\"foo'bar"baz\">"]
|
||||
},
|
||||
|
||||
{"description": "proper attribute value quoting (with space)",
|
||||
"input": [["StartTag", "span", {"title": "foo bar"}]],
|
||||
"expected": ["<span title=\"foo bar\">"]
|
||||
},
|
||||
|
||||
{"description": "proper attribute value quoting (with tab)",
|
||||
"input": [["StartTag", "span", {"title": "foo\tbar"}]],
|
||||
"expected": ["<span title=\"foo\tbar\">"]
|
||||
},
|
||||
|
||||
{"description": "proper attribute value quoting (with LF)",
|
||||
"input": [["StartTag", "span", {"title": "foo\nbar"}]],
|
||||
"expected": ["<span title=\"foo\nbar\">"]
|
||||
},
|
||||
|
||||
{"description": "proper attribute value quoting (with CR)",
|
||||
"input": [["StartTag", "span", {"title": "foo\rbar"}]],
|
||||
"expected": ["<span title=\"foo\rbar\">"]
|
||||
},
|
||||
|
||||
{"description": "proper attribute value quoting (with linetab)",
|
||||
"input": [["StartTag", "span", {"title": "foo\u000Bbar"}]],
|
||||
"expected": ["<span title=\"foo\u000Bbar\">"]
|
||||
},
|
||||
|
||||
{"description": "proper attribute value quoting (with form feed)",
|
||||
"input": [["StartTag", "span", {"title": "foo\u000Cbar"}]],
|
||||
"expected": ["<span title=\"foo\u000Cbar\">"]
|
||||
},
|
||||
|
||||
{"description": "void element (as EmptyTag token)",
|
||||
"input": [["EmptyTag", "img", {}]],
|
||||
"expected": ["<img>"],
|
||||
"xhtml": ["<img />"]
|
||||
},
|
||||
|
||||
{"description": "void element (as StartTag token)",
|
||||
"input": [["StartTag", "img", {}]],
|
||||
"expected": ["<img>"],
|
||||
"xhtml": ["<img />"]
|
||||
},
|
||||
|
||||
{"description": "doctype in error",
|
||||
"input": [["Doctype", "foo"]],
|
||||
"expected": ["<!DOCTYPE foo>"]
|
||||
},
|
||||
|
||||
{"description": "character data",
|
||||
"options": {"encoding":"utf-8"},
|
||||
"input": [["Characters", "a<b>c&d"]],
|
||||
"expected": ["a<b>c&d"]
|
||||
},
|
||||
|
||||
{"description": "rcdata",
|
||||
"input": [["StartTag", "script", {}], ["Characters", "a<b>c&d"]],
|
||||
"expected": ["<script>a<b>c&d"],
|
||||
"xhtml": ["<script>a<b>c&d"]
|
||||
},
|
||||
|
||||
{"description": "doctype",
|
||||
"input": [["Doctype", "HTML"]],
|
||||
"expected": ["<!DOCTYPE HTML>"]
|
||||
}
|
||||
|
||||
]}
|
65
attic/vendor/plugins/HTML5lib/testdata/serializer/injectmeta.test
vendored
Normal file
65
attic/vendor/plugins/HTML5lib/testdata/serializer/injectmeta.test
vendored
Normal file
|
@ -0,0 +1,65 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "no encoding",
|
||||
"options": {"inject_meta_charset": true},
|
||||
"input": [["EmptyTag", "head", {}]],
|
||||
"expected": ["<head>"]
|
||||
},
|
||||
|
||||
{"description": "empytag head",
|
||||
"options": {"inject_meta_charset": true, "encoding":"utf-8"},
|
||||
"input": [["EmptyTag", "head", {}]],
|
||||
"expected": ["<head><meta charset=utf-8>"],
|
||||
"xhtml": ["<head><meta charset=\"utf-8\" /></head>"]
|
||||
},
|
||||
|
||||
{"description": "head w/title",
|
||||
"options": {"inject_meta_charset": true, "encoding":"utf-8"},
|
||||
"input": [["StartTag", "head", {}], ["StartTag","title",{}], ["Characters", "foo"],["EndTag", "title"], ["EndTag", "head"]],
|
||||
"expected": ["<head><meta charset=utf-8><title>foo</title>"],
|
||||
"xhtml": ["<head><meta charset=\"utf-8\" /><title>foo</title></head>"]
|
||||
},
|
||||
|
||||
{"description": "head w/meta-charset",
|
||||
"options": {"inject_meta_charset": true, "encoding":"utf-8"},
|
||||
"input": [["StartTag", "head", {}], ["EmptyTag","meta",{"charset":"ascii"}], ["EndTag", "head"]],
|
||||
"expected": ["<head><meta charset=utf-8>"],
|
||||
"xhtml": ["<head><meta charset=\"utf-8\" /></head>"]
|
||||
},
|
||||
|
||||
{"description": "head w/ two meta-charset",
|
||||
"options": {"inject_meta_charset": true, "encoding":"utf-8"},
|
||||
"input": [["StartTag", "head", {}], ["EmptyTag","meta",{"charset":"ascii"}], ["EmptyTag","meta",{"charset":"ascii"}], ["EndTag", "head"]],
|
||||
"expected": ["<head><meta charset=utf-8><meta charset=utf-8>", "<head><meta charset=utf-8><meta charset=ascii>"],
|
||||
"xhtml": ["<head><meta charset=\"utf-8\" /><meta charset=\"utf-8\" /></head>", "<head><meta charset=\"utf-8\" /><meta charset=\"ascii\" /></head>"]
|
||||
},
|
||||
|
||||
{"description": "head w/robots",
|
||||
"options": {"inject_meta_charset": true, "encoding":"utf-8"},
|
||||
"input": [["StartTag", "head", {}], ["EmptyTag","meta",{"name":"robots","content":"noindex"}], ["EndTag", "head"]],
|
||||
"expected": ["<head><meta charset=utf-8><meta content=noindex name=robots>"],
|
||||
"xhtml": ["<head><meta charset=\"utf-8\" /><meta content=\"noindex\" name=\"robots\" /></head>"]
|
||||
},
|
||||
|
||||
{"description": "head w/robots & charset",
|
||||
"options": {"inject_meta_charset": true, "encoding":"utf-8"},
|
||||
"input": [["StartTag", "head", {}], ["EmptyTag","meta",{"name":"robots","content":"noindex"}], ["EmptyTag","meta",{"charset":"ascii"}], ["EndTag", "head"]],
|
||||
"expected": ["<head><meta content=noindex name=robots><meta charset=utf-8>"],
|
||||
"xhtml": ["<head><meta content=\"noindex\" name=\"robots\" /><meta charset=\"utf-8\" /></head>"]
|
||||
},
|
||||
|
||||
{"description": "head w/ charset in http-equiv content-type",
|
||||
"options": {"inject_meta_charset": true, "encoding":"utf-8"},
|
||||
"input": [["StartTag", "head", {}], ["EmptyTag","meta",{"http-equiv":"content-type", "content":"text/html; charset=ascii"}], ["EndTag", "head"]],
|
||||
"expected": ["<head><meta content=\"text/html; charset=utf-8\" http-equiv=content-type>"],
|
||||
"xhtml": ["<head><meta content=\"text/html; charset=utf-8\" http-equiv=\"content-type\" /></head>"]
|
||||
},
|
||||
|
||||
{"description": "head w/robots & charset in http-equiv content-type",
|
||||
"options": {"inject_meta_charset": true, "encoding":"utf-8"},
|
||||
"input": [["StartTag", "head", {}], ["EmptyTag","meta",{"name":"robots","content":"noindex"}], ["EmptyTag","meta",{"http-equiv":"content-type", "content":"text/html; charset=ascii"}], ["EndTag", "head"]],
|
||||
"expected": ["<head><meta content=noindex name=robots><meta content=\"text/html; charset=utf-8\" http-equiv=content-type>"],
|
||||
"xhtml": ["<head><meta content=\"noindex\" name=\"robots\" /><meta content=\"text/html; charset=utf-8\" http-equiv=\"content-type\" /></head>"]
|
||||
}
|
||||
|
||||
]}
|
900
attic/vendor/plugins/HTML5lib/testdata/serializer/optionaltags.test
vendored
Normal file
900
attic/vendor/plugins/HTML5lib/testdata/serializer/optionaltags.test
vendored
Normal file
|
@ -0,0 +1,900 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "html start-tag followed by text, with attributes",
|
||||
"input": [["StartTag", "html", {"lang": "en"}], ["Characters", "foo"]],
|
||||
"expected": ["<html lang=en>foo"]
|
||||
},
|
||||
|
||||
|
||||
|
||||
{"description": "html start-tag followed by comment",
|
||||
"input": [["StartTag", "html", {}], ["Comment", "foo"]],
|
||||
"expected": ["<html><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "html start-tag followed by space character",
|
||||
"input": [["StartTag", "html", {}], ["Characters", " foo"]],
|
||||
"expected": ["<html> foo"]
|
||||
},
|
||||
|
||||
{"description": "html start-tag followed by text",
|
||||
"input": [["StartTag", "html", {}], ["Characters", "foo"]],
|
||||
"expected": ["foo"]
|
||||
},
|
||||
|
||||
{"description": "html start-tag followed by start-tag",
|
||||
"input": [["StartTag", "html", {}], ["StartTag", "foo", {}]],
|
||||
"expected": ["<foo>"]
|
||||
},
|
||||
|
||||
{"description": "html start-tag followed by end-tag",
|
||||
"input": [["StartTag", "html", {}], ["EndTag", "foo", {}]],
|
||||
"expected": ["</foo>"]
|
||||
},
|
||||
|
||||
{"description": "html start-tag at EOF (shouldn't ever happen?!)",
|
||||
"input": [["StartTag", "html", {}]],
|
||||
"expected": [""]
|
||||
},
|
||||
|
||||
|
||||
|
||||
{"description": "html end-tag followed by comment",
|
||||
"input": [["EndTag", "html"], ["Comment", "foo"]],
|
||||
"expected": ["</html><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "html end-tag followed by space character",
|
||||
"input": [["EndTag", "html"], ["Characters", " foo"]],
|
||||
"expected": ["</html> foo"]
|
||||
},
|
||||
|
||||
{"description": "html end-tag followed by text",
|
||||
"input": [["EndTag", "html"], ["Characters", "foo"]],
|
||||
"expected": ["foo"]
|
||||
},
|
||||
|
||||
{"description": "html end-tag followed by start-tag",
|
||||
"input": [["EndTag", "html"], ["StartTag", "foo", {}]],
|
||||
"expected": ["<foo>"]
|
||||
},
|
||||
|
||||
{"description": "html end-tag followed by end-tag",
|
||||
"input": [["EndTag", "html"], ["EndTag", "foo", {}]],
|
||||
"expected": ["</foo>"]
|
||||
},
|
||||
|
||||
{"description": "html end-tag at EOF",
|
||||
"input": [["EndTag", "html"]],
|
||||
"expected": [""]
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
{"description": "head start-tag followed by comment",
|
||||
"input": [["StartTag", "head", {}], ["Comment", "foo"]],
|
||||
"expected": ["<head><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "head start-tag followed by space character",
|
||||
"input": [["StartTag", "head", {}], ["Characters", " foo"]],
|
||||
"expected": ["<head> foo"]
|
||||
},
|
||||
|
||||
{"description": "head start-tag followed by text",
|
||||
"input": [["StartTag", "head", {}], ["Characters", "foo"]],
|
||||
"expected": ["<head>foo"]
|
||||
},
|
||||
|
||||
{"description": "head start-tag followed by start-tag",
|
||||
"input": [["StartTag", "head", {}], ["StartTag", "foo", {}]],
|
||||
"expected": ["<foo>"]
|
||||
},
|
||||
|
||||
{"description": "head start-tag followed by end-tag",
|
||||
"input": [["StartTag", "head", {}], ["EndTag", "foo", {}]],
|
||||
"expected": ["<head></foo>"]
|
||||
},
|
||||
|
||||
{"description": "head start-tag at EOF (shouldn't ever happen?!)",
|
||||
"input": [["StartTag", "head", {}]],
|
||||
"expected": ["<head>"]
|
||||
},
|
||||
|
||||
|
||||
|
||||
{"description": "head end-tag followed by comment",
|
||||
"input": [["EndTag", "head"], ["Comment", "foo"]],
|
||||
"expected": ["</head><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "head end-tag followed by space character",
|
||||
"input": [["EndTag", "head"], ["Characters", " foo"]],
|
||||
"expected": ["</head> foo"]
|
||||
},
|
||||
|
||||
{"description": "head end-tag followed by text",
|
||||
"input": [["EndTag", "head"], ["Characters", "foo"]],
|
||||
"expected": ["foo"]
|
||||
},
|
||||
|
||||
{"description": "head end-tag followed by start-tag",
|
||||
"input": [["EndTag", "head"], ["StartTag", "foo", {}]],
|
||||
"expected": ["<foo>"]
|
||||
},
|
||||
|
||||
{"description": "head end-tag followed by end-tag",
|
||||
"input": [["EndTag", "head"], ["EndTag", "foo", {}]],
|
||||
"expected": ["</foo>"]
|
||||
},
|
||||
|
||||
{"description": "head end-tag at EOF",
|
||||
"input": [["EndTag", "head"]],
|
||||
"expected": [""]
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
{"description": "body start-tag followed by comment",
|
||||
"input": [["StartTag", "body", {}], ["Comment", "foo"]],
|
||||
"expected": ["<body><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "body start-tag followed by space character",
|
||||
"input": [["StartTag", "body", {}], ["Characters", " foo"]],
|
||||
"expected": ["<body> foo"]
|
||||
},
|
||||
|
||||
{"description": "body start-tag followed by text",
|
||||
"input": [["StartTag", "body", {}], ["Characters", "foo"]],
|
||||
"expected": ["foo"]
|
||||
},
|
||||
|
||||
{"description": "body start-tag followed by start-tag",
|
||||
"input": [["StartTag", "body", {}], ["StartTag", "foo", {}]],
|
||||
"expected": ["<foo>"]
|
||||
},
|
||||
|
||||
{"description": "body start-tag followed by end-tag",
|
||||
"input": [["StartTag", "body", {}], ["EndTag", "foo", {}]],
|
||||
"expected": ["</foo>"]
|
||||
},
|
||||
|
||||
{"description": "body start-tag at EOF (shouldn't ever happen?!)",
|
||||
"input": [["StartTag", "body", {}]],
|
||||
"expected": [""]
|
||||
},
|
||||
|
||||
|
||||
|
||||
{"description": "body end-tag followed by comment",
|
||||
"input": [["EndTag", "body"], ["Comment", "foo"]],
|
||||
"expected": ["</body><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "body end-tag followed by space character",
|
||||
"input": [["EndTag", "body"], ["Characters", " foo"]],
|
||||
"expected": ["</body> foo"]
|
||||
},
|
||||
|
||||
{"description": "body end-tag followed by text",
|
||||
"input": [["EndTag", "body"], ["Characters", "foo"]],
|
||||
"expected": ["foo"]
|
||||
},
|
||||
|
||||
{"description": "body end-tag followed by start-tag",
|
||||
"input": [["EndTag", "body"], ["StartTag", "foo", {}]],
|
||||
"expected": ["<foo>"]
|
||||
},
|
||||
|
||||
{"description": "body end-tag followed by end-tag",
|
||||
"input": [["EndTag", "body"], ["EndTag", "foo", {}]],
|
||||
"expected": ["</foo>"]
|
||||
},
|
||||
|
||||
{"description": "body end-tag at EOF",
|
||||
"input": [["EndTag", "body"]],
|
||||
"expected": [""]
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
{"description": "li end-tag followed by comment",
|
||||
"input": [["EndTag", "li"], ["Comment", "foo"]],
|
||||
"expected": ["</li><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "li end-tag followed by space character",
|
||||
"input": [["EndTag", "li"], ["Characters", " foo"]],
|
||||
"expected": ["</li> foo"]
|
||||
},
|
||||
|
||||
{"description": "li end-tag followed by text",
|
||||
"input": [["EndTag", "li"], ["Characters", "foo"]],
|
||||
"expected": ["</li>foo"]
|
||||
},
|
||||
|
||||
{"description": "li end-tag followed by start-tag",
|
||||
"input": [["EndTag", "li"], ["StartTag", "foo", {}]],
|
||||
"expected": ["</li><foo>"]
|
||||
},
|
||||
|
||||
{"description": "li end-tag followed by li start-tag",
|
||||
"input": [["EndTag", "li"], ["StartTag", "li", {}]],
|
||||
"expected": ["<li>"]
|
||||
},
|
||||
|
||||
{"description": "li end-tag followed by end-tag",
|
||||
"input": [["EndTag", "li"], ["EndTag", "foo", {}]],
|
||||
"expected": ["</foo>"]
|
||||
},
|
||||
|
||||
{"description": "li end-tag at EOF",
|
||||
"input": [["EndTag", "li"]],
|
||||
"expected": [""]
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
{"description": "dt end-tag followed by comment",
|
||||
"input": [["EndTag", "dt"], ["Comment", "foo"]],
|
||||
"expected": ["</dt><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "dt end-tag followed by space character",
|
||||
"input": [["EndTag", "dt"], ["Characters", " foo"]],
|
||||
"expected": ["</dt> foo"]
|
||||
},
|
||||
|
||||
{"description": "dt end-tag followed by text",
|
||||
"input": [["EndTag", "dt"], ["Characters", "foo"]],
|
||||
"expected": ["</dt>foo"]
|
||||
},
|
||||
|
||||
{"description": "dt end-tag followed by start-tag",
|
||||
"input": [["EndTag", "dt"], ["StartTag", "foo", {}]],
|
||||
"expected": ["</dt><foo>"]
|
||||
},
|
||||
|
||||
{"description": "dt end-tag followed by dt start-tag",
|
||||
"input": [["EndTag", "dt"], ["StartTag", "dt", {}]],
|
||||
"expected": ["<dt>"]
|
||||
},
|
||||
|
||||
{"description": "dt end-tag followed by dd start-tag",
|
||||
"input": [["EndTag", "dt"], ["StartTag", "dd", {}]],
|
||||
"expected": ["<dd>"]
|
||||
},
|
||||
|
||||
{"description": "dt end-tag followed by end-tag",
|
||||
"input": [["EndTag", "dt"], ["EndTag", "foo", {}]],
|
||||
"expected": ["</dt></foo>"]
|
||||
},
|
||||
|
||||
{"description": "dt end-tag at EOF",
|
||||
"input": [["EndTag", "dt"]],
|
||||
"expected": ["</dt>"]
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
{"description": "dd end-tag followed by comment",
|
||||
"input": [["EndTag", "dd"], ["Comment", "foo"]],
|
||||
"expected": ["</dd><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "dd end-tag followed by space character",
|
||||
"input": [["EndTag", "dd"], ["Characters", " foo"]],
|
||||
"expected": ["</dd> foo"]
|
||||
},
|
||||
|
||||
{"description": "dd end-tag followed by text",
|
||||
"input": [["EndTag", "dd"], ["Characters", "foo"]],
|
||||
"expected": ["</dd>foo"]
|
||||
},
|
||||
|
||||
{"description": "dd end-tag followed by start-tag",
|
||||
"input": [["EndTag", "dd"], ["StartTag", "foo", {}]],
|
||||
"expected": ["</dd><foo>"]
|
||||
},
|
||||
|
||||
{"description": "dd end-tag followed by dd start-tag",
|
||||
"input": [["EndTag", "dd"], ["StartTag", "dd", {}]],
|
||||
"expected": ["<dd>"]
|
||||
},
|
||||
|
||||
{"description": "dd end-tag followed by dt start-tag",
|
||||
"input": [["EndTag", "dd"], ["StartTag", "dt", {}]],
|
||||
"expected": ["<dt>"]
|
||||
},
|
||||
|
||||
{"description": "dd end-tag followed by end-tag",
|
||||
"input": [["EndTag", "dd"], ["EndTag", "foo", {}]],
|
||||
"expected": ["</foo>"]
|
||||
},
|
||||
|
||||
{"description": "dd end-tag at EOF",
|
||||
"input": [["EndTag", "dd"]],
|
||||
"expected": [""]
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
{"description": "p end-tag followed by comment",
|
||||
"input": [["EndTag", "p"], ["Comment", "foo"]],
|
||||
"expected": ["</p><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by space character",
|
||||
"input": [["EndTag", "p"], ["Characters", " foo"]],
|
||||
"expected": ["</p> foo"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by text",
|
||||
"input": [["EndTag", "p"], ["Characters", "foo"]],
|
||||
"expected": ["</p>foo"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "foo", {}]],
|
||||
"expected": ["</p><foo>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by address start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "address", {}]],
|
||||
"expected": ["<address>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by blockquote start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "blockquote", {}]],
|
||||
"expected": ["<blockquote>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by dl start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "dl", {}]],
|
||||
"expected": ["<dl>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by fieldset start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "fieldset", {}]],
|
||||
"expected": ["<fieldset>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by form start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "form", {}]],
|
||||
"expected": ["<form>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by h1 start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "h1", {}]],
|
||||
"expected": ["<h1>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by h2 start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "h2", {}]],
|
||||
"expected": ["<h2>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by h3 start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "h3", {}]],
|
||||
"expected": ["<h3>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by h4 start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "h4", {}]],
|
||||
"expected": ["<h4>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by h5 start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "h5", {}]],
|
||||
"expected": ["<h5>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by h6 start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "h6", {}]],
|
||||
"expected": ["<h6>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by hr start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "hr", {}]],
|
||||
"expected": ["<hr>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by menu start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "menu", {}]],
|
||||
"expected": ["<menu>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by ol start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "ol", {}]],
|
||||
"expected": ["<ol>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by p start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "p", {}]],
|
||||
"expected": ["<p>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by pre start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "pre", {}]],
|
||||
"expected": ["<pre>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by table start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "table", {}]],
|
||||
"expected": ["<table>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by ul start-tag",
|
||||
"input": [["EndTag", "p"], ["StartTag", "ul", {}]],
|
||||
"expected": ["<ul>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag followed by end-tag",
|
||||
"input": [["EndTag", "p"], ["EndTag", "foo", {}]],
|
||||
"expected": ["</foo>"]
|
||||
},
|
||||
|
||||
{"description": "p end-tag at EOF",
|
||||
"input": [["EndTag", "p"]],
|
||||
"expected": [""]
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
{"description": "optgroup end-tag followed by comment",
|
||||
"input": [["EndTag", "optgroup"], ["Comment", "foo"]],
|
||||
"expected": ["</optgroup><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "optgroup end-tag followed by space character",
|
||||
"input": [["EndTag", "optgroup"], ["Characters", " foo"]],
|
||||
"expected": ["</optgroup> foo"]
|
||||
},
|
||||
|
||||
{"description": "optgroup end-tag followed by text",
|
||||
"input": [["EndTag", "optgroup"], ["Characters", "foo"]],
|
||||
"expected": ["</optgroup>foo"]
|
||||
},
|
||||
|
||||
{"description": "optgroup end-tag followed by start-tag",
|
||||
"input": [["EndTag", "optgroup"], ["StartTag", "foo", {}]],
|
||||
"expected": ["</optgroup><foo>"]
|
||||
},
|
||||
|
||||
{"description": "optgroup end-tag followed by optgroup start-tag",
|
||||
"input": [["EndTag", "optgroup"], ["StartTag", "optgroup", {}]],
|
||||
"expected": ["<optgroup>"]
|
||||
},
|
||||
|
||||
{"description": "optgroup end-tag followed by end-tag",
|
||||
"input": [["EndTag", "optgroup"], ["EndTag", "foo", {}]],
|
||||
"expected": ["</foo>"]
|
||||
},
|
||||
|
||||
{"description": "optgroup end-tag at EOF",
|
||||
"input": [["EndTag", "optgroup"]],
|
||||
"expected": [""]
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
{"description": "option end-tag followed by comment",
|
||||
"input": [["EndTag", "option"], ["Comment", "foo"]],
|
||||
"expected": ["</option><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "option end-tag followed by space character",
|
||||
"input": [["EndTag", "option"], ["Characters", " foo"]],
|
||||
"expected": ["</option> foo"]
|
||||
},
|
||||
|
||||
{"description": "option end-tag followed by text",
|
||||
"input": [["EndTag", "option"], ["Characters", "foo"]],
|
||||
"expected": ["</option>foo"]
|
||||
},
|
||||
|
||||
{"description": "option end-tag followed by start-tag",
|
||||
"input": [["EndTag", "option"], ["StartTag", "foo", {}]],
|
||||
"expected": ["</option><foo>"]
|
||||
},
|
||||
|
||||
{"description": "option end-tag followed by option start-tag",
|
||||
"input": [["EndTag", "option"], ["StartTag", "option", {}]],
|
||||
"expected": ["<option>"]
|
||||
},
|
||||
|
||||
{"description": "option end-tag followed by end-tag",
|
||||
"input": [["EndTag", "option"], ["EndTag", "foo", {}]],
|
||||
"expected": ["</foo>"]
|
||||
},
|
||||
|
||||
{"description": "option end-tag at EOF",
|
||||
"input": [["EndTag", "option"]],
|
||||
"expected": [""]
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
{"description": "colgroup start-tag followed by comment",
|
||||
"input": [["StartTag", "colgroup", {}], ["Comment", "foo"]],
|
||||
"expected": ["<colgroup><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "colgroup start-tag followed by space character",
|
||||
"input": [["StartTag", "colgroup", {}], ["Characters", " foo"]],
|
||||
"expected": ["<colgroup> foo"]
|
||||
},
|
||||
|
||||
{"description": "colgroup start-tag followed by text",
|
||||
"input": [["StartTag", "colgroup", {}], ["Characters", "foo"]],
|
||||
"expected": ["<colgroup>foo"]
|
||||
},
|
||||
|
||||
{"description": "colgroup start-tag followed by start-tag",
|
||||
"input": [["StartTag", "colgroup", {}], ["StartTag", "foo", {}]],
|
||||
"expected": ["<colgroup><foo>"]
|
||||
},
|
||||
|
||||
{"description": "first colgroup in a table with a col child",
|
||||
"input": [["StartTag", "table", {}], ["StartTag", "colgroup", {}], ["StartTag", "col", {}]],
|
||||
"expected": ["<table><col>"]
|
||||
},
|
||||
|
||||
{"description": "colgroup with a col child, following another colgroup",
|
||||
"input": [["EndTag", "colgroup", {}], ["StartTag", "colgroup", {}], ["StartTag", "col", {}]],
|
||||
"expected": ["</colgroup><col>", "<colgroup><col>"]
|
||||
},
|
||||
|
||||
{"description": "colgroup start-tag followed by end-tag",
|
||||
"input": [["StartTag", "colgroup", {}], ["EndTag", "foo", {}]],
|
||||
"expected": ["<colgroup></foo>"]
|
||||
},
|
||||
|
||||
{"description": "colgroup start-tag at EOF",
|
||||
"input": [["StartTag", "colgroup", {}]],
|
||||
"expected": ["<colgroup>"]
|
||||
},
|
||||
|
||||
|
||||
|
||||
{"description": "colgroup end-tag followed by comment",
|
||||
"input": [["EndTag", "colgroup"], ["Comment", "foo"]],
|
||||
"expected": ["</colgroup><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "colgroup end-tag followed by space character",
|
||||
"input": [["EndTag", "colgroup"], ["Characters", " foo"]],
|
||||
"expected": ["</colgroup> foo"]
|
||||
},
|
||||
|
||||
{"description": "colgroup end-tag followed by text",
|
||||
"input": [["EndTag", "colgroup"], ["Characters", "foo"]],
|
||||
"expected": ["foo"]
|
||||
},
|
||||
|
||||
{"description": "colgroup end-tag followed by start-tag",
|
||||
"input": [["EndTag", "colgroup"], ["StartTag", "foo", {}]],
|
||||
"expected": ["<foo>"]
|
||||
},
|
||||
|
||||
{"description": "colgroup end-tag followed by end-tag",
|
||||
"input": [["EndTag", "colgroup"], ["EndTag", "foo", {}]],
|
||||
"expected": ["</foo>"]
|
||||
},
|
||||
|
||||
{"description": "colgroup end-tag at EOF",
|
||||
"input": [["EndTag", "colgroup"]],
|
||||
"expected": [""]
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
{"description": "thead end-tag followed by comment",
|
||||
"input": [["EndTag", "thead"], ["Comment", "foo"]],
|
||||
"expected": ["</thead><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "thead end-tag followed by space character",
|
||||
"input": [["EndTag", "thead"], ["Characters", " foo"]],
|
||||
"expected": ["</thead> foo"]
|
||||
},
|
||||
|
||||
{"description": "thead end-tag followed by text",
|
||||
"input": [["EndTag", "thead"], ["Characters", "foo"]],
|
||||
"expected": ["</thead>foo"]
|
||||
},
|
||||
|
||||
{"description": "thead end-tag followed by start-tag",
|
||||
"input": [["EndTag", "thead"], ["StartTag", "foo", {}]],
|
||||
"expected": ["</thead><foo>"]
|
||||
},
|
||||
|
||||
{"description": "thead end-tag followed by tbody start-tag",
|
||||
"input": [["EndTag", "thead"], ["StartTag", "tbody", {}]],
|
||||
"expected": ["<tbody>"]
|
||||
},
|
||||
|
||||
{"description": "thead end-tag followed by tfoot start-tag",
|
||||
"input": [["EndTag", "thead"], ["StartTag", "tfoot", {}]],
|
||||
"expected": ["<tfoot>"]
|
||||
},
|
||||
|
||||
{"description": "thead end-tag followed by end-tag",
|
||||
"input": [["EndTag", "thead"], ["EndTag", "foo", {}]],
|
||||
"expected": ["</thead></foo>"]
|
||||
},
|
||||
|
||||
{"description": "thead end-tag at EOF",
|
||||
"input": [["EndTag", "thead"]],
|
||||
"expected": ["</thead>"]
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
{"description": "tbody start-tag followed by comment",
|
||||
"input": [["StartTag", "tbody", {}], ["Comment", "foo"]],
|
||||
"expected": ["<tbody><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "tbody start-tag followed by space character",
|
||||
"input": [["StartTag", "tbody", {}], ["Characters", " foo"]],
|
||||
"expected": ["<tbody> foo"]
|
||||
},
|
||||
|
||||
{"description": "tbody start-tag followed by text",
|
||||
"input": [["StartTag", "tbody", {}], ["Characters", "foo"]],
|
||||
"expected": ["<tbody>foo"]
|
||||
},
|
||||
|
||||
{"description": "tbody start-tag followed by start-tag",
|
||||
"input": [["StartTag", "tbody", {}], ["StartTag", "foo", {}]],
|
||||
"expected": ["<tbody><foo>"]
|
||||
},
|
||||
|
||||
{"description": "first tbody in a table with a tr child",
|
||||
"input": [["StartTag", "table", {}], ["StartTag", "tbody", {}], ["StartTag", "tr", {}]],
|
||||
"expected": ["<table><tr>"]
|
||||
},
|
||||
|
||||
{"description": "tbody with a tr child, following another tbody",
|
||||
"input": [["EndTag", "tbody", {}], ["StartTag", "tbody", {}], ["StartTag", "tr", {}]],
|
||||
"expected": ["<tbody><tr>", "</tbody><tr>"]
|
||||
},
|
||||
|
||||
{"description": "tbody with a tr child, following a thead",
|
||||
"input": [["EndTag", "thead", {}], ["StartTag", "tbody", {}], ["StartTag", "tr", {}]],
|
||||
"expected": ["<tbody><tr>", "</thead><tr>"]
|
||||
},
|
||||
|
||||
{"description": "tbody with a tr child, following a tfoot",
|
||||
"input": [["EndTag", "tfoot", {}], ["StartTag", "tbody", {}], ["StartTag", "tr", {}]],
|
||||
"expected": ["<tbody><tr>", "</tfoot><tr>"]
|
||||
},
|
||||
|
||||
{"description": "tbody start-tag followed by end-tag",
|
||||
"input": [["StartTag", "tbody", {}], ["EndTag", "foo", {}]],
|
||||
"expected": ["<tbody></foo>"]
|
||||
},
|
||||
|
||||
{"description": "tbody start-tag at EOF",
|
||||
"input": [["StartTag", "tbody", {}]],
|
||||
"expected": ["<tbody>"]
|
||||
},
|
||||
|
||||
|
||||
|
||||
{"description": "tbody end-tag followed by comment",
|
||||
"input": [["EndTag", "tbody"], ["Comment", "foo"]],
|
||||
"expected": ["</tbody><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "tbody end-tag followed by space character",
|
||||
"input": [["EndTag", "tbody"], ["Characters", " foo"]],
|
||||
"expected": ["</tbody> foo"]
|
||||
},
|
||||
|
||||
{"description": "tbody end-tag followed by text",
|
||||
"input": [["EndTag", "tbody"], ["Characters", "foo"]],
|
||||
"expected": ["</tbody>foo"]
|
||||
},
|
||||
|
||||
{"description": "tbody end-tag followed by start-tag",
|
||||
"input": [["EndTag", "tbody"], ["StartTag", "foo", {}]],
|
||||
"expected": ["</tbody><foo>"]
|
||||
},
|
||||
|
||||
{"description": "tbody end-tag followed by tbody start-tag",
|
||||
"input": [["EndTag", "tbody"], ["StartTag", "tbody", {}]],
|
||||
"expected": ["<tbody>", "</tbody>"]
|
||||
},
|
||||
|
||||
{"description": "tbody end-tag followed by tfoot start-tag",
|
||||
"input": [["EndTag", "tbody"], ["StartTag", "tfoot", {}]],
|
||||
"expected": ["<tfoot>"]
|
||||
},
|
||||
|
||||
{"description": "tbody end-tag followed by end-tag",
|
||||
"input": [["EndTag", "tbody"], ["EndTag", "foo", {}]],
|
||||
"expected": ["</foo>"]
|
||||
},
|
||||
|
||||
{"description": "tbody end-tag at EOF",
|
||||
"input": [["EndTag", "tbody"]],
|
||||
"expected": [""]
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
{"description": "tfoot end-tag followed by comment",
|
||||
"input": [["EndTag", "tfoot"], ["Comment", "foo"]],
|
||||
"expected": ["</tfoot><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "tfoot end-tag followed by space character",
|
||||
"input": [["EndTag", "tfoot"], ["Characters", " foo"]],
|
||||
"expected": ["</tfoot> foo"]
|
||||
},
|
||||
|
||||
{"description": "tfoot end-tag followed by text",
|
||||
"input": [["EndTag", "tfoot"], ["Characters", "foo"]],
|
||||
"expected": ["</tfoot>foo"]
|
||||
},
|
||||
|
||||
{"description": "tfoot end-tag followed by start-tag",
|
||||
"input": [["EndTag", "tfoot"], ["StartTag", "foo", {}]],
|
||||
"expected": ["</tfoot><foo>"]
|
||||
},
|
||||
|
||||
{"description": "tfoot end-tag followed by tbody start-tag",
|
||||
"input": [["EndTag", "tfoot"], ["StartTag", "tbody", {}]],
|
||||
"expected": ["<tbody>", "</tfoot>"]
|
||||
},
|
||||
|
||||
{"description": "tfoot end-tag followed by end-tag",
|
||||
"input": [["EndTag", "tfoot"], ["EndTag", "foo", {}]],
|
||||
"expected": ["</foo>"]
|
||||
},
|
||||
|
||||
{"description": "tfoot end-tag at EOF",
|
||||
"input": [["EndTag", "tfoot"]],
|
||||
"expected": [""]
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
{"description": "tr end-tag followed by comment",
|
||||
"input": [["EndTag", "tr"], ["Comment", "foo"]],
|
||||
"expected": ["</tr><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "tr end-tag followed by space character",
|
||||
"input": [["EndTag", "tr"], ["Characters", " foo"]],
|
||||
"expected": ["</tr> foo"]
|
||||
},
|
||||
|
||||
{"description": "tr end-tag followed by text",
|
||||
"input": [["EndTag", "tr"], ["Characters", "foo"]],
|
||||
"expected": ["</tr>foo"]
|
||||
},
|
||||
|
||||
{"description": "tr end-tag followed by start-tag",
|
||||
"input": [["EndTag", "tr"], ["StartTag", "foo", {}]],
|
||||
"expected": ["</tr><foo>"]
|
||||
},
|
||||
|
||||
{"description": "tr end-tag followed by tr start-tag",
|
||||
"input": [["EndTag", "tr"], ["StartTag", "tr", {}]],
|
||||
"expected": ["<tr>", "</tr>"]
|
||||
},
|
||||
|
||||
{"description": "tr end-tag followed by end-tag",
|
||||
"input": [["EndTag", "tr"], ["EndTag", "foo", {}]],
|
||||
"expected": ["</foo>"]
|
||||
},
|
||||
|
||||
{"description": "tr end-tag at EOF",
|
||||
"input": [["EndTag", "tr"]],
|
||||
"expected": [""]
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
{"description": "td end-tag followed by comment",
|
||||
"input": [["EndTag", "td"], ["Comment", "foo"]],
|
||||
"expected": ["</td><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "td end-tag followed by space character",
|
||||
"input": [["EndTag", "td"], ["Characters", " foo"]],
|
||||
"expected": ["</td> foo"]
|
||||
},
|
||||
|
||||
{"description": "td end-tag followed by text",
|
||||
"input": [["EndTag", "td"], ["Characters", "foo"]],
|
||||
"expected": ["</td>foo"]
|
||||
},
|
||||
|
||||
{"description": "td end-tag followed by start-tag",
|
||||
"input": [["EndTag", "td"], ["StartTag", "foo", {}]],
|
||||
"expected": ["</td><foo>"]
|
||||
},
|
||||
|
||||
{"description": "td end-tag followed by td start-tag",
|
||||
"input": [["EndTag", "td"], ["StartTag", "td", {}]],
|
||||
"expected": ["<td>", "</td>"]
|
||||
},
|
||||
|
||||
{"description": "td end-tag followed by th start-tag",
|
||||
"input": [["EndTag", "td"], ["StartTag", "th", {}]],
|
||||
"expected": ["<th>", "</td>"]
|
||||
},
|
||||
|
||||
{"description": "td end-tag followed by end-tag",
|
||||
"input": [["EndTag", "td"], ["EndTag", "foo", {}]],
|
||||
"expected": ["</foo>"]
|
||||
},
|
||||
|
||||
{"description": "td end-tag at EOF",
|
||||
"input": [["EndTag", "td"]],
|
||||
"expected": [""]
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
{"description": "th end-tag followed by comment",
|
||||
"input": [["EndTag", "th"], ["Comment", "foo"]],
|
||||
"expected": ["</th><!--foo-->"]
|
||||
},
|
||||
|
||||
{"description": "th end-tag followed by space character",
|
||||
"input": [["EndTag", "th"], ["Characters", " foo"]],
|
||||
"expected": ["</th> foo"]
|
||||
},
|
||||
|
||||
{"description": "th end-tag followed by text",
|
||||
"input": [["EndTag", "th"], ["Characters", "foo"]],
|
||||
"expected": ["</th>foo"]
|
||||
},
|
||||
|
||||
{"description": "th end-tag followed by start-tag",
|
||||
"input": [["EndTag", "th"], ["StartTag", "foo", {}]],
|
||||
"expected": ["</th><foo>"]
|
||||
},
|
||||
|
||||
{"description": "th end-tag followed by th start-tag",
|
||||
"input": [["EndTag", "th"], ["StartTag", "th", {}]],
|
||||
"expected": ["<th>", "</th>"]
|
||||
},
|
||||
|
||||
{"description": "th end-tag followed by td start-tag",
|
||||
"input": [["EndTag", "th"], ["StartTag", "td", {}]],
|
||||
"expected": ["<td>", "</th>"]
|
||||
},
|
||||
|
||||
{"description": "th end-tag followed by end-tag",
|
||||
"input": [["EndTag", "th"], ["EndTag", "foo", {}]],
|
||||
"expected": ["</foo>"]
|
||||
},
|
||||
|
||||
{"description": "th end-tag at EOF",
|
||||
"input": [["EndTag", "th"]],
|
||||
"expected": [""]
|
||||
}
|
||||
|
||||
]}
|
60
attic/vendor/plugins/HTML5lib/testdata/serializer/options.test
vendored
Normal file
60
attic/vendor/plugins/HTML5lib/testdata/serializer/options.test
vendored
Normal file
|
@ -0,0 +1,60 @@
|
|||
{"tests":[
|
||||
|
||||
{"description": "quote_char=\"'\"",
|
||||
"options": {"quote_char": "'"},
|
||||
"input": [["StartTag", "span", {"title": "test 'with' quote_char"}]],
|
||||
"expected": ["<span title='test 'with' quote_char'>"]
|
||||
},
|
||||
|
||||
{"description": "quote_attr_values=true",
|
||||
"options": {"quote_attr_values": true},
|
||||
"input": [["StartTag", "button", {"disabled": "disabled"}]],
|
||||
"expected": ["<button disabled>"],
|
||||
"xhtml": ["<button disabled=\"disabled\">"]
|
||||
},
|
||||
|
||||
{"description": "quote_attr_values=true with irrelevant",
|
||||
"options": {"quote_attr_values": true},
|
||||
"input": [["StartTag", "div", {"irrelevant": "irrelevant"}]],
|
||||
"expected": ["<div irrelevant>"],
|
||||
"xhtml": ["<div irrelevant=\"irrelevant\">"]
|
||||
},
|
||||
|
||||
{"description": "use_trailing_solidus=true with void element",
|
||||
"options": {"use_trailing_solidus": true},
|
||||
"input": [["EmptyTag", "img", {}]],
|
||||
"expected": ["<img />"]
|
||||
},
|
||||
|
||||
{"description": "use_trailing_solidus=true with non-void element",
|
||||
"options": {"use_trailing_solidus": true},
|
||||
"input": [["StartTag", "div", {}]],
|
||||
"expected": ["<div>"]
|
||||
},
|
||||
|
||||
{"description": "minimize_boolean_attributes=false",
|
||||
"options": {"minimize_boolean_attributes": false},
|
||||
"input": [["StartTag", "div", {"irrelevant": "irrelevant"}]],
|
||||
"expected": ["<div irrelevant=irrelevant>"],
|
||||
"xhtml": ["<div irrelevant=\"irrelevant\">"]
|
||||
},
|
||||
|
||||
{"description": "minimize_boolean_attributes=false with empty value",
|
||||
"options": {"minimize_boolean_attributes": false},
|
||||
"input": [["StartTag", "div", {"irrelevant": ""}]],
|
||||
"expected": ["<div irrelevant=\"\">"]
|
||||
},
|
||||
|
||||
{"description": "escape less than signs in attribute values",
|
||||
"options": {"escape_lt_in_attrs": true},
|
||||
"input": [["StartTag", "a", {"title": "a<b>c&d"}]],
|
||||
"expected": ["<a title=\"a<b>c&d\">"]
|
||||
},
|
||||
|
||||
{"description": "rcdata",
|
||||
"options": {"escape_rcdata": true},
|
||||
"input": [["StartTag", "script", {}], ["Characters", "a<b>c&d"]],
|
||||
"expected": ["<script>a<b>c&d"]
|
||||
}
|
||||
|
||||
]}
|
51
attic/vendor/plugins/HTML5lib/testdata/serializer/whitespace.test
vendored
Normal file
51
attic/vendor/plugins/HTML5lib/testdata/serializer/whitespace.test
vendored
Normal file
|
@ -0,0 +1,51 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "bare text with leading spaces",
|
||||
"options": {"strip_whitespace": true},
|
||||
"input": [["Characters", "\t\r\n\u000B\u000C foo"]],
|
||||
"expected": [" foo"]
|
||||
},
|
||||
|
||||
{"description": "bare text with trailing spaces",
|
||||
"options": {"strip_whitespace": true},
|
||||
"input": [["Characters", "foo \t\r\n\u000B\u000C"]],
|
||||
"expected": ["foo "]
|
||||
},
|
||||
|
||||
{"description": "bare text with inner spaces",
|
||||
"options": {"strip_whitespace": true},
|
||||
"input": [["Characters", "foo \t\r\n\u000B\u000C bar"]],
|
||||
"expected": ["foo bar"]
|
||||
},
|
||||
|
||||
{"description": "text within <pre>",
|
||||
"options": {"strip_whitespace": true},
|
||||
"input": [["StartTag", "pre", {}], ["Characters", "\t\r\n\u000B\u000C foo \t\r\n\u000B\u000C bar \t\r\n\u000B\u000C"], ["EndTag", "pre"]],
|
||||
"expected": ["<pre>\t\r\n\u000B\u000C foo \t\r\n\u000B\u000C bar \t\r\n\u000B\u000C</pre>"]
|
||||
},
|
||||
|
||||
{"description": "text within <pre>, with inner markup",
|
||||
"options": {"strip_whitespace": true},
|
||||
"input": [["StartTag", "pre", {}], ["Characters", "\t\r\n\u000B\u000C fo"], ["StartTag", "span", {}], ["Characters", "o \t\r\n\u000B\u000C b"], ["EndTag", "span"], ["Characters", "ar \t\r\n\u000B\u000C"], ["EndTag", "pre"]],
|
||||
"expected": ["<pre>\t\r\n\u000B\u000C fo<span>o \t\r\n\u000B\u000C b</span>ar \t\r\n\u000B\u000C</pre>"]
|
||||
},
|
||||
|
||||
{"description": "text within <textarea>",
|
||||
"options": {"strip_whitespace": true},
|
||||
"input": [["StartTag", "textarea", {}], ["Characters", "\t\r\n\u000B\u000C foo \t\r\n\u000B\u000C bar \t\r\n\u000B\u000C"], ["EndTag", "textarea"]],
|
||||
"expected": ["<textarea>\t\r\n\u000B\u000C foo \t\r\n\u000B\u000C bar \t\r\n\u000B\u000C</textarea>"]
|
||||
},
|
||||
|
||||
{"description": "text within <script>",
|
||||
"options": {"strip_whitespace": true},
|
||||
"input": [["StartTag", "script", {}], ["Characters", "\t\r\n\u000B\u000C foo \t\r\n\u000B\u000C bar \t\r\n\u000B\u000C"], ["EndTag", "script"]],
|
||||
"expected": ["<script>\t\r\n\u000B\u000C foo \t\r\n\u000B\u000C bar \t\r\n\u000B\u000C</script>"]
|
||||
},
|
||||
|
||||
{"description": "text within <style>",
|
||||
"options": {"strip_whitespace": true},
|
||||
"input": [["StartTag", "style", {}], ["Characters", "\t\r\n\u000B\u000C foo \t\r\n\u000B\u000C bar \t\r\n\u000B\u000C"], ["EndTag", "style"]],
|
||||
"expected": ["<style>\t\r\n\u000B\u000C foo \t\r\n\u000B\u000C bar \t\r\n\u000B\u000C</style>"]
|
||||
}
|
||||
|
||||
]}
|
1
attic/vendor/plugins/HTML5lib/testdata/sites/google-results.htm
vendored
Executable file
1
attic/vendor/plugins/HTML5lib/testdata/sites/google-results.htm
vendored
Executable file
File diff suppressed because one or more lines are too long
1
attic/vendor/plugins/HTML5lib/testdata/sites/python-ref-import.htm
vendored
Executable file
1
attic/vendor/plugins/HTML5lib/testdata/sites/python-ref-import.htm
vendored
Executable file
File diff suppressed because one or more lines are too long
1
attic/vendor/plugins/HTML5lib/testdata/sites/web-apps-old.htm
vendored
Executable file
1
attic/vendor/plugins/HTML5lib/testdata/sites/web-apps-old.htm
vendored
Executable file
File diff suppressed because one or more lines are too long
34275
attic/vendor/plugins/HTML5lib/testdata/sites/web-apps.htm
vendored
Executable file
34275
attic/vendor/plugins/HTML5lib/testdata/sites/web-apps.htm
vendored
Executable file
File diff suppressed because it is too large
Load diff
43
attic/vendor/plugins/HTML5lib/testdata/sniffer/htmlOrFeed.json
vendored
Normal file
43
attic/vendor/plugins/HTML5lib/testdata/sniffer/htmlOrFeed.json
vendored
Normal file
|
@ -0,0 +1,43 @@
|
|||
[
|
||||
{"type": "text/html", "input": ""},
|
||||
{"type": "text/html", "input": "<!---->"},
|
||||
{"type": "text/html", "input": "<!--asdfaslkjdf;laksjdf as;dkfjsd-->"},
|
||||
{"type": "text/html", "input": "<!"},
|
||||
{"type": "text/html", "input": "\t"},
|
||||
{"type": "text/html", "input": "<!>"},
|
||||
{"type": "text/html", "input": "<?"},
|
||||
{"type": "text/html", "input": "<??>"},
|
||||
{"type": "application/rss+xml", "input": "<rss"},
|
||||
{"type": "application/atom+xml", "input": "<feed"},
|
||||
{"type": "text/html", "input": "<html"},
|
||||
{"type": "text/html", "input": "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>302 Found</title>\n</head><body>\n<h1>Found</h1>\n<p>The document has moved <a href=\"http://feeds.feedburner.com/gofug\">here</a>.</p>\n</body></html>\n"},
|
||||
{"type": "text/html", "input": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\r\n<HTML><HEAD>\r\n <link rel=\"stylesheet\" type=\"text/css\" href=\"http://cache.blogads.com/289619328/feed.css\" /><link rel=\"stylesheet\" type=\"text/css\" href=\"http://cache.blogads.com/431602649/feed.css\" />\r\n<link rel=\"stylesheet\" type=\"text/css\" href=\"http://cache.blogads.com/382549546/feed.css\" />\r\n<link rel=\"stylesheet\" type=\"text/css\" href=\"http://cache.blogads.com/314618017/feed.css\" /><META http-equiv=\"expires\" content="},
|
||||
{"type": "text/html", "input": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n<html>\r\n<head>\r\n<title>Xiaxue - Chicken pie blogger.</title><meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"><style type=\"text/css\">\r\n<style type=\"text/css\">\r\n<!--\r\nbody {\r\n background-color: #FFF2F2;\r\n}\r\n.style1 {font-family: Georgia, \"Times New Roman\", Times, serif}\r\n.style2 {\r\n color: #8a567c;\r\n font-size: 14px;\r\n font-family: Georgia, \"Times New Roman\", Times, serif;\r\n}\r"},
|
||||
{"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\r\n<head> \r\n<title>Google Operating System</title>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n<meta name=\"Description\" content=\"Unofficial news and tips about Google. A blog that watches Google's latest developments and the attempts to move your operating system online.\" />\r\n<meta name=\"generator\" c"},
|
||||
{"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\r\n<head>\r\n <title>Assimilated Press</title> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n<meta name=\"MSSmartTagsPreventParsing\" content=\"true\" />\r\n<meta name=\"generator\" content=\"Blogger\" />\r\n<link rel=\"alternate\" type=\"application/atom+xml\" title=\"Assimilated Press - Atom\" href=\"http://assimila"},
|
||||
{"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\r\n<head>\r\n <title>PostSecret</title>\r\n<META name=\"keywords\" Content=\"secrets, postcard, secret, postcards, postsecret, postsecrets,online confessional, post secret, post secrets, artomatic, post a secret\"><META name=\"discription\" Content=\"See a Secret...Share a Secret\"> <meta http-equiv=\"Content-Type\" content=\"te"},
|
||||
{"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>\n <head>\n \n <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>\n <meta content='true' name='MSSmartTagsPreventParsing'/>\n <meta content='blogger' name='generator'/>\n <link rel=\"alternate\" typ"},
|
||||
{"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"ja\">\n<head profile=\"http://gmpg.org/xfn/11\"> \n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /> \n<title> CMS Lever</title><link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"http://s.wordpress.com/wp-content/themes/pub/twenty-eight/2813.css\"/>\n<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" h"},
|
||||
{"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"en\"><head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n<title> Park Avenue Peerage</title>\t<meta name=\"generator\" content=\"WordPress.com\" />\t<!-- feeds -->\n\t<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" href=\"http://parkavenuepeerage.wordpress.com/feed/\" />\t<link rel=\"pingback\" href="},
|
||||
{"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"ja\"><head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n<title> \u884c\u96f2\u6d41\u6c34 -like a floating clouds and running water-</title>\t<meta name=\"generator\" content=\"WordPress.com\" />\t<!-- feeds -->\n\t<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" href=\"http://shw4.wordpress.com/feed/\" />\t<li"},
|
||||
{"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<meta name=\"generator\" content=\"http://www.typepad.com/\" />\n<title>Go Fug Yourself</title><link rel=\"stylesheet\" href=\"http://gofugyourself.typepad.com/go_fug_yourself/styles.css\" type=\"text/css\" />\n<link rel=\"alternate\" type=\"application/atom+xml\" title=\"Atom\" "},
|
||||
{"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"en\"><head profile=\"http://gmpg.org/xfn/11\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /><title> Ladies…</title><meta name=\"generator\" content=\"WordPress.com\" /> <!-- leave this for stats --><link rel=\"stylesheet\" href=\"http://s.wordpress.com/wp-content/themes/default/style.css?1\" type=\"tex"},
|
||||
{"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n <title>The Sartorialist</title> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n<meta name=\"MSSmartTagsPreventParsing\" content=\"true\" />\r\n<meta name=\"generator\" content=\"Blogger\" />\r\n<link rel=\"alternate\" type=\"application/atom+xml\" title=\"The Sartorialist - Atom\" href=\"http://thesartorialist.blogspot"},
|
||||
{"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />\n<meta name=\"generator\" content=\"http://www.typepad.com/\" />\n<title>Creating Passionate Users</title><link rel=\"stylesheet\" href=\"http://headrush.typepad.com/creating_passionate_users/styles.css\" type=\"text/css\" />\n<link rel=\"alternate\" type"},
|
||||
{"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" id=\"sixapart-standard\">\n<head>\n\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n\t<meta name=\"generator\" content=\"http://www.typepad.com/\" />\n\t\n\t\n <meta name=\"keywords\" content=\"marketing, blog, seth, ideas, respect, permission\" />\n <meta name=\"description\" content=\"Seth Godin's riffs on marketing, respect, and the "},
|
||||
{"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" id=\"sixapart-standard\">\n<head>\n\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n\t<meta name=\"generator\" content=\"http://www.typepad.com/\" />\n\t\n\t\n \n <meta name=\"description\" content=\" Western Civilization hangs in the balance. This blog is part of the solution,the cure. Get your heads out of the sand and Fight the G"},
|
||||
{"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=pahrefhttpwwwfeedburnercomtarget_blankimgsrchttpwwwfeedburnercomfbimagespubpowered_by_fbgifaltPoweredbyFeedBurnerstyleborder0ap\" />\n<title> From Under the Rotunda</title>\n<link rel=\"stylesheet\" href=\"http://s.wordpress.com/wp-content/themes/pub/andreas04/style.css\" type=\"text/css\""},
|
||||
{"type": "application/atom+xml", "input": "<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href=\"http://www.blogger.com/styles/atom.css\" type=\"text/css\"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-10861780</id><updated>2007-07-27T12:38:50.888-07:00</updated><title type='text'>Official Google Blog</title><link rel='alternate' type='text/html' href='http://googleblog.blogspot.com/'/><link rel='next' type='application/atom+xml' href='http://googleblog.blogs"},
|
||||
{"type": "application/rss+xml", "input": "<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-10861780</atom:id><lastBuildDate>Fri, 27 Jul 2007 19:38:50 +0000</lastBuildDate><title>Official Google Blog</title><description/><link>http://googleblog.blogspot.com/</link><managingEditor>Eric Case</managingEditor><generator>Blogger</generator><openSearch:totalResults>729</openSearch:totalResults><openSearc"},
|
||||
{"type": "application/rss+xml", "input": "<?xml version=\"1.0\" encoding=\"pahrefhttpwwwfeedburnercomtarget_blankimgsrchttpwwwfeedburnercomfbimagespubpowered_by_fbgifaltPoweredbyFeedBurnerstyleborder0ap\"?>\n<!-- generator=\"wordpress/MU\" -->\n<rss version=\"2.0\"\n\txmlns:content=\"http://purl.org/rss/1.0/modules/content/\"\n\txmlns:wfw=\"http://wellformedweb.org/CommentAPI/\"\n\txmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n\t><channel>\n\t<title>From Under the Rotunda</title>\n\t<link>http://dannybernardi.wordpress.com</link>\n\t<description>The Monographs of Danny Ber"},
|
||||
{"type": "application/rss+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- generator=\"wordpress/MU\" -->\n<rss version=\"2.0\"\n\txmlns:content=\"http://purl.org/rss/1.0/modules/content/\"\n\txmlns:wfw=\"http://wellformedweb.org/CommentAPI/\"\n\txmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n\t><channel>\n\t<title>CMS Lever</title>\n\t<link>http://kanaguri.wordpress.com</link>\n\t<description>CMS\u306e\u6c17\u306b\u306a\u3063\u305f\u3053\u3068</description>\n\t<pubDate>Wed, 18 Jul 2007 21:26:22 +0000</pubDate>\n\t<generator>http://wordpress.org/?v=MU</generator>\n\t<language>ja</languag"},
|
||||
{"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<feed xmlns=\"http://www.w3.org/2005/Atom\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:thr=\"http://purl.org/syndication/thread/1.0\">\n <title>Atlas Shrugs</title>\n <link rel=\"self\" type=\"application/atom+xml\" href=\"http://atlasshrugs2000.typepad.com/atlas_shrugs/atom.xml\" />\n <link rel=\"alternate\" type=\"text/html\" href=\"http://atlasshrugs2000.typepad.com/atlas_shrugs/\" />\n <id>tag:typepad.com,2003:weblog-132946</id>\n <updated>2007-08-15T16:07:34-04"},
|
||||
{"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/atom10full.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><feed xmlns=\"http://www.w3.org/2005/Atom\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:thr=\"http://purl.org/syndication/thread/1.0\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\">\r\n <title>Creating Passionate Users</title>\r\n "},
|
||||
{"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/atom10full.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><feed xmlns=\"http://www.w3.org/2005/Atom\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\">\r\n <title>Seth's Blog</title>\r\n <link rel=\"alternate\" type=\"text/html\" href=\"http://sethgodin.typepad.com/seths_blog/\" />\r\n <link rel=\"s"},
|
||||
{"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/atom10full.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><feed xmlns=\"http://www.w3.org/2005/Atom\" xmlns:openSearch=\"http://a9.com/-/spec/opensearchrss/1.0/\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\"><id>tag:blogger.com,1999:blog-32454861</id><updated>2007-07-31T21:44:09.867+02:00</upd"},
|
||||
{"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/atomfull.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><feed xmlns=\"http://purl.org/atom/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\" version=\"0.3\">\r\n <title>Go Fug Yourself</title>\r\n <link rel=\"alternate\" type=\"text/html\" href=\"http://go"},
|
||||
{"type": "application/rss+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/rss2full.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><rss xmlns:creativeCommons=\"http://backend.userland.com/creativeCommonsRssModule\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\" version=\"2.0\"><channel><title>Google Operating System</title><link>http://googlesystem.blogspot.com/</link>"},
|
||||
{"type": "application/rss+xml", "input": "<?xml version=\"1.0\" encoding=\"\"?>\n<!-- generator=\"wordpress/MU\" -->\n<rss version=\"2.0\"\n\txmlns:content=\"http://purl.org/rss/1.0/modules/content/\"\n\txmlns:wfw=\"http://wellformedweb.org/CommentAPI/\"\n\txmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n\t><channel>\n\t<title>Nunublog</title>\n\t<link>http://nunubh.wordpress.com</link>\n\t<description>Just Newbie Blog!</description>\n\t<pubDate>Mon, 09 Jul 2007 18:54:09 +0000</pubDate>\n\t<generator>http://wordpress.org/?v=MU</generator>\n\t<language>id</language>\n\t\t\t<item>\n\t\t<ti"},
|
||||
{"type": "text/html", "input": "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\r\n<HEAD>\r\n<TITLE>Design*Sponge</TITLE><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n<meta name=\"MSSmartTagsPreventParsing\" content=\"true\" />\r\n<meta name=\"generator\" content=\"Blogger\" />\r\n<link rel=\"alternate\" type=\"application/atom+xml\" title=\"Design*Sponge - Atom\" href=\"http://designsponge.blogspot.com/feeds/posts/default\" />\r\n<link rel=\"alternate\" type=\"application/rss+xml\" title=\"Design*Sponge - RSS\" href="},
|
||||
{"type": "text/html", "input": "<HTML>\n<HEAD>\n<TITLE>Moved Temporarily</TITLE>\n</HEAD>\n<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\">\n<H1>Moved Temporarily</H1>\nThe document has moved <A HREF=\"http://feeds.feedburner.com/thesecretdiaryofstevejobs\">here</A>.\n</BODY>\n</HTML>\n"}
|
||||
]
|
48
attic/vendor/plugins/HTML5lib/testdata/tokenizer/contentModelFlags.test
vendored
Normal file
48
attic/vendor/plugins/HTML5lib/testdata/tokenizer/contentModelFlags.test
vendored
Normal file
|
@ -0,0 +1,48 @@
|
|||
{"tests": [
|
||||
|
||||
{"description":"PLAINTEXT content model flag",
|
||||
"contentModelFlags":["PLAINTEXT"],
|
||||
"input":"<head>&body;",
|
||||
"output":[["Character", "<head>&body;"]]},
|
||||
|
||||
{"description":"End tag closing RCDATA or CDATA",
|
||||
"contentModelFlags":["RCDATA", "CDATA"],
|
||||
"lastStartTag":"bar",
|
||||
"input":"foo</bar>",
|
||||
"output":[["Character", "foo"], ["EndTag", "bar"]]},
|
||||
|
||||
{"description":"End tag closing RCDATA or CDATA (case-insensitivity)",
|
||||
"contentModelFlags":["RCDATA", "CDATA"],
|
||||
"lastStartTag":"bar",
|
||||
"input":"foo</bAr>",
|
||||
"output":[["Character", "foo"], ["EndTag", "bar"]]},
|
||||
|
||||
{"description":"End tag with incorrect name in RCDATA or CDATA",
|
||||
"contentModelFlags":["RCDATA", "CDATA"],
|
||||
"lastStartTag":"baz",
|
||||
"input":"</foo>bar</baz>",
|
||||
"output":[["Character", "</foo>bar"], ["EndTag", "baz"]]},
|
||||
|
||||
{"description":"End tag with incorrect name in RCDATA or CDATA (starting like correct name)",
|
||||
"contentModelFlags":["RCDATA", "CDATA"],
|
||||
"lastStartTag":"baz",
|
||||
"input":"</foo>bar</bazaar>",
|
||||
"output":[["Character", "</foo>bar</bazaar>"]]},
|
||||
|
||||
{"description":"End tag closing RCDATA or CDATA, switching back to PCDATA",
|
||||
"contentModelFlags":["RCDATA", "CDATA"],
|
||||
"lastStartTag":"bar",
|
||||
"input":"foo</bar></baz>",
|
||||
"output":[["Character", "foo"], ["EndTag", "bar"], ["EndTag", "baz"]]},
|
||||
|
||||
{"description":"CDATA w/ something looking like an entity",
|
||||
"contentModelFlags":["CDATA"],
|
||||
"input":"&foo;",
|
||||
"output":[["Character", "&foo;"]]},
|
||||
|
||||
{"description":"RCDATA w/ an entity",
|
||||
"contentModelFlags":["RCDATA"],
|
||||
"input":"<",
|
||||
"output":[["Character", "<"]]}
|
||||
|
||||
]}
|
2339
attic/vendor/plugins/HTML5lib/testdata/tokenizer/entities.test
vendored
Normal file
2339
attic/vendor/plugins/HTML5lib/testdata/tokenizer/entities.test
vendored
Normal file
File diff suppressed because it is too large
Load diff
21
attic/vendor/plugins/HTML5lib/testdata/tokenizer/escapeFlag.test
vendored
Normal file
21
attic/vendor/plugins/HTML5lib/testdata/tokenizer/escapeFlag.test
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
{"tests": [
|
||||
|
||||
{"description":"Commented close tag in [R]CDATA",
|
||||
"contentModelFlags":["RCDATA", "CDATA"],
|
||||
"lastStartTag":"bar",
|
||||
"input":"foo<!--</bar>--></bar>",
|
||||
"output":[["Character", "foo<!--</bar>-->"], ["EndTag", "bar"]]},
|
||||
|
||||
{"description":"Bogus comment in [R]CDATA",
|
||||
"contentModelFlags":["RCDATA", "CDATA"],
|
||||
"lastStartTag":"bar",
|
||||
"input":"foo<!-->baz</bar>",
|
||||
"output":[["Character", "foo<!-->baz"], ["EndTag", "bar"]]},
|
||||
|
||||
{"description":"End tag surrounded by bogus comment in [R]CDATA",
|
||||
"contentModelFlags":["RCDATA", "CDATA"],
|
||||
"lastStartTag":"bar",
|
||||
"input":"foo<!--></bar><!-->baz</bar>",
|
||||
"output":[["Character", "foo<!-->"], ["EndTag", "bar"], "ParseError", ["Comment", ""], ["Character", "baz"], ["EndTag", "bar"]]}
|
||||
|
||||
]}
|
172
attic/vendor/plugins/HTML5lib/testdata/tokenizer/test1.test
vendored
Normal file
172
attic/vendor/plugins/HTML5lib/testdata/tokenizer/test1.test
vendored
Normal file
|
@ -0,0 +1,172 @@
|
|||
{"tests": [
|
||||
|
||||
{"description":"Correct Doctype lowercase",
|
||||
"input":"<!DOCTYPE html>",
|
||||
"output":[["DOCTYPE", "html", null, null, true]]},
|
||||
|
||||
{"description":"Correct Doctype uppercase",
|
||||
"input":"<!DOCTYPE HTML>",
|
||||
"output":[["DOCTYPE", "HTML", null, null, true]]},
|
||||
|
||||
{"description":"Correct Doctype mixed case",
|
||||
"input":"<!DOCTYPE HtMl>",
|
||||
"output":[["DOCTYPE", "HtMl", null, null, true]]},
|
||||
|
||||
{"description":"Truncated doctype start",
|
||||
"input":"<!DOC>",
|
||||
"output":["ParseError", ["Comment", "DOC"]]},
|
||||
|
||||
{"description":"Doctype in error",
|
||||
"input":"<!DOCTYPE foo>",
|
||||
"output":[["DOCTYPE", "foo", null, null, true]]},
|
||||
|
||||
{"description":"Single Start Tag",
|
||||
"input":"<h>",
|
||||
"output":[["StartTag", "h", {}]]},
|
||||
|
||||
{"description":"Empty end tag",
|
||||
"input":"</>",
|
||||
"output":["ParseError"]},
|
||||
|
||||
{"description":"Empty start tag",
|
||||
"input":"<>",
|
||||
"output":["ParseError", ["Character", "<>"]]},
|
||||
|
||||
{"description":"Start Tag w/attribute",
|
||||
"input":"<h a='b'>",
|
||||
"output":[["StartTag", "h", {"a":"b"}]]},
|
||||
|
||||
{"description":"Start Tag w/attribute no quotes",
|
||||
"input":"<h a=b>",
|
||||
"output":[["StartTag", "h", {"a":"b"}]]},
|
||||
|
||||
{"description":"Start/End Tag",
|
||||
"input":"<h></h>",
|
||||
"output":[["StartTag", "h", {}], ["EndTag", "h"]]},
|
||||
|
||||
{"description":"Two unclosed start tags",
|
||||
"input":"<p>One<p>Two",
|
||||
"output":[["StartTag", "p", {}], ["Character", "One"], ["StartTag", "p", {}], ["Character", "Two"]]},
|
||||
|
||||
{"description":"End Tag w/attribute",
|
||||
"input":"<h></h a='b'>",
|
||||
"output":[["StartTag", "h", {}], "ParseError", ["EndTag", "h"]]},
|
||||
|
||||
{"description":"Multiple atts",
|
||||
"input":"<h a='b' c='d'>",
|
||||
"output":[["StartTag", "h", {"a":"b", "c":"d"}]]},
|
||||
|
||||
{"description":"Multiple atts no space",
|
||||
"input":"<h a='b'c='d'>",
|
||||
"output":[["StartTag", "h", {"a":"b", "c":"d"}]]},
|
||||
|
||||
{"description":"Repeated attr",
|
||||
"input":"<h a='b' a='d'>",
|
||||
"output":["ParseError", ["StartTag", "h", {"a":"b"}]]},
|
||||
|
||||
{"description":"Simple comment",
|
||||
"input":"<!--comment-->",
|
||||
"output":[["Comment", "comment"]]},
|
||||
|
||||
{"description":"Comment, Central dash no space",
|
||||
"input":"<!----->",
|
||||
"output":["ParseError", ["Comment", "-"]]},
|
||||
|
||||
{"description":"Comment, two central dashes",
|
||||
"input":"<!-- --comment -->",
|
||||
"output":["ParseError", ["Comment", " --comment "]]},
|
||||
|
||||
{"description":"Unfinished comment",
|
||||
"input":"<!--comment",
|
||||
"output":["ParseError", ["Comment", "comment"]]},
|
||||
|
||||
{"description":"Start of a comment",
|
||||
"input":"<!-",
|
||||
"output":["ParseError", ["Comment", "-"]]},
|
||||
|
||||
{"description":"Short comment",
|
||||
"input":"<!-->",
|
||||
"output":["ParseError", ["Comment", ""]]},
|
||||
|
||||
{"description":"Short comment two",
|
||||
"input":"<!--->",
|
||||
"output":["ParseError", ["Comment", ""]]},
|
||||
|
||||
{"description":"Short comment three",
|
||||
"input":"<!---->",
|
||||
"output":[["Comment", ""]]},
|
||||
|
||||
|
||||
{"description":"Ampersand EOF",
|
||||
"input":"&",
|
||||
"output":[["Character", "&"]]},
|
||||
|
||||
{"description":"Ampersand ampersand EOF",
|
||||
"input":"&&",
|
||||
"output":[["Character", "&&"]]},
|
||||
|
||||
{"description":"Ampersand space EOF",
|
||||
"input":"& ",
|
||||
"output":[["Character", "& "]]},
|
||||
|
||||
{"description":"Unfinished entity",
|
||||
"input":"&f",
|
||||
"output":["ParseError", ["Character", "&f"]]},
|
||||
|
||||
{"description":"Ampersand, number sign",
|
||||
"input":"&#",
|
||||
"output":["ParseError", ["Character", "&#"]]},
|
||||
|
||||
{"description":"Unfinished numeric entity",
|
||||
"input":"&#x",
|
||||
"output":["ParseError", ["Character", "&#x"]]},
|
||||
|
||||
{"description":"Entity with trailing semicolon (1)",
|
||||
"input":"I'm ¬it",
|
||||
"output":[["Character","I'm ¬it"]]},
|
||||
|
||||
{"description":"Entity with trailing semicolon (2)",
|
||||
"input":"I'm ∉",
|
||||
"output":[["Character","I'm ∉"]]},
|
||||
|
||||
{"description":"Entity without trailing semicolon (1)",
|
||||
"input":"I'm ¬it",
|
||||
"output":[["Character","I'm "], "ParseError", ["Character", "¬it"]]},
|
||||
|
||||
{"description":"Entity without trailing semicolon (2)",
|
||||
"input":"I'm ¬in",
|
||||
"output":[["Character","I'm "], "ParseError", ["Character", "¬in"]]},
|
||||
|
||||
{"description":"Partial entity match at end of file",
|
||||
"input":"I'm &no",
|
||||
"output":[["Character","I'm "], "ParseError", ["Character", "&no"]]},
|
||||
|
||||
{"description":"ASCII decimal entity",
|
||||
"input":"$",
|
||||
"output":[["Character","$"]]},
|
||||
|
||||
{"description":"ASCII hexadecimal entity",
|
||||
"input":"?",
|
||||
"output":[["Character","?"]]},
|
||||
|
||||
{"description":"Hexadecimal entity in attribute",
|
||||
"input":"<h a='?'></h>",
|
||||
"output":[["StartTag", "h", {"a":"?"}], ["EndTag", "h"]]},
|
||||
|
||||
{"description":"Entity in attribute without semicolon ending in x",
|
||||
"input":"<h a='¬x'>",
|
||||
"output":["ParseError", ["StartTag", "h", {"a":"¬x"}]]},
|
||||
|
||||
{"description":"Entity in attribute without semicolon ending in 1",
|
||||
"input":"<h a='¬1'>",
|
||||
"output":["ParseError", ["StartTag", "h", {"a":"¬1"}]]},
|
||||
|
||||
{"description":"Entity in attribute without semicolon ending in i",
|
||||
"input":"<h a='¬i'>",
|
||||
"output":["ParseError", ["StartTag", "h", {"a":"¬i"}]]},
|
||||
|
||||
{"description":"Entity in attribute without semicolon",
|
||||
"input":"<h a='©'>",
|
||||
"output":["ParseError", ["StartTag", "h", {"a":"©"}]]}
|
||||
|
||||
]}
|
129
attic/vendor/plugins/HTML5lib/testdata/tokenizer/test2.test
vendored
Normal file
129
attic/vendor/plugins/HTML5lib/testdata/tokenizer/test2.test
vendored
Normal file
|
@ -0,0 +1,129 @@
|
|||
{"tests": [
|
||||
|
||||
{"description":"DOCTYPE without name",
|
||||
"input":"<!DOCTYPE>",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "", null, null, false]]},
|
||||
|
||||
{"description":"DOCTYPE without space before name",
|
||||
"input":"<!DOCTYPEhtml>",
|
||||
"output":["ParseError", ["DOCTYPE", "html", null, null, true]]},
|
||||
|
||||
{"description":"Incorrect DOCTYPE without a space before name",
|
||||
"input":"<!DOCTYPEfoo>",
|
||||
"output":["ParseError", ["DOCTYPE", "foo", null, null, true]]},
|
||||
|
||||
{"description":"DOCTYPE with publicId",
|
||||
"input":"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML Transitional 4.01//EN\">",
|
||||
"output":[["DOCTYPE", "html", "-//W3C//DTD HTML Transitional 4.01//EN", null, true]]},
|
||||
|
||||
{"description":"DOCTYPE with EOF after PUBLIC",
|
||||
"input":"<!DOCTYPE html PUBLIC",
|
||||
"output":["ParseError", ["DOCTYPE", "html", null, null, false]]},
|
||||
|
||||
{"description":"DOCTYPE with EOF after PUBLIC '",
|
||||
"input":"<!DOCTYPE html PUBLIC '",
|
||||
"output":["ParseError", ["DOCTYPE", "html", "", null, false]]},
|
||||
|
||||
{"description":"DOCTYPE with EOF after PUBLIC 'x",
|
||||
"input":"<!DOCTYPE html PUBLIC 'x",
|
||||
"output":["ParseError", ["DOCTYPE", "html", "x", null, false]]},
|
||||
|
||||
{"description":"DOCTYPE with systemId",
|
||||
"input":"<!DOCTYPE html SYSTEM \"-//W3C//DTD HTML Transitional 4.01//EN\">",
|
||||
"output":[["DOCTYPE", "html", null, "-//W3C//DTD HTML Transitional 4.01//EN", true]]},
|
||||
|
||||
{"description":"DOCTYPE with publicId and systemId",
|
||||
"input":"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML Transitional 4.01//EN\" \"-//W3C//DTD HTML Transitional 4.01//EN\">",
|
||||
"output":[["DOCTYPE", "html", "-//W3C//DTD HTML Transitional 4.01//EN", "-//W3C//DTD HTML Transitional 4.01//EN", true]]},
|
||||
|
||||
{"description":"Incomplete doctype",
|
||||
"input":"<!DOCTYPE html ",
|
||||
"output":["ParseError", ["DOCTYPE", "html", null, null, false]]},
|
||||
|
||||
{"description":"Numeric entity representing the NUL character",
|
||||
"input":"�",
|
||||
"output":["ParseError", ["Character", "\uFFFD"]]},
|
||||
|
||||
{"description":"Hexadecimal entity representing the NUL character",
|
||||
"input":"�",
|
||||
"output":["ParseError", ["Character", "\uFFFD"]]},
|
||||
|
||||
{"description":"Numeric entity representing a codepoint after 1114111 (U+10FFFF)",
|
||||
"input":"�",
|
||||
"output":["ParseError", ["Character", "\uFFFD"]]},
|
||||
|
||||
{"description":"Hexadecimal entity representing a codepoint after 1114111 (U+10FFFF)",
|
||||
"input":"�",
|
||||
"output":["ParseError", ["Character", "\uFFFD"]]},
|
||||
|
||||
{"description":"Hexadecimal entity pair representing a surrogate pair",
|
||||
"input":"��",
|
||||
"output":["ParseError", ["Character", "\uFFFD"], "ParseError", ["Character", "\uFFFD"]]},
|
||||
|
||||
{"description":"Hexadecimal entity with mixed uppercase and lowercase",
|
||||
"input":"ꯍ",
|
||||
"output":[["Character", "\uABCD"]]},
|
||||
|
||||
{"description":"Entity without a name",
|
||||
"input":"&;",
|
||||
"output":["ParseError", ["Character", "&;"]]},
|
||||
|
||||
{"description":"Unescaped ampersand in attribute value",
|
||||
"input":"<h a='&'>",
|
||||
"output":["ParseError", ["StartTag", "h", { "a":"&" }]]},
|
||||
|
||||
{"description":"StartTag containing <",
|
||||
"input":"<a<b>",
|
||||
"output":[["StartTag", "a<b", { }]]},
|
||||
|
||||
{"description":"Non-void element containing trailing /",
|
||||
"input":"<h/>",
|
||||
"output":["ParseError", ["StartTag", "h", { }]]},
|
||||
|
||||
{"description":"Void element with permitted slash",
|
||||
"input":"<br/>",
|
||||
"output":[["StartTag", "br", { }]]},
|
||||
|
||||
{"description":"StartTag containing /",
|
||||
"input":"<h/a='b'>",
|
||||
"output":["ParseError", ["StartTag", "h", { "a":"b" }]]},
|
||||
|
||||
{"description":"Double-quoted attribute value",
|
||||
"input":"<h a=\"b\">",
|
||||
"output":[["StartTag", "h", { "a":"b" }]]},
|
||||
|
||||
{"description":"Unescaped </",
|
||||
"input":"</",
|
||||
"output":["ParseError", ["Character", "</"]]},
|
||||
|
||||
{"description":"Illegal end tag name",
|
||||
"input":"</1>",
|
||||
"output":["ParseError", ["Comment", "1"]]},
|
||||
|
||||
{"description":"Simili processing instruction",
|
||||
"input":"<?namespace>",
|
||||
"output":["ParseError", ["Comment", "?namespace"]]},
|
||||
|
||||
{"description":"A bogus comment stops at >, even if preceeded by two dashes",
|
||||
"input":"<?foo-->",
|
||||
"output":["ParseError", ["Comment", "?foo--"]]},
|
||||
|
||||
{"description":"Unescaped <",
|
||||
"input":"foo < bar",
|
||||
"output":[["Character", "foo "], "ParseError", ["Character", "< bar"]]},
|
||||
|
||||
{"description":"Null Byte Replacement",
|
||||
"input":"\u0000",
|
||||
"output":["ParseError", ["Character", "\ufffd"]]},
|
||||
|
||||
{"description":"Comment with dash",
|
||||
"input":"<!---x",
|
||||
"output":["ParseError", ["Comment", "-x"]]},
|
||||
|
||||
{"description":"Entity + newline",
|
||||
"input":"\nx\n>\n",
|
||||
"output":[["Character","\nx\n>\n"]]}
|
||||
|
||||
]}
|
||||
|
||||
|
367
attic/vendor/plugins/HTML5lib/testdata/tokenizer/test3.test
vendored
Normal file
367
attic/vendor/plugins/HTML5lib/testdata/tokenizer/test3.test
vendored
Normal file
|
@ -0,0 +1,367 @@
|
|||
{"tests": [
|
||||
|
||||
{"description":"<",
|
||||
"input":"<",
|
||||
"output":["ParseError", ["Character", "<"]]},
|
||||
|
||||
{"description":"<>",
|
||||
"input":"<>",
|
||||
"output":["ParseError", ["Character", "<>"]]},
|
||||
|
||||
{"description":"<!",
|
||||
"input":"<!",
|
||||
"output":["ParseError", ["Comment", ""]]},
|
||||
|
||||
{"description":"<!>",
|
||||
"input":"<!>",
|
||||
"output":["ParseError", ["Comment", ""]]},
|
||||
|
||||
{"description":"<!--",
|
||||
"input":"<!--",
|
||||
"output":["ParseError", ["Comment", ""]]},
|
||||
|
||||
{"description":"<!-->",
|
||||
"input":"<!-->",
|
||||
"output":["ParseError", ["Comment", ""]]},
|
||||
|
||||
{"description":"<!---",
|
||||
"input":"<!---",
|
||||
"output":["ParseError", ["Comment", ""]]},
|
||||
|
||||
{"description":"<!--->",
|
||||
"input":"<!--->",
|
||||
"output":["ParseError", ["Comment", ""]]},
|
||||
|
||||
{"description":"<!---->",
|
||||
"input":"<!---->",
|
||||
"output":[["Comment", ""]]},
|
||||
|
||||
{"description":"<!-----",
|
||||
"input":"<!-----",
|
||||
"output":["ParseError", "ParseError", ["Comment", "-"]]},
|
||||
|
||||
{"description":"<!----.",
|
||||
"input":"<!----.",
|
||||
"output":["ParseError", "ParseError", ["Comment", "--."]]},
|
||||
|
||||
{"description":"<!---?",
|
||||
"input":"<!---?",
|
||||
"output":["ParseError", ["Comment", "-?"]]},
|
||||
|
||||
{"description":"<!--?-",
|
||||
"input":"<!--?-",
|
||||
"output":["ParseError", ["Comment", "?"]]},
|
||||
|
||||
{"description":"<!--?--",
|
||||
"input":"<!--?--",
|
||||
"output":["ParseError", ["Comment", "?"]]},
|
||||
|
||||
{"description":"<!--?-.",
|
||||
"input":"<!--?-.",
|
||||
"output":["ParseError", ["Comment", "?-."]]},
|
||||
|
||||
{"description":"<!--?.",
|
||||
"input":"<!--?.",
|
||||
"output":["ParseError", ["Comment", "?."]]},
|
||||
|
||||
{"description":"<?>",
|
||||
"input":"<?>",
|
||||
"output":["ParseError", ["Comment", "?"]]},
|
||||
|
||||
{"description":"<??",
|
||||
"input":"<??",
|
||||
"output":["ParseError", ["Comment", "??"]]},
|
||||
|
||||
{"description":"</",
|
||||
"input":"</",
|
||||
"output":["ParseError", ["Character", "</"]]},
|
||||
|
||||
{"description":"</>",
|
||||
"input":"</>",
|
||||
"output":["ParseError"]},
|
||||
|
||||
{"description":"</?",
|
||||
"input":"</?",
|
||||
"output":["ParseError", ["Comment", "?"]]},
|
||||
|
||||
{"description":">",
|
||||
"input":">",
|
||||
"output":[["Character", ">"]]},
|
||||
|
||||
{"description":"-",
|
||||
"input":"-",
|
||||
"output":[["Character", "-"]]},
|
||||
|
||||
{"description":"?",
|
||||
"input":"?",
|
||||
"output":[["Character", "?"]]},
|
||||
|
||||
{"description":"&",
|
||||
"input":"&",
|
||||
"output":[["Character", "&"]]},
|
||||
|
||||
{"description":"&#",
|
||||
"input":"&#",
|
||||
"output":["ParseError", ["Character", "&#"]]},
|
||||
|
||||
{"description":"	",
|
||||
"input":"	",
|
||||
"output":["ParseError", ["Character", "\t"]]},
|
||||
|
||||
{"description":"<!doctype >",
|
||||
"input":"<!doctype >",
|
||||
"output":["ParseError", ["DOCTYPE", "", null, null, false]]},
|
||||
|
||||
{"description":"<!doctype ",
|
||||
"input":"<!doctype ",
|
||||
"output":["ParseError", ["DOCTYPE", "", null, null, false]]},
|
||||
|
||||
{"description":"<!doctype!>",
|
||||
"input":"<!doctype!>",
|
||||
"output":["ParseError", ["DOCTYPE", "!", null, null, true]]},
|
||||
|
||||
{"description":"<!doctype! >",
|
||||
"input":"<!doctype! >",
|
||||
"output":["ParseError", ["DOCTYPE", "!", null, null, true]]},
|
||||
|
||||
{"description":"<!doctype! ",
|
||||
"input":"<!doctype! ",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "!", null, null, false]]},
|
||||
|
||||
{"description":"<!doctype! ?>",
|
||||
"input":"<!doctype! ?>",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "!", null, null, false]]},
|
||||
|
||||
{"description":"<!doctype! ??",
|
||||
"input":"<!doctype! ??",
|
||||
"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "!", null, null, false]]},
|
||||
|
||||
{"description":"<!doctype!?",
|
||||
"input":"<!doctype!?",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "!?", null, null, false]]},
|
||||
|
||||
{"description":"<!doctype! public>",
|
||||
"input":"<!doctype! public>",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "!", null, null, false]]},
|
||||
|
||||
{"description":"<!doctype! public ",
|
||||
"input":"<!doctype! public ",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "!", null, null, false]]},
|
||||
|
||||
{"description":"<!doctype! public?",
|
||||
"input":"<!doctype! public?",
|
||||
"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "!", null, null, false]]},
|
||||
|
||||
{"description":"<!doctype! public''",
|
||||
"input":"<!doctype! public''",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "!", "", null, false]]},
|
||||
|
||||
{"description":"<!doctype! public'(",
|
||||
"input":"<!doctype! public'(",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "!", "(", null, false]]},
|
||||
|
||||
{"description":"<!doctype! public\"\">",
|
||||
"input":"<!doctype! public\"\">",
|
||||
"output":["ParseError", ["DOCTYPE", "!", "", null, true]]},
|
||||
|
||||
{"description":"<!doctype! public\"\" ",
|
||||
"input":"<!doctype! public\"\" ",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "!", "", null, false]]},
|
||||
|
||||
{"description":"<!doctype! public\"\"?",
|
||||
"input":"<!doctype! public\"\"?",
|
||||
"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "!", "", null, false]]},
|
||||
|
||||
{"description":"<!doctype! public\"\"'",
|
||||
"input":"<!doctype! public\"\"'",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "!", "", "", false]]},
|
||||
|
||||
{"description":"<!doctype! public\"\"\"",
|
||||
"input":"<!doctype! public\"\"\"",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "!", "", "", false]]},
|
||||
|
||||
{"description":"<!doctype! public\"#",
|
||||
"input":"<!doctype! public\"#",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "!", "#", null, false]]},
|
||||
|
||||
{"description":"<!doctype! system>",
|
||||
"input":"<!doctype! system>",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "!", null, null, false]]},
|
||||
|
||||
{"description":"<!doctype! system ",
|
||||
"input":"<!doctype! system ",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "!", null, null, false]]},
|
||||
|
||||
{"description":"<!doctype! system?",
|
||||
"input":"<!doctype! system?",
|
||||
"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "!", null, null, false]]},
|
||||
|
||||
{"description":"<!doctype! system''",
|
||||
"input":"<!doctype! system''",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "!", null, "", false]]},
|
||||
|
||||
{"description":"<!doctype! system'(",
|
||||
"input":"<!doctype! system'(",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "!", null, "(", false]]},
|
||||
|
||||
{"description":"<!doctype! system\"\">",
|
||||
"input":"<!doctype! system\"\">",
|
||||
"output":["ParseError", ["DOCTYPE", "!", null, "", true]]},
|
||||
|
||||
{"description":"<!doctype! system\"\" ",
|
||||
"input":"<!doctype! system\"\" ",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "!", null, "", false]]},
|
||||
|
||||
{"description":"<!doctype! system\"\"?",
|
||||
"input":"<!doctype! system\"\"?",
|
||||
"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "!", null, "", false]]},
|
||||
|
||||
{"description":"<!doctype! system\"#",
|
||||
"input":"<!doctype! system\"#",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "!", null, "#", false]]},
|
||||
|
||||
{"description":"</z",
|
||||
"input":"</z",
|
||||
"output":["ParseError", ["EndTag", "z"]]},
|
||||
|
||||
{"description":"<z>",
|
||||
"input":"<z>",
|
||||
"output":[["StartTag", "z", {}]]},
|
||||
|
||||
{"description":"<z ",
|
||||
"input":"<z ",
|
||||
"output":["ParseError", ["StartTag", "z", {}]]},
|
||||
|
||||
{"description":"<z/>",
|
||||
"input":"<z/>",
|
||||
"output":["ParseError", ["StartTag", "z", {}]]},
|
||||
|
||||
{"description":"<z/ ",
|
||||
"input":"<z/ ",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {}]]},
|
||||
|
||||
{"description":"<z//",
|
||||
"input":"<z//",
|
||||
"output":["ParseError", "ParseError", "ParseError", ["StartTag", "z", {}]]},
|
||||
|
||||
{"description":"<z",
|
||||
"input":"<z",
|
||||
"output":["ParseError", ["StartTag", "z", {}]]},
|
||||
|
||||
{"description":"</z",
|
||||
"input":"</z",
|
||||
"output":["ParseError", ["EndTag", "z"]]},
|
||||
|
||||
{"description":"<z0",
|
||||
"input":"<z0",
|
||||
"output":["ParseError", ["StartTag", "z0", {}]]},
|
||||
|
||||
{"description":"<z/0=>",
|
||||
"input":"<z/0=>",
|
||||
"output":["ParseError", ["StartTag", "z", {"0": ""}]]},
|
||||
|
||||
{"description":"<z/0= ",
|
||||
"input":"<z/0= ",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {"0": ""}]]},
|
||||
|
||||
{"description":"<z/0=?>",
|
||||
"input":"<z/0=?>",
|
||||
"output":["ParseError", ["StartTag", "z", {"0": "?"}]]},
|
||||
|
||||
{"description":"<z/0=? ",
|
||||
"input":"<z/0=? ",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {"0": "?"}]]},
|
||||
|
||||
{"description":"<z/0=??",
|
||||
"input":"<z/0=??",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {"0": "??"}]]},
|
||||
|
||||
{"description":"<z/0=''",
|
||||
"input":"<z/0=''",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {"0": ""}]]},
|
||||
|
||||
{"description":"<z/0='&",
|
||||
"input":"<z/0='&",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {"0": "&"}]]},
|
||||
|
||||
{"description":"<z/0='%",
|
||||
"input":"<z/0='%",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {"0": "%"}]]},
|
||||
|
||||
{"description":"<z/0=\"'",
|
||||
"input":"<z/0=\"'",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {"0": "'"}]]},
|
||||
|
||||
{"description":"<z/0=\"\"",
|
||||
"input":"<z/0=\"\"",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {"0": ""}]]},
|
||||
|
||||
{"description":"<z/0=\"&",
|
||||
"input":"<z/0=\"&",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {"0": "&"}]]},
|
||||
|
||||
{"description":"<z/0=&",
|
||||
"input":"<z/0=&",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {"0": "&"}]]},
|
||||
|
||||
{"description":"<z/0>",
|
||||
"input":"<z/0>",
|
||||
"output":["ParseError", ["StartTag", "z", {"0": ""}]]},
|
||||
|
||||
{"description":"<z/0 =",
|
||||
"input":"<z/0 =",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {"0": ""}]]},
|
||||
|
||||
{"description":"<z/0 >",
|
||||
"input":"<z/0 >",
|
||||
"output":["ParseError", ["StartTag", "z", {"0": ""}]]},
|
||||
|
||||
{"description":"<z/0 ",
|
||||
"input":"<z/0 ",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {"0": ""}]]},
|
||||
|
||||
{"description":"<z/0 /",
|
||||
"input":"<z/0 /",
|
||||
"output":["ParseError", "ParseError", "ParseError", ["StartTag", "z", {"0": ""}]]},
|
||||
|
||||
{"description":"<z/0/",
|
||||
"input":"<z/0/",
|
||||
"output":["ParseError", "ParseError", "ParseError", ["StartTag", "z", {"0": ""}]]},
|
||||
|
||||
{"description":"<z/00",
|
||||
"input":"<z/00",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {"00": ""}]]},
|
||||
|
||||
{"description":"<z/0 0",
|
||||
"input":"<z/0 0",
|
||||
"output":["ParseError", "ParseError", "ParseError", ["StartTag", "z", {"0": ""}]]},
|
||||
|
||||
{"description":"<z/0='	",
|
||||
"input":"<z/0='	",
|
||||
"output":["ParseError", "ParseError", "ParseError", ["StartTag", "z", {"0": "\t"}]]},
|
||||
|
||||
{"description":"<z/0=\"	",
|
||||
"input":"<z/0=\"	",
|
||||
"output":["ParseError", "ParseError", "ParseError", ["StartTag", "z", {"0": "\t"}]]},
|
||||
|
||||
{"description":"<z/0=	",
|
||||
"input":"<z/0=	",
|
||||
"output":["ParseError", "ParseError", "ParseError", ["StartTag", "z", {"0": "\t"}]]},
|
||||
|
||||
{"description":"<z/0z",
|
||||
"input":"<z/0z",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {"0z": ""}]]},
|
||||
|
||||
{"description":"<z/0 z",
|
||||
"input":"<z/0 z",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {"0": "", "z": ""}]]},
|
||||
|
||||
{"description":"<zz",
|
||||
"input":"<zz",
|
||||
"output":["ParseError", ["StartTag", "zz", {}]]},
|
||||
|
||||
{"description":"<z/z",
|
||||
"input":"<z/z",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {"z": ""}]]}
|
||||
|
||||
]}
|
198
attic/vendor/plugins/HTML5lib/testdata/tokenizer/test4.test
vendored
Normal file
198
attic/vendor/plugins/HTML5lib/testdata/tokenizer/test4.test
vendored
Normal file
|
@ -0,0 +1,198 @@
|
|||
{"tests": [
|
||||
|
||||
{"description":"< in attribute name",
|
||||
"input":"<z/0 <",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "z", {"0": "", "<": ""}]]},
|
||||
|
||||
{"description":"< in attribute value",
|
||||
"input":"<z x=<",
|
||||
"output":["ParseError", ["StartTag", "z", {"x": "<"}]]},
|
||||
|
||||
{"description":"CR EOF after doctype name",
|
||||
"input":"<!doctype html \r",
|
||||
"output":["ParseError", ["DOCTYPE", "html", null, null, false]]},
|
||||
|
||||
{"description":"CR EOF in tag name",
|
||||
"input":"<z\r",
|
||||
"output":["ParseError", ["StartTag", "z", {}]]},
|
||||
|
||||
{"description":"Zero hex numeric entity",
|
||||
"input":"�",
|
||||
"output":["ParseError", "ParseError", ["Character", "\uFFFD"]]},
|
||||
|
||||
{"description":"Zero decimal numeric entity",
|
||||
"input":"�",
|
||||
"output":["ParseError", "ParseError", ["Character", "\uFFFD"]]},
|
||||
|
||||
{"description":"Zero-prefixed hex numeric entity",
|
||||
"input":"A",
|
||||
"output":[["Character", "A"]]},
|
||||
|
||||
{"description":"Zero-prefixed decimal numeric entity",
|
||||
"input":"A",
|
||||
"output":[["Character", "A"]]},
|
||||
|
||||
{"description":"Empty hex numeric entities",
|
||||
"input":"&#x &#X ",
|
||||
"output":["ParseError", ["Character", "&#x "], "ParseError", ["Character", "&#X "]]},
|
||||
|
||||
{"description":"Empty decimal numeric entities",
|
||||
"input":"&# &#; ",
|
||||
"output":["ParseError", ["Character", "&# "], "ParseError", ["Character", "&#; "]]},
|
||||
|
||||
{"description":"Non-BMP numeric entity",
|
||||
"input":"𐀀",
|
||||
"output":[["Character", "\uD800\uDC00"]]},
|
||||
|
||||
{"description":"Maximum non-BMP numeric entity",
|
||||
"input":"",
|
||||
"output":[["Character", "\uDBFF\uDFFF"]]},
|
||||
|
||||
{"description":"Above maximum numeric entity",
|
||||
"input":"�",
|
||||
"output":["ParseError", ["Character", "\uFFFD"]]},
|
||||
|
||||
{"description":"32-bit hex numeric entity",
|
||||
"input":"�",
|
||||
"output":["ParseError", ["Character", "\uFFFD"]]},
|
||||
|
||||
{"description":"33-bit hex numeric entity",
|
||||
"input":"�",
|
||||
"output":["ParseError", ["Character", "\uFFFD"]]},
|
||||
|
||||
{"description":"33-bit decimal numeric entity",
|
||||
"input":"�",
|
||||
"output":["ParseError", ["Character", "\uFFFD"]]},
|
||||
|
||||
{"description":"65-bit hex numeric entity",
|
||||
"input":"�",
|
||||
"output":["ParseError", ["Character", "\uFFFD"]]},
|
||||
|
||||
{"description":"65-bit decimal numeric entity",
|
||||
"input":"�",
|
||||
"output":["ParseError", ["Character", "\uFFFD"]]},
|
||||
|
||||
{"description":"Surrogate code point edge cases",
|
||||
"input":"퟿����",
|
||||
"output":[["Character", "\uD7FF"], "ParseError", ["Character", "\uFFFD"], "ParseError", ["Character", "\uFFFD"], "ParseError", ["Character", "\uFFFD"], "ParseError", ["Character", "\uFFFD\uE000"]]},
|
||||
|
||||
{"description":"Uppercase start tag name",
|
||||
"input":"<X>",
|
||||
"output":[["StartTag", "x", {}]]},
|
||||
|
||||
{"description":"Uppercase end tag name",
|
||||
"input":"</X>",
|
||||
"output":[["EndTag", "x"]]},
|
||||
|
||||
{"description":"Uppercase attribute name",
|
||||
"input":"<x X>",
|
||||
"output":[["StartTag", "x", { "x":"" }]]},
|
||||
|
||||
{"description":"Tag/attribute name case edge values",
|
||||
"input":"<x@AZ[`az{ @AZ[`az{>",
|
||||
"output":[["StartTag", "x@az[`az{", { "@az[`az{":"" }]]},
|
||||
|
||||
{"description":"Duplicate different-case attributes",
|
||||
"input":"<x x=1 x=2 X=3>",
|
||||
"output":["ParseError", "ParseError", ["StartTag", "x", { "x":"1" }]]},
|
||||
|
||||
{"description":"Uppercase close tag attributes",
|
||||
"input":"</x X>",
|
||||
"output":["ParseError", ["EndTag", "x"]]},
|
||||
|
||||
{"description":"Duplicate close tag attributes",
|
||||
"input":"</x x x>",
|
||||
"output":["ParseError", "ParseError", ["EndTag", "x"]]},
|
||||
|
||||
{"description":"Permitted slash",
|
||||
"input":"<br/>",
|
||||
"output":[["StartTag", "br", {}]]},
|
||||
|
||||
{"description":"Non-permitted slash",
|
||||
"input":"<xr/>",
|
||||
"output":["ParseError", ["StartTag", "xr", {}]]},
|
||||
|
||||
{"description":"Permitted slash but in close tag",
|
||||
"input":"</br/>",
|
||||
"output":["ParseError", ["EndTag", "br"]]},
|
||||
|
||||
{"description":"Doctype public case-sensitivity (1)",
|
||||
"input":"<!DoCtYpE HtMl PuBlIc \"AbC\" \"XyZ\">",
|
||||
"output":[["DOCTYPE", "HtMl", "AbC", "XyZ", true]]},
|
||||
|
||||
{"description":"Doctype public case-sensitivity (2)",
|
||||
"input":"<!dOcTyPe hTmL pUbLiC \"aBc\" \"xYz\">",
|
||||
"output":[["DOCTYPE", "hTmL", "aBc", "xYz", true]]},
|
||||
|
||||
{"description":"Doctype system case-sensitivity (1)",
|
||||
"input":"<!DoCtYpE HtMl SyStEm \"XyZ\">",
|
||||
"output":[["DOCTYPE", "HtMl", null, "XyZ", true]]},
|
||||
|
||||
{"description":"Doctype system case-sensitivity (2)",
|
||||
"input":"<!dOcTyPe hTmL sYsTeM \"xYz\">",
|
||||
"output":[["DOCTYPE", "hTmL", null, "xYz", true]]},
|
||||
|
||||
{"description":"U+0000 in lookahead region after non-matching character",
|
||||
"input":"<!doc>\u0000",
|
||||
"output":["ParseError", ["Comment", "doc"], "ParseError", ["Character", "\uFFFD"]],
|
||||
"ignoreErrorOrder":true},
|
||||
|
||||
{"description":"U+0000 in lookahead region",
|
||||
"input":"<!doc\u0000",
|
||||
"output":["ParseError", "ParseError", ["Comment", "doc\uFFFD"]],
|
||||
"ignoreErrorOrder":true},
|
||||
|
||||
{"description":"CR followed by U+0000",
|
||||
"input":"\r\u0000",
|
||||
"output":["ParseError", ["Character", "\n\uFFFD"]],
|
||||
"ignoreErrorOrder":true},
|
||||
|
||||
{"description":"CR followed by non-LF",
|
||||
"input":"\r?",
|
||||
"output":[["Character", "\n?"]]},
|
||||
|
||||
{"description":"CR at EOF",
|
||||
"input":"\r",
|
||||
"output":[["Character", "\n"]]},
|
||||
|
||||
{"description":"LF at EOF",
|
||||
"input":"\n",
|
||||
"output":[["Character", "\n"]]},
|
||||
|
||||
{"description":"CR LF",
|
||||
"input":"\r\n",
|
||||
"output":[["Character", "\n"]]},
|
||||
|
||||
{"description":"CR CR",
|
||||
"input":"\r\r",
|
||||
"output":[["Character", "\n\n"]]},
|
||||
|
||||
{"description":"LF LF",
|
||||
"input":"\n\n",
|
||||
"output":[["Character", "\n\n"]]},
|
||||
|
||||
{"description":"LF CR",
|
||||
"input":"\n\r",
|
||||
"output":[["Character", "\n\n"]]},
|
||||
|
||||
{"description":"text CR CR CR text",
|
||||
"input":"text\r\r\rtext",
|
||||
"output":[["Character", "text\n\n\ntext"]]},
|
||||
|
||||
{"description":"Doctype publik",
|
||||
"input":"<!DOCTYPE html PUBLIK \"AbC\" \"XyZ\">",
|
||||
"output":["ParseError", ["DOCTYPE", "html", null, null, false]]},
|
||||
|
||||
{"description":"Doctype publi",
|
||||
"input":"<!DOCTYPE html PUBLI",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "html", null, null, false]]},
|
||||
|
||||
{"description":"Doctype sistem",
|
||||
"input":"<!DOCTYPE html SISTEM \"AbC\">",
|
||||
"output":["ParseError", ["DOCTYPE", "html", null, null, false]]},
|
||||
|
||||
{"description":"Doctype sys",
|
||||
"input":"<!DOCTYPE html SYS",
|
||||
"output":["ParseError", "ParseError", ["DOCTYPE", "html", null, null, false]]}
|
||||
|
||||
]}
|
1950
attic/vendor/plugins/HTML5lib/testdata/tree-construction/tests1.dat
vendored
Normal file
1950
attic/vendor/plugins/HTML5lib/testdata/tree-construction/tests1.dat
vendored
Normal file
File diff suppressed because it is too large
Load diff
773
attic/vendor/plugins/HTML5lib/testdata/tree-construction/tests2.dat
vendored
Executable file
773
attic/vendor/plugins/HTML5lib/testdata/tree-construction/tests2.dat
vendored
Executable file
|
@ -0,0 +1,773 @@
|
|||
#data
|
||||
<!DOCTYPE HTML>Test
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "Test"
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <textarea>
|
||||
| "test</div>test"
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
| <tbody>
|
||||
| <tr>
|
||||
| <td>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
| <tbody>
|
||||
| <tr>
|
||||
| <td>
|
||||
| "test"
|
||||
|
||||
#data
|
||||
<frame>test
|
||||
#errors
|
||||
Line: 1 Col: 7 Unexpected start tag (frame). Expected DOCTYPE.
|
||||
Line: 1 Col: 7 Unexpected start tag frame. Ignored.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "test"
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <frameset>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <frameset>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <font>
|
||||
| <p>
|
||||
| <font>
|
||||
| <b>
|
||||
| "test"
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><dt><div><dd>
|
||||
#errors
|
||||
Line: 1 Col: 28 Missing end tag (div, dt).
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <dt>
|
||||
| <div>
|
||||
| <dd>
|
||||
|
||||
#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).
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <script>
|
||||
| "</x"
|
||||
| <body>
|
||||
|
||||
#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: 21 Unexpected non-space characters in table context caused voodoo mode.
|
||||
Line: 1 Col: 22 Unexpected non-space characters in table context caused voodoo mode.
|
||||
Line: 1 Col: 22 Expected closing tag. Unexpected end of file.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <plaintext>
|
||||
| "<td>"
|
||||
| <table>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <plaintext>
|
||||
| "</plaintext>"
|
||||
|
||||
#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 Expected closing tag. Unexpected end of file.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "TEST"
|
||||
| <table>
|
||||
| <tbody>
|
||||
| <tr>
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><body t1=1><body t2=2><body t3=3 t4=4>
|
||||
#errors
|
||||
Line: 1 Col: 37 Unexpected start tag (body).
|
||||
Line: 1 Col: 53 Unexpected start tag (body).
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| t1="1"
|
||||
| t2="2"
|
||||
| t3="3"
|
||||
| t4="4"
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "X"
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <!DOCTYPE html>
|
||||
| <html>
|
||||
| <head>
|
||||
| <script>
|
||||
| type="text/x-foobar;baz"
|
||||
| "X"
|
||||
| <body>
|
||||
|
||||
#data
|
||||
&
|
||||
#errors
|
||||
Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "&"
|
||||
|
||||
#data
|
||||
&#
|
||||
#errors
|
||||
Line: 1 Col: 1 Numeric entity expected. Got end of file instead.
|
||||
Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "&#"
|
||||
|
||||
#data
|
||||
&#X
|
||||
#errors
|
||||
Line: 1 Col: 3 Numeric entity expected but none found.
|
||||
Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "&#X"
|
||||
|
||||
#data
|
||||
&#x
|
||||
#errors
|
||||
Line: 1 Col: 3 Numeric entity expected but none found.
|
||||
Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "&#x"
|
||||
|
||||
#data
|
||||
-
|
||||
#errors
|
||||
Line: 1 Col: 4 Numeric entity didn't end with ';'.
|
||||
Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "-"
|
||||
|
||||
#data
|
||||
&x-test
|
||||
#errors
|
||||
Line: 1 Col: 1 Named entity expected. Got none.
|
||||
Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "&x-test"
|
||||
|
||||
#data
|
||||
<!doctypehtml><p><li>
|
||||
#errors
|
||||
Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
|
||||
#document
|
||||
| <!DOCTYPE html>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <p>
|
||||
| <li>
|
||||
|
||||
#data
|
||||
<!doctypeHTML><p><dt>
|
||||
#errors
|
||||
Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <p>
|
||||
| <dt>
|
||||
|
||||
#data
|
||||
<!doctypehtmL><p><dd>
|
||||
#errors
|
||||
Line: 1 Col: 9 No space after literal string 'DOCTYPE'.
|
||||
#document
|
||||
| <!DOCTYPE htmL>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <p>
|
||||
| <dd>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <!DOCTYPE html>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <p>
|
||||
| <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
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <p>
|
||||
| "X"
|
||||
|
||||
#data
|
||||
&
|
||||
#errors
|
||||
Line: 1 Col: 4 Named entity didn't end with ';'.
|
||||
Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "&"
|
||||
|
||||
#data
|
||||
&AMp;
|
||||
#errors
|
||||
Line: 1 Col: 1 Named entity expected. Got none.
|
||||
Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "&AMp;"
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY>
|
||||
#errors
|
||||
Line: 1 Col: 110 Expected closing tag. Unexpected end of file.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <thisisasillytestelementnametomakesurecrazytagnamesareparsedcorrectly>
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML>X</body>X
|
||||
#errors
|
||||
Line: 1 Col: 24 Unexpected non-space characters in the after body phase.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "XX"
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><!-- X
|
||||
#errors
|
||||
Line: 1 Col: 21 Unexpected end of file in comment.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <!-- X -->
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
| <caption>
|
||||
| "test TEST"
|
||||
| <tbody>
|
||||
| <tr>
|
||||
| <td>
|
||||
| "test"
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><select><option><optgroup>
|
||||
#errors
|
||||
Line: 1 Col: 41 Expected closing tag. Unexpected end of file.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <select>
|
||||
| <option>
|
||||
| <optgroup>
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><select><optgroup><option></optgroup><option><select><option>
|
||||
#errors
|
||||
Line: 1 Col: 68 Unexpected select start tag in the select phase implies select start tag.
|
||||
Line: 1 Col: 76 Unexpected start tag option. Ignored.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <select>
|
||||
| <optgroup>
|
||||
| <option>
|
||||
| <option>
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><select><optgroup><option><optgroup>
|
||||
#errors
|
||||
Line: 1 Col: 51 Expected closing tag. Unexpected end of file.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <select>
|
||||
| <optgroup>
|
||||
| <option>
|
||||
| <optgroup>
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><font><input><input></font>
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <font>
|
||||
| <input>
|
||||
| <input>
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><!-- XXX - XXX -->
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <!-- XXX - XXX -->
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><!-- XXX - XXX
|
||||
#errors
|
||||
Line: 1 Col: 29 Unexpected end of file in comment (-)
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <!-- XXX - XXX -->
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><!-- XXX - XXX - XXX -->
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <!-- XXX - XXX - XXX -->
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<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!
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <form>
|
||||
| <hr>
|
||||
| <p>
|
||||
| <label>
|
||||
| "This is a searchable index. Insert your search keywords here: "
|
||||
| <input>
|
||||
| name="isindex"
|
||||
| test="x"
|
||||
| <hr>
|
||||
|
||||
#data
|
||||
test
|
||||
test
|
||||
#errors
|
||||
Line: 2 Col: 4 Unexpected non-space characters. Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "test
|
||||
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
|
||||
Line: 1 Col: 28 Unexpected start tag (title) that can be in head. Moved.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <title>
|
||||
| "test</body>"
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><body><title>X</title><meta name=z><link rel=foo><style>
|
||||
x { content:"</style" } </style>
|
||||
#errors
|
||||
Line: 1 Col: 28 Unexpected start tag (title) that can be in head. Moved.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <title>
|
||||
| "X"
|
||||
| <body>
|
||||
| <meta>
|
||||
| name="z"
|
||||
| <link>
|
||||
| rel="foo"
|
||||
| <style>
|
||||
| "
|
||||
x { content:"</style" } "
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><select><optgroup></optgroup></select>
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <select>
|
||||
| <optgroup>
|
||||
|
||||
#data
|
||||
|
||||
|
||||
#errors
|
||||
Line: 2 Col: 1 Unexpected End of file. Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML> <html>
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><script>
|
||||
</script> <title>x</title> </head>
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <script>
|
||||
| "
|
||||
"
|
||||
| " "
|
||||
| <title>
|
||||
| "x"
|
||||
| " "
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><html><body><html id=x>
|
||||
#errors
|
||||
Line: 1 Col: 38 html needs to be the first start tag.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| id="x"
|
||||
| <head>
|
||||
| <body>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| id="x"
|
||||
| <head>
|
||||
| <body>
|
||||
| "X"
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><head><html id=x>
|
||||
#errors
|
||||
Line: 1 Col: 32 html needs to be the first start tag.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| id="x"
|
||||
| <head>
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML>X</html>X
|
||||
#errors
|
||||
Line: 1 Col: 24 Unexpected non-space characters. Expected end of file.
|
||||
Line: 1 Col: 24 Unexpected non-space characters in the after body phase.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "XX"
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML>X</html>
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "X "
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML>X</html><p>X
|
||||
#errors
|
||||
Line: 1 Col: 26 Unexpected start tag (p). Expected end of file.
|
||||
Line: 1 Col: 26 Unexpected start tag token (p) in the after body phase.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "X"
|
||||
| <p>
|
||||
| "X"
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML>X<p/x/y/z>
|
||||
#errors
|
||||
Line: 1 Col: 19 Solidus (/) incorrectly placed in tag.
|
||||
Line: 1 Col: 21 Solidus (/) incorrectly placed in tag.
|
||||
Line: 1 Col: 23 Solidus (/) incorrectly placed in tag.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "X"
|
||||
| <p>
|
||||
| x=""
|
||||
| y=""
|
||||
| z=""
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><!--x--
|
||||
#errors
|
||||
Line: 1 Col: 22 Unexpected end of file in comment (--).
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <!-- x -->
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<!DOCTYPE HTML><table><tr><td></p></table>
|
||||
#errors
|
||||
Line: 1 Col: 34 Unexpected end tag (p). Ignored.
|
||||
#document
|
||||
| <!DOCTYPE HTML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
| <tbody>
|
||||
| <tr>
|
||||
| <td>
|
||||
| <p>
|
270
attic/vendor/plugins/HTML5lib/testdata/tree-construction/tests3.dat
vendored
Normal file
270
attic/vendor/plugins/HTML5lib/testdata/tree-construction/tests3.dat
vendored
Normal file
|
@ -0,0 +1,270 @@
|
|||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <style>
|
||||
| <body>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <script>
|
||||
| <body>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <style>
|
||||
| <script>
|
||||
| <!-- -->
|
||||
| <!-- -->
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<head></head><!-- -->x<style></style><!-- --><script></script>
|
||||
#errors
|
||||
Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <!-- -->
|
||||
| <body>
|
||||
| "x"
|
||||
| <style>
|
||||
| <!-- -->
|
||||
| <script>
|
||||
|
||||
#data
|
||||
<!DOCTYPE htML><html><head></head><body><pre>
|
||||
</pre></body></html>
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE htML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <pre>
|
||||
|
||||
#data
|
||||
<!DOCTYPE htML><html><head></head><body><pre>
|
||||
foo</pre></body></html>
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE htML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <pre>
|
||||
| "foo"
|
||||
|
||||
#data
|
||||
<!DOCTYPE htML><html><head></head><body><pre>
|
||||
|
||||
foo</pre></body></html>
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE htML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <pre>
|
||||
| "
|
||||
foo"
|
||||
|
||||
#data
|
||||
<!DOCTYPE htML><html><head></head><body><pre>
|
||||
foo
|
||||
</pre></body></html>
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE htML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <pre>
|
||||
| "foo
|
||||
"
|
||||
|
||||
#data
|
||||
<!DOCTYPE htML><html><head></head><body><pre>x</pre><span>
|
||||
</span></body></html>
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE htML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <pre>
|
||||
| "x"
|
||||
| <span>
|
||||
| "
|
||||
"
|
||||
|
||||
#data
|
||||
<!DOCTYPE htML><html><head></head><body><pre>x
|
||||
y</pre></body></html>
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE htML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <pre>
|
||||
| "x
|
||||
y"
|
||||
|
||||
#data
|
||||
<!DOCTYPE htML><html><head></head><body><pre>x<div>
|
||||
y</pre></body></html>
|
||||
#errors
|
||||
Line: 2 Col: 7 End tag (pre) seen too early. Expected other end tag.
|
||||
#document
|
||||
| <!DOCTYPE htML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <pre>
|
||||
| "x"
|
||||
| <div>
|
||||
| "
|
||||
y"
|
||||
|
||||
#data
|
||||
<!DOCTYPE htML><HTML><META><HEAD></HEAD></HTML>
|
||||
#errors
|
||||
Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored.
|
||||
#document
|
||||
| <!DOCTYPE htML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <meta>
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<!DOCTYPE htML><HTML><HEAD><head></HEAD></HTML>
|
||||
#errors
|
||||
Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored.
|
||||
#document
|
||||
| <!DOCTYPE htML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <textarea>
|
||||
| "foo<span>bar</span><i>baz"
|
||||
|
||||
#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).
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <title>
|
||||
| "foo<span>bar</em><i>baz"
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<!DOCTYPE htML><textarea>
|
||||
</textarea>
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE htML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <textarea>
|
||||
|
||||
#data
|
||||
<!DOCTYPE htML><textarea>
|
||||
foo</textarea>
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE htML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <textarea>
|
||||
| "foo"
|
||||
|
||||
#data
|
||||
<!DOCTYPE htML><textarea>
|
||||
|
||||
foo</textarea>
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE htML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <textarea>
|
||||
| "
|
||||
foo"
|
||||
|
||||
#data
|
||||
<!DOCTYPE htML><html><head></head><body><ul><li><div><p><li></ul></body></html>
|
||||
#errors
|
||||
Line: 1 Col: 60 Missing end tag (div, li).
|
||||
#document
|
||||
| <!DOCTYPE htML>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <ul>
|
||||
| <li>
|
||||
| <div>
|
||||
| <p>
|
||||
| <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.
|
||||
#document
|
||||
| <!DOCTYPE html>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <nobr>
|
||||
| <nobr>
|
||||
| <nobr>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <!DOCTYPE html>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <nobr>
|
||||
| <nobr>
|
||||
| <nobr>
|
60
attic/vendor/plugins/HTML5lib/testdata/tree-construction/tests4.dat
vendored
Normal file
60
attic/vendor/plugins/HTML5lib/testdata/tree-construction/tests4.dat
vendored
Normal file
|
@ -0,0 +1,60 @@
|
|||
#data
|
||||
direct div content
|
||||
#errors
|
||||
#document-fragment
|
||||
div
|
||||
#document
|
||||
| "direct div content"
|
||||
|
||||
#data
|
||||
direct textarea content
|
||||
#errors
|
||||
#document-fragment
|
||||
textarea
|
||||
#document
|
||||
| "direct textarea content"
|
||||
|
||||
#data
|
||||
textarea content with <em>pseudo</em> <foo>markup
|
||||
#errors
|
||||
#document-fragment
|
||||
textarea
|
||||
#document
|
||||
| "textarea content with <em>pseudo</em> <foo>markup"
|
||||
|
||||
#data
|
||||
this is CDATA inside a <style> element
|
||||
#errors
|
||||
#document-fragment
|
||||
style
|
||||
#document
|
||||
| "this is CDATA inside a <style> element"
|
||||
|
||||
#data
|
||||
</plaintext>
|
||||
#errors
|
||||
#document-fragment
|
||||
plaintext
|
||||
#document
|
||||
| "</plaintext>"
|
||||
|
||||
#data
|
||||
setting html's innerHTML
|
||||
#errors
|
||||
Line: 1 Col: 24 Unexpected EOF in inner html mode.
|
||||
#document-fragment
|
||||
html
|
||||
#document
|
||||
| <head>
|
||||
| <body>
|
||||
| "setting html's innerHTML"
|
||||
|
||||
#data
|
||||
<title>setting head's innerHTML</title>
|
||||
#errors
|
||||
Line: 1 Col: 7 Unexpected start tag (title) that can be in head. Moved.
|
||||
#document-fragment
|
||||
head
|
||||
#document
|
||||
| <title>
|
||||
| "setting head's innerHTML"
|
175
attic/vendor/plugins/HTML5lib/testdata/tree-construction/tests5.dat
vendored
Normal file
175
attic/vendor/plugins/HTML5lib/testdata/tree-construction/tests5.dat
vendored
Normal file
|
@ -0,0 +1,175 @@
|
|||
#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).
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <style>
|
||||
| " <!-- </style>x"
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<style> <!-- </style> --> </style>x
|
||||
#errors
|
||||
Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <style>
|
||||
| " <!-- </style> --> "
|
||||
| <body>
|
||||
| "x"
|
||||
|
||||
#data
|
||||
<style> <!--> </style>x
|
||||
#errors
|
||||
Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <style>
|
||||
| " <!--> "
|
||||
| <body>
|
||||
| "x"
|
||||
|
||||
#data
|
||||
<style> <!---> </style>x
|
||||
#errors
|
||||
Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <style>
|
||||
| " <!---> "
|
||||
| <body>
|
||||
| "x"
|
||||
|
||||
#data
|
||||
<iframe> <!---> </iframe>x
|
||||
#errors
|
||||
Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <iframe>
|
||||
| " <!---> "
|
||||
| "x"
|
||||
|
||||
#data
|
||||
<iframe> <!--- </iframe>->x</iframe> --> </iframe>x
|
||||
#errors
|
||||
Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <iframe>
|
||||
| " <!--- </iframe>->x</iframe> --> "
|
||||
| "x"
|
||||
|
||||
#data
|
||||
<script> <!-- </script> --> </script>x
|
||||
#errors
|
||||
Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <script>
|
||||
| " <!-- </script> --> "
|
||||
| <body>
|
||||
| "x"
|
||||
|
||||
#data
|
||||
<title> <!-- </title> --> </title>x
|
||||
#errors
|
||||
Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <title>
|
||||
| " <!-- </title> --> "
|
||||
| <body>
|
||||
| "x"
|
||||
|
||||
#data
|
||||
<textarea> <!--- </textarea>->x</textarea> --> </textarea>x
|
||||
#errors
|
||||
Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <textarea>
|
||||
| " <!--- </textarea>->x</textarea> --> "
|
||||
| "x"
|
||||
|
||||
#data
|
||||
<style> <!</-- </style>x
|
||||
#errors
|
||||
Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <style>
|
||||
| " <!</-- "
|
||||
| <body>
|
||||
| "x"
|
||||
|
||||
#data
|
||||
<xmp> <!-- > --> </xmp>
|
||||
#errors
|
||||
Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <xmp>
|
||||
| " <!-- > --> "
|
||||
|
||||
#data
|
||||
<title>&</title>
|
||||
#errors
|
||||
Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <title>
|
||||
| "&"
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<title><!--&--></title>
|
||||
#errors
|
||||
Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE.
|
||||
#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).
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <title>
|
||||
| "<!--</title>"
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<noscript><!--</noscript>--></noscript>
|
||||
#errors
|
||||
Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <noscript>
|
||||
| "<!--</noscript>-->"
|
||||
| <body>
|
632
attic/vendor/plugins/HTML5lib/testdata/tree-construction/tests6.dat
vendored
Normal file
632
attic/vendor/plugins/HTML5lib/testdata/tree-construction/tests6.dat
vendored
Normal file
|
@ -0,0 +1,632 @@
|
|||
#data
|
||||
<!doctype html></head> <head>
|
||||
#errors
|
||||
Line: 1 Col: 29 Unexpected start tag head. Ignored.
|
||||
#document
|
||||
| <!DOCTYPE html>
|
||||
| <html>
|
||||
| <head>
|
||||
| " "
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<!doctype html></html> <head>
|
||||
#errors
|
||||
Line: 1 Col: 29 Unexpected start tag (head). Expected end of file.
|
||||
Line: 1 Col: 29 Unexpected start tag token (head) in the after body phase.
|
||||
Line: 1 Col: 29 Unexpected start tag head. Ignored.
|
||||
#document
|
||||
| <!DOCTYPE html>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| " "
|
||||
|
||||
#data
|
||||
<!doctype html></body><meta>
|
||||
#errors
|
||||
Line: 1 Col: 28 Unexpected start tag token (meta) in the after body phase.
|
||||
#document
|
||||
| <!DOCTYPE html>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <meta>
|
||||
|
||||
#data
|
||||
<!doctype HTml><form><div></form><div>
|
||||
#errors
|
||||
Line: 1 Col: 33 End tag (form) seen too early. Ignored.
|
||||
Line: 1 Col: 38 Expected closing tag. Unexpected end of file.
|
||||
#document
|
||||
| <!DOCTYPE HTml>
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <form>
|
||||
| <div>
|
||||
| <div>
|
||||
|
||||
#data
|
||||
<!doctype HTml><title>&</title>
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE HTml>
|
||||
| <html>
|
||||
| <head>
|
||||
| <title>
|
||||
| "&"
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<!doctype HTml><title><!--&--></title>
|
||||
#errors
|
||||
#document
|
||||
| <!DOCTYPE HTml>
|
||||
| <html>
|
||||
| <head>
|
||||
| <title>
|
||||
| "<!--&-->"
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<!doctype>
|
||||
#errors
|
||||
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.
|
||||
#document
|
||||
| <!DOCTYPE >
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<!---x
|
||||
#errors
|
||||
Line: 1 Col: 6 Unexpected end of file in comment.
|
||||
Line: 1 Col: 6 Unexpected End of file. Expected DOCTYPE.
|
||||
#document
|
||||
| <!-- -x -->
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<body>
|
||||
<div>
|
||||
#errors
|
||||
Line: 1 Col: 6 Unexpected start tag (body).
|
||||
Line: 2 Col: 5 Expected closing tag. Unexpected end of file.
|
||||
#document-fragment
|
||||
div
|
||||
#document
|
||||
| "
|
||||
"
|
||||
| <div>
|
||||
|
||||
#data
|
||||
<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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <frameset>
|
||||
| "
|
||||
"
|
||||
|
||||
#data
|
||||
<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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <frameset>
|
||||
| "
|
||||
"
|
||||
| <noframes>
|
||||
|
||||
#data
|
||||
<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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <frameset>
|
||||
| "
|
||||
"
|
||||
|
||||
#data
|
||||
<frameset></frameset>
|
||||
</html>
|
||||
#errors
|
||||
Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <frameset>
|
||||
| "
|
||||
"
|
||||
|
||||
#data
|
||||
<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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <frameset>
|
||||
| "
|
||||
"
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <form>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <button>
|
||||
| <button>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
| <tbody>
|
||||
| <tr>
|
||||
| <td>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
| <caption>
|
||||
| <tbody>
|
||||
| <tr>
|
||||
| <td>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
| <caption>
|
||||
| <div>
|
||||
|
||||
#data
|
||||
</caption><div>
|
||||
#document-fragment
|
||||
caption
|
||||
#errors
|
||||
Line: 1 Col: 10 Unexpected end tag (caption). Ignored.
|
||||
Line: 1 Col: 15 Expected closing tag. Unexpected end of file.
|
||||
#document
|
||||
| <div>
|
||||
|
||||
#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 Expected closing tag. Unexpected end of file.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
| <caption>
|
||||
| <div>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
| <caption>
|
||||
|
||||
#data
|
||||
</table><div>
|
||||
#document-fragment
|
||||
caption
|
||||
#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.
|
||||
#document
|
||||
| <div>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
| <caption>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
| <caption>
|
||||
| <div>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
| <tbody>
|
||||
| <tr>
|
||||
| <td>
|
||||
|
||||
#data
|
||||
</table></tbody></tfoot></thead></tr><div>
|
||||
#document-fragment
|
||||
td
|
||||
#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.
|
||||
#document
|
||||
| <div>
|
||||
|
||||
#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 Expected closing tag. Unexpected end of file.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| "foo"
|
||||
| <table>
|
||||
| <colgroup>
|
||||
|
||||
#data
|
||||
foo<col>
|
||||
#document-fragment
|
||||
colgroup
|
||||
#errors
|
||||
Line: 1 Col: 3 Unexpected end tag (colgroup). Ignored.
|
||||
#document
|
||||
| <col>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
| <colgroup>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <frameset>
|
||||
|
||||
#data
|
||||
</frameset><frame>
|
||||
#document-fragment
|
||||
frameset
|
||||
#errors
|
||||
Line: 1 Col: 11 Unexpected end tag token (frameset) in the frameset phase (innerHTML).
|
||||
#document
|
||||
| <frame>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <frameset>
|
||||
|
||||
#data
|
||||
</body><div>
|
||||
#document-fragment
|
||||
body
|
||||
#errors
|
||||
Line: 1 Col: 7 Unexpected end tag (body). Ignored.
|
||||
Line: 1 Col: 12 Expected closing tag. Unexpected end of file.
|
||||
#document
|
||||
| <div>
|
||||
|
||||
#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 Expected closing tag. Unexpected end of file.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <div>
|
||||
| <table>
|
||||
| <tbody>
|
||||
| <tr>
|
||||
|
||||
#data
|
||||
</tr><td>
|
||||
#document-fragment
|
||||
tr
|
||||
#errors
|
||||
Line: 1 Col: 5 Unexpected end tag (tr). Ignored.
|
||||
#document
|
||||
| <td>
|
||||
|
||||
#data
|
||||
</tbody></tfoot></thead><td>
|
||||
#document-fragment
|
||||
tr
|
||||
#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.
|
||||
#document
|
||||
| <td>
|
||||
|
||||
#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.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <div>
|
||||
| <table>
|
||||
| <tbody>
|
||||
| <tr>
|
||||
| <td>
|
||||
|
||||
#data
|
||||
<caption><col><colgroup><tbody><tfoot><thead><tr>
|
||||
#document-fragment
|
||||
tbody
|
||||
#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).
|
||||
#document
|
||||
| <tr>
|
||||
|
||||
#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 Expected closing tag. Unexpected end of file.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
| <tbody>
|
||||
|
||||
#data
|
||||
</table><tr>
|
||||
#document-fragment
|
||||
tbody
|
||||
#errors
|
||||
Line: 1 Col: 8 Unexpected end tag (table). Ignored.
|
||||
#document
|
||||
| <tr>
|
||||
|
||||
#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 Expected closing tag. Unexpected end of file.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
| <tbody>
|
||||
|
||||
#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 Expected closing tag. Unexpected end of file.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
| <tbody>
|
||||
|
||||
#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 Expected closing tag. Unexpected end of file.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
| <table>
|
||||
|
||||
#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 Expected closing tag. Unexpected end of file.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <table>
|
||||
|
||||
#data
|
||||
</table><tr>
|
||||
#document-fragment
|
||||
table
|
||||
#errors
|
||||
Line: 1 Col: 8 Unexpected end tag (table). Ignored.
|
||||
Line: 1 Col: 12 Expected closing tag. Unexpected end of file.
|
||||
#document
|
||||
| <tbody>
|
||||
| <tr>
|
||||
|
||||
#data
|
||||
<html></html><!-- foo -->
|
||||
#errors
|
||||
Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <body>
|
||||
| <!-- foo -->
|
||||
|
||||
#data
|
||||
<body></body></html>
|
||||
#document-fragment
|
||||
html
|
||||
#errors
|
||||
Line: 1 Col: 20 Unexpected html end tag in inner html mode.
|
||||
Line: 1 Col: 20 Unexpected EOF in inner html mode.
|
||||
#document
|
||||
| <head>
|
||||
| <body>
|
||||
|
||||
#data
|
||||
<html><frameset></frameset></html>
|
||||
#errors
|
||||
Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE.
|
||||
#document
|
||||
| <html>
|
||||
| <head>
|
||||
| <frameset>
|
||||
| " "
|
1035
attic/vendor/plugins/HTML5lib/testdata/validator/attributes.test
vendored
Executable file
1035
attic/vendor/plugins/HTML5lib/testdata/validator/attributes.test
vendored
Executable file
File diff suppressed because it is too large
Load diff
787
attic/vendor/plugins/HTML5lib/testdata/validator/base-href-attribute.test
vendored
Executable file
787
attic/vendor/plugins/HTML5lib/testdata/validator/base-href-attribute.test
vendored
Executable file
|
@ -0,0 +1,787 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "base href contains invalid URI due to leading space",
|
||||
"input": "<base href=' http://www.example.com/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to trailing space",
|
||||
"input": "<base href='http://www.example.com/ '",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to space in scheme",
|
||||
"input": "<base href='ht tp://www.example.com/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to space in domain",
|
||||
"input": "<base href='http://www.example. com/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to space in path",
|
||||
"input": "<base href='http://www.example.com/a b'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to space in fragment",
|
||||
"input": "<base href='http://www.example.com/a#b c'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to space in query",
|
||||
"input": "<base href='http://www.example.com/a?b c'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to leading tab",
|
||||
"input": "<base href='\thttp://www.example.com/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to trailing tab",
|
||||
"input": "<base href='http://www.example.com/\t'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to tab in scheme",
|
||||
"input": "<base href='ht\ttp://www.example.com/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to tab in domain",
|
||||
"input": "<base href='http://www.example.\tcom/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to tab in path",
|
||||
"input": "<base href='http://www.example.com/a\tb'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to tab in fragment",
|
||||
"input": "<base href='http://www.example.com/a#b\tc'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to tab in query",
|
||||
"input": "<base href='http://www.example.com/a?b\tc'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to leading LF",
|
||||
"input": "<base href='\nhttp://www.example.com/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to LF in scheme",
|
||||
"input": "<base href='ht\ntp://www.example.com/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to LF in domain",
|
||||
"input": "<base href='http://www.example.\ncom/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to LF in path",
|
||||
"input": "<base href='http://www.example.com/a\nb'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to LF in fragment",
|
||||
"input": "<base href='http://www.example.com/a#b\nc'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to LF in query",
|
||||
"input": "<base href='http://www.example.com/a?b\nc'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to leading LT",
|
||||
"input": "<base href='\u000Bhttp://www.example.com/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to trailing LT",
|
||||
"input": "<base href='http://www.example.com/\u000B'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to LT in scheme",
|
||||
"input": "<base href='ht\u000Btp://www.example.com/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to LT in domain",
|
||||
"input": "<base href='http://www.example.\u000Bcom/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to LT in path",
|
||||
"input": "<base href='http://www.example.com/a\u000Bb'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to LT in fragment",
|
||||
"input": "<base href='http://www.example.com/a#b\u000Bc'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to LT in query",
|
||||
"input": "<base href='http://www.example.com/a?b\u000Bc'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to leading FF",
|
||||
"input": "<base href='\u000Chttp://www.example.com/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to trailing FF",
|
||||
"input": "<base href='http://www.example.com/\u000C'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to FF in scheme",
|
||||
"input": "<base href='ht\u000Ctp://www.example.com/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to FF in domain",
|
||||
"input": "<base href='http://www.example.\u000Ccom/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to FF in path",
|
||||
"input": "<base href='http://www.example.com/a\u000Cb'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to FF in fragment",
|
||||
"input": "<base href='http://www.example.com/a#b\u000Cc'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to FF in query",
|
||||
"input": "<base href='http://www.example.com/a?b\u000Cc'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to leading CR",
|
||||
"input": "<base href='\rhttp://www.example.com/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to CR in scheme",
|
||||
"input": "<base href='ht\rtp://www.example.com/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to CR in domain",
|
||||
"input": "<base href='http://www.example.\rcom/'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to CR in path",
|
||||
"input": "<base href='http://www.example.com/a\rb'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to CR in fragment",
|
||||
"input": "<base href='http://www.example.com/a#b\rc'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains invalid URI due to CR in query",
|
||||
"input": "<base href='http://www.example.com/a?b\rc'",
|
||||
"fail-unless": "invalid-uri-char"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'ftp'",
|
||||
"input": "<base href='ftp://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'http'",
|
||||
"input": "<base href='http://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'gopher'",
|
||||
"input": "<base href='gopher://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'mailto'",
|
||||
"input": "<base href='mailto://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'news'",
|
||||
"input": "<base href='news://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'nntp'",
|
||||
"input": "<base href='nntp://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'telnet'",
|
||||
"input": "<base href='telnet://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'wais'",
|
||||
"input": "<base href='wais://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'file'",
|
||||
"input": "<base href='file://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'prospero'",
|
||||
"input": "<base href='prospero://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'z39.50s'",
|
||||
"input": "<base href='z39.50s://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'z39.50r'",
|
||||
"input": "<base href='z39.50r://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'cid'",
|
||||
"input": "<base href='cid://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'mid'",
|
||||
"input": "<base href='mid://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'vemmi'",
|
||||
"input": "<base href='vemmi://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'service'",
|
||||
"input": "<base href='service://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'imap'",
|
||||
"input": "<base href='imap://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'nfs'",
|
||||
"input": "<base href='nfs://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'acap'",
|
||||
"input": "<base href='acap://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'rtsp'",
|
||||
"input": "<base href='rtsp://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'tip'",
|
||||
"input": "<base href='tip://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'pop'",
|
||||
"input": "<base href='pop://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'data'",
|
||||
"input": "<base href='data://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'dav'",
|
||||
"input": "<base href='dav://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'opaquelocktoken'",
|
||||
"input": "<base href='opaquelocktoken://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'sip'",
|
||||
"input": "<base href='sip://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'sips'",
|
||||
"input": "<base href='sips://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'tel'",
|
||||
"input": "<base href='tel://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'fax'",
|
||||
"input": "<base href='fax://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'modem'",
|
||||
"input": "<base href='modem://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'ldap'",
|
||||
"input": "<base href='ldap://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'https'",
|
||||
"input": "<base href='https://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'soap.beep'",
|
||||
"input": "<base href='soap.beep://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'soap.beeps'",
|
||||
"input": "<base href='soap.beeps://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'xmlrpc.beep'",
|
||||
"input": "<base href='xmlrpc.beep://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'xmlrpc.beeps'",
|
||||
"input": "<base href='xmlrpc.beeps://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'urn'",
|
||||
"input": "<base href='urn://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'go'",
|
||||
"input": "<base href='go://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'h323'",
|
||||
"input": "<base href='h323://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'ipp'",
|
||||
"input": "<base href='ipp://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'tftp'",
|
||||
"input": "<base href='tftp://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'mupdate'",
|
||||
"input": "<base href='mupdate://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'pres'",
|
||||
"input": "<base href='pres://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'im'",
|
||||
"input": "<base href='im://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'mtqp'",
|
||||
"input": "<base href='mtqp://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'iris.beep'",
|
||||
"input": "<base href='iris.beep://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'dict'",
|
||||
"input": "<base href='dict://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'snmp'",
|
||||
"input": "<base href='snmp://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'crid'",
|
||||
"input": "<base href='crid://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'tag'",
|
||||
"input": "<base href='tag://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'dns'",
|
||||
"input": "<base href='dns://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'info'",
|
||||
"input": "<base href='info://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'javascript'",
|
||||
"input": "<base href='javascript:foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'FTP'",
|
||||
"input": "<base href='FTP://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'HTTP'",
|
||||
"input": "<base href='HTTP://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'GOPHER'",
|
||||
"input": "<base href='GOPHER://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'MAILTO'",
|
||||
"input": "<base href='MAILTO://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'NEWS'",
|
||||
"input": "<base href='NEWS://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'NNTP'",
|
||||
"input": "<base href='NNTP://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'TELNET'",
|
||||
"input": "<base href='TELNET://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'WAIS'",
|
||||
"input": "<base href='WAIS://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'FILE'",
|
||||
"input": "<base href='FILE://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'PROSPERO'",
|
||||
"input": "<base href='PROSPERO://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'Z39.50S'",
|
||||
"input": "<base href='Z39.50S://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'Z39.50R'",
|
||||
"input": "<base href='Z39.50R://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'CID'",
|
||||
"input": "<base href='CID://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'MID'",
|
||||
"input": "<base href='MID://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'VEMMI'",
|
||||
"input": "<base href='VEMMI://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'SERVICE'",
|
||||
"input": "<base href='SERVICE://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'IMAP'",
|
||||
"input": "<base href='IMAP://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'NFS'",
|
||||
"input": "<base href='NFS://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'ACAP'",
|
||||
"input": "<base href='ACAP://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'RTSP'",
|
||||
"input": "<base href='RTSP://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'TIP'",
|
||||
"input": "<base href='TIP://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'POP'",
|
||||
"input": "<base href='POP://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'DATA'",
|
||||
"input": "<base href='DATA://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'DAV'",
|
||||
"input": "<base href='DAV://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'OPAQUELOCKTOKEN'",
|
||||
"input": "<base href='OPAQUELOCKTOKEN://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'SIP'",
|
||||
"input": "<base href='SIP://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'SIPS'",
|
||||
"input": "<base href='SIPS://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'TEL'",
|
||||
"input": "<base href='TEL://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'FAX'",
|
||||
"input": "<base href='FAX://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'MODEM'",
|
||||
"input": "<base href='MODEM://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'LDAP'",
|
||||
"input": "<base href='LDAP://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'HTTPS'",
|
||||
"input": "<base href='HTTPS://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'SOAP.BEEP'",
|
||||
"input": "<base href='SOAP.BEEP://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'SOAP.BEEPS'",
|
||||
"input": "<base href='SOAP.BEEPS://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'XMLRPC.BEEP'",
|
||||
"input": "<base href='XMLRPC.BEEP://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'XMLRPC.BEEPS'",
|
||||
"input": "<base href='XMLRPC.BEEPS://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'URN'",
|
||||
"input": "<base href='URN://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'GO'",
|
||||
"input": "<base href='GO://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'H323'",
|
||||
"input": "<base href='H323://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'IPP'",
|
||||
"input": "<base href='IPP://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'TFTP'",
|
||||
"input": "<base href='TFTP://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'MUPDATE'",
|
||||
"input": "<base href='MUPDATE://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'PRES'",
|
||||
"input": "<base href='PRES://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'IM'",
|
||||
"input": "<base href='IM://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'MTQP'",
|
||||
"input": "<base href='MTQP://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'IRIS.BEEP'",
|
||||
"input": "<base href='IRIS.BEEP://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'DICT'",
|
||||
"input": "<base href='DICT://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'SNMP'",
|
||||
"input": "<base href='SNMP://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'CRID'",
|
||||
"input": "<base href='CRID://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'TAG'",
|
||||
"input": "<base href='TAG://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'DNS'",
|
||||
"input": "<base href='DNS://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'INFO'",
|
||||
"input": "<base href='INFO://foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'JAVASCRIPT'",
|
||||
"input": "<base href='JAVASCRIPT:foo'",
|
||||
"fail-if": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI scheme 'foo'",
|
||||
"input": "<base href='foo:bar'",
|
||||
"fail-unless": "invalid-scheme"},
|
||||
|
||||
{"description": "base href contains valid URI 'g'",
|
||||
"input": "<base href='g'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI './g'",
|
||||
"input": "<base href='./g'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'g/'",
|
||||
"input": "<base href='g/'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI '/g'",
|
||||
"input": "<base href='/g'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI '//g'",
|
||||
"input": "<base href='//g'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI '?y'",
|
||||
"input": "<base href='?y'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'g?y'",
|
||||
"input": "<base href='g?y'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI '#s'",
|
||||
"input": "<base href='#s'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'g#s'",
|
||||
"input": "<base href='g#s'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'g?y#s'",
|
||||
"input": "<base href='g?y#s'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI ';x'",
|
||||
"input": "<base href=';x'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'g;x'",
|
||||
"input": "<base href='g;x'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'g;x?y#s'",
|
||||
"input": "<base href='g;x?y#s'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI '.'",
|
||||
"input": "<base href='.'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI './'",
|
||||
"input": "<base href='./'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI '..'",
|
||||
"input": "<base href='..'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI '../'",
|
||||
"input": "<base href='../'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI '../g'",
|
||||
"input": "<base href='../g'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI '../..'",
|
||||
"input": "<base href='../..'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI '../../'",
|
||||
"input": "<base href='../../'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI '../../g'",
|
||||
"input": "<base href='../../g'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI '../../../g'",
|
||||
"input": "<base href='../../../g'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI '../../../../g'",
|
||||
"input": "<base href='../../../../g'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI '/./g'",
|
||||
"input": "<base href='/./g'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI '/../g'",
|
||||
"input": "<base href='/../g'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'g.'",
|
||||
"input": "<base href='g.'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI '.g'",
|
||||
"input": "<base href='.g'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'g..'",
|
||||
"input": "<base href='g..'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI '..g'",
|
||||
"input": "<base href='..g'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI './../g'",
|
||||
"input": "<base href='./../g'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI './g/.'",
|
||||
"input": "<base href='./g/.'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'g/./h'",
|
||||
"input": "<base href='g/./h'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'g/../h'",
|
||||
"input": "<base href='g/../h'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'g;x=1/./y'",
|
||||
"input": "<base href='g;x=1/./y'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'g;x=1/../y'",
|
||||
"input": "<base href='g;x=1/../y'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'g?y/./x'",
|
||||
"input": "<base href='g?y/./x'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'g?y/../x'",
|
||||
"input": "<base href='g?y/../x'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'g#s/./x'",
|
||||
"input": "<base href='g#s/./x'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'g#s/../x'",
|
||||
"input": "<base href='g#s/../x'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI './g:h'",
|
||||
"input": "<base href='./g:h'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'http://www.w%33.org'",
|
||||
"input": "<base href='http://www.w%33.org'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'http://r%C3%A4ksm%C3%B6rg%C3%A5s.josefsson.org'",
|
||||
"input": "<base href='http://r%C3%A4ksm%C3%B6rg%C3%A5s.josefsson.org'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'http://xn--rksmrgs-5wao1o.josefsson.org'",
|
||||
"input": "<base href='http://xn--rksmrgs-5wao1o.josefsson.org'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'http://%E7%B4%8D%E8%B1%86.w3.mag.keio.ac.jp'",
|
||||
"input": "<base href='http://%E7%B4%8D%E8%B1%86.w3.mag.keio.ac.jp'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'http://xn--99zt52a.w3.mag.keio.ac.jp'",
|
||||
"input": "<base href='http://xn--99zt52a.w3.mag.keio.ac.jp'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'http://www.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'",
|
||||
"input": "<base href='http://www.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'http://www.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'",
|
||||
"input": "<base href='http://www.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'http://%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'",
|
||||
"input": "<base href='http://%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "base href contains valid URI 'http://xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'",
|
||||
"input": "<base href='http://xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'",
|
||||
"fail-if": "invalid-attribute-value"}
|
||||
|
||||
]}
|
35
attic/vendor/plugins/HTML5lib/testdata/validator/base-target-attribute.test
vendored
Executable file
35
attic/vendor/plugins/HTML5lib/testdata/validator/base-target-attribute.test
vendored
Executable file
|
@ -0,0 +1,35 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "valid base target attribute '_self'",
|
||||
"input": "<base target=_self>",
|
||||
"fail-if": "invalid-browsing-context"},
|
||||
|
||||
{"description": "valid base target attribute '_parent'",
|
||||
"input": "<base target=_parent>",
|
||||
"fail-if": "invalid-browsing-context"},
|
||||
|
||||
{"description": "valid base target attribute '_top'",
|
||||
"input": "<base target=_top>",
|
||||
"fail-if": "invalid-browsing-context"},
|
||||
|
||||
{"description": "valid base target attribute '_blank'",
|
||||
"input": "<base target=_blank>",
|
||||
"fail-if": "invalid-browsing-context"},
|
||||
|
||||
{"description": "valid base target attribute 'foo'",
|
||||
"input": "<base target=foo>",
|
||||
"fail-if": "invalid-browsing-context"},
|
||||
|
||||
{"description": "base target attribute may be blank",
|
||||
"input": "<base target>",
|
||||
"fail-if": "invalid-browsing-context"},
|
||||
|
||||
{"description": "invalid base target attribute '_'",
|
||||
"input": "<base target=_>",
|
||||
"fail-unless": "invalid-browsing-context"},
|
||||
|
||||
{"description": "invalid base target attribute '_foo'",
|
||||
"input": "<base target=_foo>",
|
||||
"fail-unless": "invalid-browsing-context"}
|
||||
|
||||
]}
|
7
attic/vendor/plugins/HTML5lib/testdata/validator/blockquote-cite-attribute.test
vendored
Executable file
7
attic/vendor/plugins/HTML5lib/testdata/validator/blockquote-cite-attribute.test
vendored
Executable file
|
@ -0,0 +1,7 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "blockquote cite contains invalid URI due to space in domain",
|
||||
"input": "<blockquote cite='http://www.example. com/'",
|
||||
"fail-unless": "invalid-uri-char"}
|
||||
|
||||
]}
|
152
attic/vendor/plugins/HTML5lib/testdata/validator/classattribute.test
vendored
Executable file
152
attic/vendor/plugins/HTML5lib/testdata/validator/classattribute.test
vendored
Executable file
|
@ -0,0 +1,152 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "valid single class attribute value",
|
||||
"input": "<span class=a>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with leading space",
|
||||
"input": "<span class=' a'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with trailing space",
|
||||
"input": "<span class='a '>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with leading and trailing space",
|
||||
"input": "<span class=' a '>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with leading tab",
|
||||
"input": "<span class='\ta'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with trailing tab",
|
||||
"input": "<span class='a\t'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with leading and trailing tab",
|
||||
"input": "<span class='\ta\t'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with leading LF",
|
||||
"input": "<span class='\na'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with trailing LF",
|
||||
"input": "<span class='a\n'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with leading and trailing LF",
|
||||
"input": "<span class='\na\n'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with leading LT",
|
||||
"input": "<span class='\u000Ba'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with trailing LT",
|
||||
"input": "<span class='a\u000B'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with leading and trailing LT",
|
||||
"input": "<span class='\u000Ba\u000B'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with leading FF",
|
||||
"input": "<span class='\u000Ca'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with trailing FF",
|
||||
"input": "<span class='a\u000C'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with leading and trailing FF",
|
||||
"input": "<span class='\u000Ca\u000C'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with leading CR",
|
||||
"input": "<span class='\ra'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with trailing CR",
|
||||
"input": "<span class='a\r'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid single class attribute value with leading and trailing CR",
|
||||
"input": "<span class='\ra\r'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid double class attribute value separated by space",
|
||||
"input": "<span class='a b'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid double class attribute value separated by tab",
|
||||
"input": "<span class='a\tb'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid double class attribute value separated by LF",
|
||||
"input": "<span class='a\nb'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid double class attribute value separated by LT",
|
||||
"input": "<span class='a\u000Bb'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid double class attribute value separated by FF",
|
||||
"input": "<span class='a\u000Cb'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid double class attribute value separated by CR",
|
||||
"input": "<span class='a\rb'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "invalid duplicated class attribute value separated by space",
|
||||
"input": "<span class='a a'>",
|
||||
"fail-unless": "invalid-attribute-value"},
|
||||
|
||||
{"description": "invalid duplicated class attribute value separated by tab",
|
||||
"input": "<span class='a\ta'>",
|
||||
"fail-unless": "invalid-attribute-value"},
|
||||
|
||||
{"description": "invalid duplicated class attribute value separated by LF",
|
||||
"input": "<span class='a\na'>",
|
||||
"fail-unless": "invalid-attribute-value"},
|
||||
|
||||
{"description": "invalid duplicated class attribute value separated by LT",
|
||||
"input": "<span class='a\u000Ba'>",
|
||||
"fail-unless": "invalid-attribute-value"},
|
||||
|
||||
{"description": "invalid duplicated class attribute value separated by FF",
|
||||
"input": "<span class='a\u000Ca'>",
|
||||
"fail-unless": "invalid-attribute-value"},
|
||||
|
||||
{"description": "invalid duplicated class attribute value separated by CR",
|
||||
"input": "<span class='a\ra'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "invalid duplicated class attribute value separated by space",
|
||||
"input": "<span class='a a'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "invalid duplicated class attribute value separated by tab",
|
||||
"input": "<span class='a\ta'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "invalid duplicated class attribute value separated by LF",
|
||||
"input": "<span class='a\na'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "invalid duplicated class attribute value separated by LT",
|
||||
"input": "<span class='a\u000Ba'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "invalid duplicated class attribute value separated by FF",
|
||||
"input": "<span class='a\u000Ca'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "invalid duplicated class attribute value separated by CR",
|
||||
"input": "<span class='a\ra'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"}
|
||||
|
||||
]}
|
||||
|
59
attic/vendor/plugins/HTML5lib/testdata/validator/contenteditableattribute.test
vendored
Executable file
59
attic/vendor/plugins/HTML5lib/testdata/validator/contenteditableattribute.test
vendored
Executable file
|
@ -0,0 +1,59 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "valid contenteditable attribute value 'true'",
|
||||
"input": "<span contenteditable=true>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid contenteditable attribute value 'TRUE'",
|
||||
"input": "<span contenteditable=TRUE>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid contenteditable attribute value 'TrUe'",
|
||||
"input": "<span contenteditable=TrUe>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid contenteditable attribute value 'false'",
|
||||
"input": "<span contenteditable=false>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid contenteditable attribute value 'FALSE'",
|
||||
"input": "<span contenteditable=FALSE>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid contenteditable attribute value 'FalSe'",
|
||||
"input": "<span contenteditable=FalSe>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid contenteditable attribute value ''",
|
||||
"input": "<span contenteditable=''>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid contenteditable attribute value (not specified)",
|
||||
"input": "<span contenteditable>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "invalid contenteditable attribute value 'foo'",
|
||||
"input": "<span contenteditable=foo>",
|
||||
"fail-unless": "invalid-enumerated-value"},
|
||||
|
||||
{"description": "invalid contenteditable attribute value '0'",
|
||||
"input": "<span contenteditable=0>",
|
||||
"fail-unless": "invalid-enumerated-value"},
|
||||
|
||||
{"description": "invalid contenteditable attribute value '1'",
|
||||
"input": "<span contenteditable=1>",
|
||||
"fail-unless": "invalid-enumerated-value"},
|
||||
|
||||
{"description": "invalid contenteditable attribute value 'yes'",
|
||||
"input": "<span contenteditable=yes>",
|
||||
"fail-unless": "invalid-enumerated-value"},
|
||||
|
||||
{"description": "invalid contenteditable attribute value 'no'",
|
||||
"input": "<span contenteditable=no>",
|
||||
"fail-unless": "invalid-enumerated-value"},
|
||||
|
||||
{"description": "invalid contenteditable attribute value 'inherit'",
|
||||
"input": "<span contenteditable=inherit>",
|
||||
"fail-unless": "invalid-enumerated-value"}
|
||||
|
||||
]}
|
115
attic/vendor/plugins/HTML5lib/testdata/validator/contextmenuattribute.test
vendored
Executable file
115
attic/vendor/plugins/HTML5lib/testdata/validator/contextmenuattribute.test
vendored
Executable file
|
@ -0,0 +1,115 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "contextmenu points to valid ID earlier",
|
||||
"input": "<menu id=a><span contextmenu=a>",
|
||||
"fail-if": "id-does-not-exist"},
|
||||
|
||||
{"description": "contextmenu points to valid ID later",
|
||||
"input": "<span contextmenu=a><menu id=a>",
|
||||
"fail-if": "id-does-not-exist"},
|
||||
|
||||
{"description": "contextmenu points to non-existent ID",
|
||||
"input": "<span contextmenu=a>",
|
||||
"fail-unless": "id-does-not-exist"},
|
||||
|
||||
{"description": "contextmenu points to ID on non-menu element",
|
||||
"input": "<span id=a><span contextmenu=a>",
|
||||
"fail-unless": "contextmenu-must-point-to-menu"},
|
||||
|
||||
{"description": "uppercase contextmenu points to ID on non-menu element",
|
||||
"input": "<span id=a><span CONTEXTMENU=a>",
|
||||
"fail-unless": "contextmenu-must-point-to-menu"},
|
||||
|
||||
{"description": "valid ID 'a'",
|
||||
"input": "<span contextmenu=a>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid ID '1'",
|
||||
"input": "<span contextmenu=1>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "wacky but valid ID",
|
||||
"input": "<span contextmenu='<html><head><title>a</title></head><body><p>b</p></body></html>'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "invalid blank ID",
|
||||
"input": "<span id>",
|
||||
"fail-unless": "attribute-value-can-not-be-blank"},
|
||||
|
||||
{"description": "invalid blank ID with quotes",
|
||||
"input": "<span contextmenu=''>",
|
||||
"fail-unless": "attribute-value-can-not-be-blank"},
|
||||
|
||||
{"description": "invalid ID because of leading space",
|
||||
"input": "<span contextmenu=' a'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of trailing space",
|
||||
"input": "<span contextmenu='a '>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of space in value",
|
||||
"input": "<span contextmenu='a b'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of leading tab",
|
||||
"input": "<span contextmenu='\ta'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of trailing tab",
|
||||
"input": "<span contextmenu='a\t'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of tab in value",
|
||||
"input": "<span contextmenu='a\tb'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of leading LF",
|
||||
"input": "<span contextmenu='\na'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of trailing LF",
|
||||
"input": "<span contextmenu='a\n'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of LF in value",
|
||||
"input": "<span contextmenu='a\nb'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of leading LT",
|
||||
"input": "<span contextmenu='\u000Ba'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of trailing LT",
|
||||
"input": "<span contextmenu='a\u000B'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of LT in value",
|
||||
"input": "<span contextmenu='a\u000Bb'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of leading FF",
|
||||
"input": "<span contextmenu='\u000Ca'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of trailing FF",
|
||||
"input": "<span contextmenu='a\u000C'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of FF in value",
|
||||
"input": "<span contextmenu='a\u000Cb'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of leading CR",
|
||||
"input": "<span contextmenu='\ra'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of trailing CR",
|
||||
"input": "<span contextmenu='a\r'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of CR in value",
|
||||
"input": "<span contextmenu='a\rb'>",
|
||||
"fail-unless": "space-in-id"}
|
||||
|
||||
]}
|
59
attic/vendor/plugins/HTML5lib/testdata/validator/dirattribute.test
vendored
Executable file
59
attic/vendor/plugins/HTML5lib/testdata/validator/dirattribute.test
vendored
Executable file
|
@ -0,0 +1,59 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "valid dir attribute value 'ltr'",
|
||||
"input": "<span dir=ltr>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid dir attribute value 'LTR'",
|
||||
"input": "<span dir=LTR>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid dir attribute value 'LtR'",
|
||||
"input": "<span dir=LtR>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid dir attribute value 'rtl'",
|
||||
"input": "<span dir=rtl>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid dir attribute value 'RTL'",
|
||||
"input": "<span dir=RTL>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid dir attribute value 'RtL'",
|
||||
"input": "<span dir=RtL>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "invalid dir attribute value due to leading space",
|
||||
"input": "<span dir=' ltr'>",
|
||||
"fail-unless": "invalid-enumerated-value"},
|
||||
|
||||
{"description": "dir attribute value can not be blank",
|
||||
"input": "<span dir>",
|
||||
"fail-unless": "attribute-value-can-not-be-blank"},
|
||||
|
||||
{"description": "dir attribute value can not be blank (with quotes)",
|
||||
"input": "<span dir=''>",
|
||||
"fail-unless": "attribute-value-can-not-be-blank"},
|
||||
|
||||
{"description": "invalid dir attribute value 'left'",
|
||||
"input": "<span dir=left>",
|
||||
"fail-unless": "invalid-enumerated-value"},
|
||||
|
||||
{"description": "invalid dir attribute value 'right'",
|
||||
"input": "<span dir=right>",
|
||||
"fail-unless": "invalid-enumerated-value"},
|
||||
|
||||
{"description": "invalid dir attribute value 'lefttoright'",
|
||||
"input": "<span dir=lefttoright>",
|
||||
"fail-unless": "invalid-enumerated-value"},
|
||||
|
||||
{"description": "invalid dir attribute value 'righttoleft'",
|
||||
"input": "<span dir=righttoleft>",
|
||||
"fail-unless": "invalid-enumerated-value"},
|
||||
|
||||
{"description": "invalid dir attribute value 'inherit'",
|
||||
"input": "<span dir=inherit>",
|
||||
"fail-unless": "invalid-enumerated-value"}
|
||||
|
||||
]}
|
63
attic/vendor/plugins/HTML5lib/testdata/validator/draggableattribute.test
vendored
Executable file
63
attic/vendor/plugins/HTML5lib/testdata/validator/draggableattribute.test
vendored
Executable file
|
@ -0,0 +1,63 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "valid draggable attribute value 'true'",
|
||||
"input": "<span draggable=true>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid draggable attribute value 'TRUE'",
|
||||
"input": "<span draggable=TRUE>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid draggable attribute value 'TrUe'",
|
||||
"input": "<span draggable=TrUe>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid draggable attribute value 'false'",
|
||||
"input": "<span draggable=false>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid draggable attribute value 'FALSE'",
|
||||
"input": "<span draggable=FALSE>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid draggable attribute value 'FalSe'",
|
||||
"input": "<span draggable=FalSe>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "invalid draggable attribute value ''",
|
||||
"input": "<span draggable=''>",
|
||||
"fail-unless": "attribute-value-can-not-be-blank"},
|
||||
|
||||
{"description": "valid draggable attribute value (not specified)",
|
||||
"input": "<span draggable>",
|
||||
"fail-unless": "attribute-value-can-not-be-blank"},
|
||||
|
||||
{"description": "invalid draggable attribute value 'foo'",
|
||||
"input": "<span draggable=foo>",
|
||||
"fail-unless": "invalid-enumerated-value"},
|
||||
|
||||
{"description": "invalid draggable attribute value '0'",
|
||||
"input": "<span draggable=0>",
|
||||
"fail-unless": "invalid-enumerated-value"},
|
||||
|
||||
{"description": "invalid draggable attribute value '1'",
|
||||
"input": "<span draggable=1>",
|
||||
"fail-unless": "invalid-enumerated-value"},
|
||||
|
||||
{"description": "invalid draggable attribute value 'yes'",
|
||||
"input": "<span draggable=yes>",
|
||||
"fail-unless": "invalid-enumerated-value"},
|
||||
|
||||
{"description": "invalid draggable attribute value 'no'",
|
||||
"input": "<span draggable=no>",
|
||||
"fail-unless": "invalid-enumerated-value"},
|
||||
|
||||
{"description": "invalid draggable attribute value 'auto'",
|
||||
"input": "<span draggable=auto>",
|
||||
"fail-unless": "invalid-enumerated-value"},
|
||||
|
||||
{"description": "invalid draggable attribute value 'inherit'",
|
||||
"input": "<span draggable=inherit>",
|
||||
"fail-unless": "invalid-enumerated-value"}
|
||||
|
||||
]}
|
23
attic/vendor/plugins/HTML5lib/testdata/validator/html-xmlns-attribute.test
vendored
Executable file
23
attic/vendor/plugins/HTML5lib/testdata/validator/html-xmlns-attribute.test
vendored
Executable file
|
@ -0,0 +1,23 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "valid html xmlns attribute",
|
||||
"input": "<html xmlns=http://www.w3.org/1999/xhtml>",
|
||||
"fail-if": "invalid-root-namespace"},
|
||||
|
||||
{"description": "invalid html xmlns attribute due to leading space",
|
||||
"input": "<html xmlns=' http://www.w3.org/1999/xhtml'>",
|
||||
"fail-unless": "invalid-root-namespace"},
|
||||
|
||||
{"description": "invalid html xmlns attribute due to trailing space",
|
||||
"input": "<html xmlns='http://www.w3.org/1999/xhtml '>",
|
||||
"fail-unless": "invalid-root-namespace"},
|
||||
|
||||
{"description": "invalid html xmlns attribute due to uppercase",
|
||||
"input": "<html xmlns=HTTP://WWW.W3.ORG/1999/XHTML>",
|
||||
"fail-unless": "invalid-root-namespace"},
|
||||
|
||||
{"description": "invalid xmlns attribute on non-html element",
|
||||
"input": "<body xmlns=http://www.w3.org/1999/xhtml>",
|
||||
"fail-unless": "unknown-attribute"}
|
||||
|
||||
]}
|
115
attic/vendor/plugins/HTML5lib/testdata/validator/idattribute.test
vendored
Executable file
115
attic/vendor/plugins/HTML5lib/testdata/validator/idattribute.test
vendored
Executable file
|
@ -0,0 +1,115 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "valid ID 'a'",
|
||||
"input": "<span id=a>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid ID '1'",
|
||||
"input": "<span id=1>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "wacky but valid ID",
|
||||
"input": "<span id='<html><head><title>a</title></head><body><p>b</p></body></html>'>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "invalid blank ID",
|
||||
"input": "<span id>",
|
||||
"fail-unless": "attribute-value-can-not-be-blank"},
|
||||
|
||||
{"description": "invalid blank ID with quotes",
|
||||
"input": "<span id=''>",
|
||||
"fail-unless": "attribute-value-can-not-be-blank"},
|
||||
|
||||
{"description": "invalid ID because of leading space",
|
||||
"input": "<span id=' a'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of trailing space",
|
||||
"input": "<span id='a '>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of space in value",
|
||||
"input": "<span id='a b'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of leading tab",
|
||||
"input": "<span id='\ta'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of trailing tab",
|
||||
"input": "<span id='a\t'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of tab in value",
|
||||
"input": "<span id='a\tb'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of leading LF",
|
||||
"input": "<span id='\na'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of trailing LF",
|
||||
"input": "<span id='a\n'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of LF in value",
|
||||
"input": "<span id='a\nb'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of leading LT",
|
||||
"input": "<span id='\u000Ba'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of trailing LT",
|
||||
"input": "<span id='a\u000B'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of LT in value",
|
||||
"input": "<span id='a\u000Bb'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of leading FF",
|
||||
"input": "<span id='\u000Ca'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of trailing FF",
|
||||
"input": "<span id='a\u000C'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of FF in value",
|
||||
"input": "<span id='a\u000Cb'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of leading CR",
|
||||
"input": "<span id='\ra'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of trailing CR",
|
||||
"input": "<span id='a\r'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "invalid ID because of CR in value",
|
||||
"input": "<span id='a\rb'>",
|
||||
"fail-unless": "space-in-id"},
|
||||
|
||||
{"description": "duplicate ID values",
|
||||
"input": "<span id=a><span id=a>",
|
||||
"fail-unless": "duplicate-id"},
|
||||
|
||||
{"description": "duplicate ID values with spaces (weird but true)",
|
||||
"input": "<span id='a '><span id='a '>",
|
||||
"fail-unless": "duplicate-id"},
|
||||
|
||||
{"description": "not duplicate ID values because spaces don't match",
|
||||
"input": "<span id=a><span id='a '>",
|
||||
"fail-if": "duplicate-id"},
|
||||
|
||||
{"description": "not duplicate ID values because spaces don't match",
|
||||
"input": "<span id=' a'><span id='a '>",
|
||||
"fail-if": "duplicate-id"},
|
||||
|
||||
{"description": "not duplicate ID values because case doesn't match",
|
||||
"input": "<span id=a><span id=A>",
|
||||
"fail-if": "duplicate-id"}
|
||||
|
||||
]}
|
2795
attic/vendor/plugins/HTML5lib/testdata/validator/inputattributes.test
vendored
Executable file
2795
attic/vendor/plugins/HTML5lib/testdata/validator/inputattributes.test
vendored
Executable file
File diff suppressed because it is too large
Load diff
63
attic/vendor/plugins/HTML5lib/testdata/validator/irrelevantattribute.test
vendored
Executable file
63
attic/vendor/plugins/HTML5lib/testdata/validator/irrelevantattribute.test
vendored
Executable file
|
@ -0,0 +1,63 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "valid irrelevant attribute value 'irrelevant'",
|
||||
"input": "<span irrelevant=irrelevant>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "valid irrelevant attribute value ''",
|
||||
"input": "<span irrelevant=''>",
|
||||
"fail-if": "invalid-attribute-value"},
|
||||
|
||||
{"description": "invalid irrelevant attribute value due to uppercase",
|
||||
"input": "<span irrelevant=IRRELEVANT>",
|
||||
"fail-unless": "invalid-boolean-value"},
|
||||
|
||||
{"description": "invalid irrelevant attribute value due to mixed case",
|
||||
"input": "<span irrelevant=IrReLeVaNt>",
|
||||
"fail-unless": "invalid-boolean-value"},
|
||||
|
||||
{"description": "invalid irrelevant attribute value due to leading space",
|
||||
"input": "<span irrelevant=' irrelevant'>",
|
||||
"fail-unless": "invalid-boolean-value"},
|
||||
|
||||
{"description": "invalid irrelevant attribute value due to trailing space",
|
||||
"input": "<span irrelevant='irrelevant '>",
|
||||
"fail-unless": "invalid-boolean-value"},
|
||||
|
||||
{"description": "invalid irrelevant attribute value 'foo'",
|
||||
"input": "<span irrelevant=foo>",
|
||||
"fail-unless": "invalid-boolean-value"},
|
||||
|
||||
{"description": "invalid irrelevant attribute value '0'",
|
||||
"input": "<span irrelevant=0>",
|
||||
"fail-unless": "invalid-boolean-value"},
|
||||
|
||||
{"description": "invalid irrelevant attribute value '1'",
|
||||
"input": "<span irrelevant=1>",
|
||||
"fail-unless": "invalid-boolean-value"},
|
||||
|
||||
{"description": "invalid irrelevant attribute value 'yes'",
|
||||
"input": "<span irrelevant=yes>",
|
||||
"fail-unless": "invalid-boolean-value"},
|
||||
|
||||
{"description": "invalid irrelevant attribute value 'no'",
|
||||
"input": "<span irrelevant=no>",
|
||||
"fail-unless": "invalid-boolean-value"},
|
||||
|
||||
{"description": "invalid irrelevant attribute value 'true'",
|
||||
"input": "<span irrelevant=true>",
|
||||
"fail-unless": "invalid-boolean-value"},
|
||||
|
||||
{"description": "invalid irrelevant attribute value 'false'",
|
||||
"input": "<span irrelevant=false>",
|
||||
"fail-unless": "invalid-boolean-value"},
|
||||
|
||||
{"description": "invalid irrelevant attribute value 'auto'",
|
||||
"input": "<span irrelevant=auto>",
|
||||
"fail-unless": "invalid-boolean-value"},
|
||||
|
||||
{"description": "invalid irrelevant attribute value 'inherit'",
|
||||
"input": "<span irrelevant=inherit>",
|
||||
"fail-unless": "invalid-boolean-value"}
|
||||
|
||||
]}
|
5579
attic/vendor/plugins/HTML5lib/testdata/validator/langattribute.test
vendored
Executable file
5579
attic/vendor/plugins/HTML5lib/testdata/validator/langattribute.test
vendored
Executable file
File diff suppressed because it is too large
Load diff
7
attic/vendor/plugins/HTML5lib/testdata/validator/li-value-attribute.test
vendored
Executable file
7
attic/vendor/plugins/HTML5lib/testdata/validator/li-value-attribute.test
vendored
Executable file
|
@ -0,0 +1,7 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "invalid li value attribute value due to leading junk",
|
||||
"input": "<li value=a1>",
|
||||
"fail-unless": "invalid-integer-value"}
|
||||
|
||||
]}
|
7
attic/vendor/plugins/HTML5lib/testdata/validator/link-href-attribute.test
vendored
Executable file
7
attic/vendor/plugins/HTML5lib/testdata/validator/link-href-attribute.test
vendored
Executable file
|
@ -0,0 +1,7 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "link href contains invalid URI due to space in domain",
|
||||
"input": "<link href='http://www.example. com/'",
|
||||
"fail-unless": "invalid-uri-char"}
|
||||
|
||||
]}
|
7
attic/vendor/plugins/HTML5lib/testdata/validator/link-hreflang-attribute.test
vendored
Executable file
7
attic/vendor/plugins/HTML5lib/testdata/validator/link-hreflang-attribute.test
vendored
Executable file
|
@ -0,0 +1,7 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "invalid lang attribute 'foo'",
|
||||
"input": "<link hreflang=foo>",
|
||||
"fail-unless": "invalid-lang-code"}
|
||||
|
||||
]}
|
271
attic/vendor/plugins/HTML5lib/testdata/validator/link-rel-attribute.test
vendored
Executable file
271
attic/vendor/plugins/HTML5lib/testdata/validator/link-rel-attribute.test
vendored
Executable file
|
@ -0,0 +1,271 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "invalid link rel value 'foo'",
|
||||
"input": "<link rel=foo>",
|
||||
"fail-unless": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'alternate stylesheet'",
|
||||
"input": "<link rel='alternate stylesheet'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with leading space",
|
||||
"input": "<link rel=' stylesheet'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with trailing space",
|
||||
"input": "<link rel='stylesheet '>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with leading and trailing space",
|
||||
"input": "<link rel=' stylesheet '>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with leading tab",
|
||||
"input": "<link rel='\tstylesheet'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with trailing tab",
|
||||
"input": "<link rel='stylesheet\t'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with leading and trailing tab",
|
||||
"input": "<link rel='\tstylesheet\t'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with leading LF",
|
||||
"input": "<link rel='\nstylesheet'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with trailing LF",
|
||||
"input": "<link rel='stylesheet\n'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with leading and trailing LF",
|
||||
"input": "<link rel='\nstylesheet\n'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with leading LT",
|
||||
"input": "<link rel='\u000Bstylesheet'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with trailing LT",
|
||||
"input": "<link rel='stylesheet\u000B'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with leading and trailing LT",
|
||||
"input": "<link rel='\u000Bstylesheet\u000B'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with leading FF",
|
||||
"input": "<link rel='\u000Cstylesheet'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with trailing FF",
|
||||
"input": "<link rel='stylesheet\u000C'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with leading and trailing FF",
|
||||
"input": "<link rel='\u000Cstylesheet\u000C'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with leading CR",
|
||||
"input": "<link rel='\rstylesheet'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with trailing CR",
|
||||
"input": "<link rel='stylesheet\r'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid single link rel value with leading and trailing CR",
|
||||
"input": "<link rel='\rstylesheet\r'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid double link rel value separated by space",
|
||||
"input": "<link rel='stylesheet alternate'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid double link rel value separated by tab",
|
||||
"input": "<link rel='stylesheet\talternate'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid double link rel value separated by LF",
|
||||
"input": "<link rel='stylesheet\nalternate'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid double link rel value separated by LT",
|
||||
"input": "<link rel='stylesheet\u000Balternate'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid double link rel value separated by FF",
|
||||
"input": "<link rel='stylesheet\u000Calternate'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid double link rel value separated by CR",
|
||||
"input": "<link rel='stylesheet\ralternate'>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "invalid duplicated link rel value separated by space",
|
||||
"input": "<link rel='stylesheet stylesheet'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "invalid duplicated link rel value separated by tab",
|
||||
"input": "<link rel='stylesheet\tstylesheet'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "invalid duplicated link rel value separated by LF",
|
||||
"input": "<link rel='stylesheet\nstylesheet'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "invalid duplicated link rel value separated by LT",
|
||||
"input": "<link rel='stylesheet\u000Bstylesheet'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "invalid duplicated link rel value separated by FF",
|
||||
"input": "<link rel='stylesheet\u000Cstylesheet'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "invalid duplicated link rel value separated by CR",
|
||||
"input": "<link rel='stylesheet\rstylesheet'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "invalid duplicated link rel value separated by space",
|
||||
"input": "<link rel='stylesheet stylesheet'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "invalid duplicated link rel value separated by tab",
|
||||
"input": "<link rel='stylesheet\tstylesheet'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "invalid duplicated link rel value separated by LF",
|
||||
"input": "<link rel='stylesheet\nstylesheet'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "invalid duplicated link rel value separated by LT",
|
||||
"input": "<link rel='stylesheet\u000Bstylesheet'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "invalid duplicated link rel value separated by FF",
|
||||
"input": "<link rel='stylesheet\u000Cstylesheet'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "invalid duplicated link rel value separated by CR",
|
||||
"input": "<link rel='stylesheet\rstylesheet'>",
|
||||
"fail-unless": "duplicate-value-in-token-list"},
|
||||
|
||||
{"description": "valid link rel value 'feed'",
|
||||
"input": "<link rel=feed>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'help'",
|
||||
"input": "<link rel=help>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'tag'",
|
||||
"input": "<link rel=tag>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'sidebar'",
|
||||
"input": "<link rel=sidebar>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'archive'",
|
||||
"input": "<link rel=archive>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'contents'",
|
||||
"input": "<link rel=contents>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'previous'",
|
||||
"input": "<link rel=previous>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'index'",
|
||||
"input": "<link rel=index>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'end'",
|
||||
"input": "<link rel=end>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'copyright'",
|
||||
"input": "<link rel=copyright>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'author'",
|
||||
"input": "<link rel=author>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'top'",
|
||||
"input": "<link rel=top>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'alternate'",
|
||||
"input": "<link rel=alternate>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'next'",
|
||||
"input": "<link rel=next>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'start'",
|
||||
"input": "<link rel=start>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'stylesheet'",
|
||||
"input": "<link rel=stylesheet>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'archives'",
|
||||
"input": "<link rel=archives>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'toc'",
|
||||
"input": "<link rel=toc>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'prev'",
|
||||
"input": "<link rel=prev>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'begin'",
|
||||
"input": "<link rel=begin>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'icon'",
|
||||
"input": "<link rel=icon>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'search'",
|
||||
"input": "<link rel=search>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'last'",
|
||||
"input": "<link rel=last>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'license'",
|
||||
"input": "<link rel=license>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'pingback'",
|
||||
"input": "<link rel=pingback>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'up'",
|
||||
"input": "<link rel=up>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'contact'",
|
||||
"input": "<link rel=contact>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'prefetch'",
|
||||
"input": "<link rel=prefetch>",
|
||||
"fail-if": "invalid-rel"},
|
||||
|
||||
{"description": "valid link rel value 'first'",
|
||||
"input": "<link rel=first>",
|
||||
"fail-if": "invalid-rel"}
|
||||
|
||||
]}
|
7
attic/vendor/plugins/HTML5lib/testdata/validator/ol-start-attribute.test
vendored
Executable file
7
attic/vendor/plugins/HTML5lib/testdata/validator/ol-start-attribute.test
vendored
Executable file
|
@ -0,0 +1,7 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "invalid ol start attribute value due to leading junk",
|
||||
"input": "<ol start=a1>",
|
||||
"fail-unless": "invalid-integer-value"}
|
||||
|
||||
]}
|
375
attic/vendor/plugins/HTML5lib/testdata/validator/starttags.test
vendored
Executable file
375
attic/vendor/plugins/HTML5lib/testdata/validator/starttags.test
vendored
Executable file
|
@ -0,0 +1,375 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "unknown start tag <foo>",
|
||||
"input": "<foo>",
|
||||
"fail-unless": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <code>",
|
||||
"input": "<code>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <kbd>",
|
||||
"input": "<kbd>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <aside>",
|
||||
"input": "<aside>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <datagrid>",
|
||||
"input": "<datagrid>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <font>",
|
||||
"input": "<font>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <noscript>",
|
||||
"input": "<noscript>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <style>",
|
||||
"input": "<style>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <img>",
|
||||
"input": "<img>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <title>",
|
||||
"input": "<title>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <menu>",
|
||||
"input": "<menu>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <tr>",
|
||||
"input": "<tr>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <param>",
|
||||
"input": "<param>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <li>",
|
||||
"input": "<li>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <source>",
|
||||
"input": "<source>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <tfoot>",
|
||||
"input": "<tfoot>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <th>",
|
||||
"input": "<th>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <td>",
|
||||
"input": "<td>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <dl>",
|
||||
"input": "<dl>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <blockquote>",
|
||||
"input": "<blockquote>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <dd>",
|
||||
"input": "<dd>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <abbr>",
|
||||
"input": "<abbr>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <dt>",
|
||||
"input": "<dt>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <noembed>",
|
||||
"input": "<noembed>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <p>",
|
||||
"input": "<p>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <small>",
|
||||
"input": "<small>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <meter>",
|
||||
"input": "<meter>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <em>",
|
||||
"input": "<em>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <meta>",
|
||||
"input": "<meta>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <video>",
|
||||
"input": "<video>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <div>",
|
||||
"input": "<div>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <canvas>",
|
||||
"input": "<canvas>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <sub>",
|
||||
"input": "<sub>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <section>",
|
||||
"input": "<section>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <sup>",
|
||||
"input": "<sup>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <progress>",
|
||||
"input": "<progress>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <body>",
|
||||
"input": "<body>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <base>",
|
||||
"input": "<base>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <br>",
|
||||
"input": "<br>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <address>",
|
||||
"input": "<address>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <article>",
|
||||
"input": "<article>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <strong>",
|
||||
"input": "<strong>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <legend>",
|
||||
"input": "<legend>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <event-source>",
|
||||
"input": "<event-source>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <ol>",
|
||||
"input": "<ol>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <script>",
|
||||
"input": "<script>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <caption>",
|
||||
"input": "<caption>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <dialog>",
|
||||
"input": "<dialog>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <col>",
|
||||
"input": "<col>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <h2>",
|
||||
"input": "<h2>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <h3>",
|
||||
"input": "<h3>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <h1>",
|
||||
"input": "<h1>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <h6>",
|
||||
"input": "<h6>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <h4>",
|
||||
"input": "<h4>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <h5>",
|
||||
"input": "<h5>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <header>",
|
||||
"input": "<header>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <table>",
|
||||
"input": "<table>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <span>",
|
||||
"input": "<span>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <area>",
|
||||
"input": "<area>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <dfn>",
|
||||
"input": "<dfn>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <var>",
|
||||
"input": "<var>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <cite>",
|
||||
"input": "<cite>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <thead>",
|
||||
"input": "<thead>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <head>",
|
||||
"input": "<head>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <hr>",
|
||||
"input": "<hr>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <link>",
|
||||
"input": "<link>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <datatemplate>",
|
||||
"input": "<datatemplate>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <b>",
|
||||
"input": "<b>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <colgroup>",
|
||||
"input": "<colgroup>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <ul>",
|
||||
"input": "<ul>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <del>",
|
||||
"input": "<del>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <iframe>",
|
||||
"input": "<iframe>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <pre>",
|
||||
"input": "<pre>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <figure>",
|
||||
"input": "<figure>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <ins>",
|
||||
"input": "<ins>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <tbody>",
|
||||
"input": "<tbody>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <html>",
|
||||
"input": "<html>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <nav>",
|
||||
"input": "<nav>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <details>",
|
||||
"input": "<details>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <samp>",
|
||||
"input": "<samp>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <map>",
|
||||
"input": "<map>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <nest>",
|
||||
"input": "<nest>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <object>",
|
||||
"input": "<object>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <a>",
|
||||
"input": "<a>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <footer>",
|
||||
"input": "<footer>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <i>",
|
||||
"input": "<i>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <m>",
|
||||
"input": "<m>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <rule>",
|
||||
"input": "<rule>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <q>",
|
||||
"input": "<q>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <command>",
|
||||
"input": "<command>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <time>",
|
||||
"input": "<time>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <audio>",
|
||||
"input": "<audio>",
|
||||
"fail-if": "unknown-start-tag"},
|
||||
|
||||
{"description": "allowed start tag <bdo>",
|
||||
"input": "<bdo>",
|
||||
"fail-if": "unknown-start-tag"}
|
||||
|
||||
]}
|
7
attic/vendor/plugins/HTML5lib/testdata/validator/style-scoped-attribute.test
vendored
Executable file
7
attic/vendor/plugins/HTML5lib/testdata/validator/style-scoped-attribute.test
vendored
Executable file
|
@ -0,0 +1,7 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "invalid style scoped attribute value 'inherit'",
|
||||
"input": "<style scoped=inherit>",
|
||||
"fail-unless": "invalid-boolean-value"}
|
||||
|
||||
]}
|
79
attic/vendor/plugins/HTML5lib/testdata/validator/tabindexattribute.test
vendored
Executable file
79
attic/vendor/plugins/HTML5lib/testdata/validator/tabindexattribute.test
vendored
Executable file
|
@ -0,0 +1,79 @@
|
|||
{"tests": [
|
||||
|
||||
{"description": "valid tabindex attribute value '-1'",
|
||||
"input": "<span tabindex=-1>",
|
||||
"fail-if": "invalid-integer-value"},
|
||||
|
||||
{"description": "valid tabindex attribute value '0'",
|
||||
"input": "<span tabindex=0>",
|
||||
"fail-if": "invalid-integer-value"},
|
||||
|
||||
{"description": "valid tabindex attribute value '1'",
|
||||
"input": "<span tabindex=1>",
|
||||
"fail-if": "invalid-integer-value"},
|
||||
|
||||
{"description": "valid tabindex attribute value '32768'",
|
||||
"input": "<span tabindex=32768>",
|
||||
"fail-if": "invalid-integer-value"},
|
||||
|
||||
{"description": "valid tabindex attribute value '-32768'",
|
||||
"input": "<span tabindex=-32768>",
|
||||
"fail-if": "invalid-integer-value"},
|
||||
|
||||
{"description": "valid tabindex attribute value with leading spaces",
|
||||
"input": "<span tabindex=' -32768'>",
|
||||
"fail-if": "invalid-integer-value"},
|
||||
|
||||
{"description": "valid tabindex attribute value with trailing spaces",
|
||||
"input": "<span tabindex='-32768 '>",
|
||||
"fail-if": "invalid-integer-value"},
|
||||
|
||||
{"description": "valid tabindex attribute value with trailing junk",
|
||||
"input": "<span tabindex='32768a'>",
|
||||
"fail-if": "invalid-integer-value"},
|
||||
|
||||
{"description": "valid tabindex attribute value with trailing junk and whitespace",
|
||||
"input": "<span tabindex='32768a '>",
|
||||
"fail-if": "invalid-integer-value"},
|
||||
|
||||
{"description": "valid tabindex attribute value with trailing whitespace and junk",
|
||||
"input": "<span tabindex='32768 a'>",
|
||||
"fail-if": "invalid-integer-value"},
|
||||
|
||||
{"description": "valid tabindex attribute value with leading spaces",
|
||||
"input": "<span tabindex=' 32768'>",
|
||||
"fail-if": "invalid-integer-value"},
|
||||
|
||||
{"description": "valid tabindex attribute value with leading spaces (with sign)",
|
||||
"input": "<span tabindex=' -32768'>",
|
||||
"fail-if": "invalid-integer-value"},
|
||||
|
||||
{"description": "invalid tabindex attribute value (blank)",
|
||||
"input": "<span tabindex>",
|
||||
"fail-unless": "attribute-value-can-not-be-blank"},
|
||||
|
||||
{"description": "invalid tabindex attribute value due to leading junk",
|
||||
"input": "<span tabindex=a1>",
|
||||
"fail-unless": "invalid-integer-value"},
|
||||
|
||||
{"description": "invalid tabindex attribute value due to two hyphens",
|
||||
"input": "<span tabindex=--1>",
|
||||
"fail-unless": "invalid-integer-value"},
|
||||
|
||||
{"description": "invalid tabindex attribute value due to non-numeric",
|
||||
"input": "<span tabindex=foo>",
|
||||
"fail-unless": "invalid-integer-value"},
|
||||
|
||||
{"description": "invalid tabindex attribute value due to positive sign",
|
||||
"input": "<span tabindex=+1>",
|
||||
"fail-unless": "invalid-integer-value"},
|
||||
|
||||
{"description": "invalid tabindex attribute value due to decimal point",
|
||||
"input": "<span tabindex=.1>",
|
||||
"fail-unless": "invalid-integer-value"},
|
||||
|
||||
{"description": "valid tabindex attribute value with trailing decimal point",
|
||||
"input": "<span tabindex=1.0>",
|
||||
"fail-if": "invalid-integer-value"}
|
||||
|
||||
]}
|
Loading…
Add table
Add a link
Reference in a new issue