| {"tests": [ |
| |
| {"description":"PLAINTEXT content model flag", |
| "initialStates":["PLAINTEXT state"], |
| "lastStartTag":"plaintext", |
| "input":"<head>&body;", |
| "output":[["Character", "<head>&body;"]]}, |
| |
| {"description":"End tag closing RCDATA or RAWTEXT", |
| "initialStates":["RCDATA state", "RAWTEXT state"], |
| "lastStartTag":"xmp", |
| "input":"foo</xmp>", |
| "output":[["Character", "foo"], ["EndTag", "xmp"]]}, |
| |
| {"description":"End tag closing RCDATA or RAWTEXT (case-insensitivity)", |
| "initialStates":["RCDATA state", "RAWTEXT state"], |
| "lastStartTag":"xmp", |
| "input":"foo</xMp>", |
| "output":[["Character", "foo"], ["EndTag", "xmp"]]}, |
| |
| {"description":"End tag closing RCDATA or RAWTEXT (ending with space)", |
| "initialStates":["RCDATA state", "RAWTEXT state"], |
| "lastStartTag":"xmp", |
| "input":"foo</xmp ", |
| "output":[["Character", "foo"], "ParseError"]}, |
| |
| {"description":"End tag closing RCDATA or RAWTEXT (ending with EOF)", |
| "initialStates":["RCDATA state", "RAWTEXT state"], |
| "lastStartTag":"xmp", |
| "input":"foo</xmp", |
| "output":[["Character", "foo</xmp"]]}, |
| |
| {"description":"End tag closing RCDATA or RAWTEXT (ending with slash)", |
| "initialStates":["RCDATA state", "RAWTEXT state"], |
| "lastStartTag":"xmp", |
| "input":"foo</xmp/", |
| "output":[["Character", "foo"], "ParseError"]}, |
| |
| {"description":"End tag not closing RCDATA or RAWTEXT (ending with left-angle-bracket)", |
| "initialStates":["RCDATA state", "RAWTEXT state"], |
| "lastStartTag":"xmp", |
| "input":"foo</xmp<", |
| "output":[["Character", "foo</xmp<"]]}, |
| |
| {"description":"End tag with incorrect name in RCDATA or RAWTEXT", |
| "initialStates":["RCDATA state", "RAWTEXT state"], |
| "lastStartTag":"xmp", |
| "input":"</foo>bar</xmp>", |
| "output":[["Character", "</foo>bar"], ["EndTag", "xmp"]]}, |
| |
| {"description":"Partial end tags leading straight into partial end tags", |
| "initialStates":["RCDATA state", "RAWTEXT state"], |
| "lastStartTag":"xmp", |
| "input":"</xmp</xmp</xmp>", |
| "output":[["Character", "</xmp</xmp"], ["EndTag", "xmp"]]}, |
| |
| {"description":"End tag with incorrect name in RCDATA or RAWTEXT (starting like correct name)", |
| "initialStates":["RCDATA state", "RAWTEXT state"], |
| "lastStartTag":"xmp", |
| "input":"</foo>bar</xmpaar>", |
| "output":[["Character", "</foo>bar</xmpaar>"]]}, |
| |
| {"description":"End tag closing RCDATA or RAWTEXT, switching back to PCDATA", |
| "initialStates":["RCDATA state", "RAWTEXT state"], |
| "lastStartTag":"xmp", |
| "input":"foo</xmp></baz>", |
| "output":[["Character", "foo"], ["EndTag", "xmp"], ["EndTag", "baz"]]}, |
| |
| {"description":"RAWTEXT w/ something looking like an entity", |
| "initialStates":["RAWTEXT state"], |
| "lastStartTag":"xmp", |
| "input":"&foo;", |
| "output":[["Character", "&foo;"]]}, |
| |
| {"description":"RCDATA w/ an entity", |
| "initialStates":["RCDATA state"], |
| "lastStartTag":"textarea", |
| "input":"<", |
| "output":[["Character", "<"]]} |
| |
| ]} |