a6429f8c22
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.
368 lines
9.9 KiB
Plaintext
368 lines
9.9 KiB
Plaintext
{"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": ""}]]}
|
|
|
|
]}
|