{"tests": [ {"description": "proper attribute value escaping", "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "test \"with\" ""}]]], "expected": ["<span title='test \"with\" &quot;'>"] }, {"description": "proper attribute value non-quoting", "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo"}]]], "expected": ["<span title=foo>"], "xhtml": ["<span title=\"foo\">"] }, {"description": "proper attribute value non-quoting (with <)", "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo<bar"}]]], "expected": ["<span title=foo<bar>"], "xhtml": ["<span title=\"foo<bar\">"] }, {"description": "proper attribute value quoting (with =)", "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo=bar"}]]], "expected": ["<span title=\"foo=bar\">"] }, {"description": "proper attribute value quoting (with >)", "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo>bar"}]]], "expected": ["<span title=\"foo>bar\">"] }, {"description": "proper attribute value quoting (with \")", "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\"bar"}]]], "expected": ["<span title='foo\"bar'>"] }, {"description": "proper attribute value quoting (with ')", "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo'bar"}]]], "expected": ["<span title=\"foo'bar\">"] }, {"description": "proper attribute value quoting (with both \" and ')", "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo'bar\"baz"}]]], "expected": ["<span title=\"foo'bar"baz\">"] }, {"description": "proper attribute value quoting (with space)", "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo bar"}]]], "expected": ["<span title=\"foo bar\">"] }, {"description": "proper attribute value quoting (with tab)", "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\tbar"}]]], "expected": ["<span title=\"foo\tbar\">"] }, {"description": "proper attribute value quoting (with LF)", "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\nbar"}]]], "expected": ["<span title=\"foo\nbar\">"] }, {"description": "proper attribute value quoting (with CR)", "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\rbar"}]]], "expected": ["<span title=\"foo\rbar\">"] }, {"description": "proper attribute value non-quoting (with linetab)", "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\u000Bbar"}]]], "expected": ["<span title=foo\u000Bbar>"], "xhtml": ["<span title=\"foo\u000Bbar\">"] }, {"description": "proper attribute value quoting (with form feed)", "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "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", "http://www.w3.org/1999/xhtml", "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", "http://www.w3.org/1999/xhtml", "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>"] }, {"description": "HTML 4.01 DOCTYPE", "input": [["Doctype", "HTML", "-//W3C//DTD HTML 4.01//EN", "http://www.w3.org/TR/html4/strict.dtd"]], "expected": ["<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">"] }, {"description": "HTML 4.01 DOCTYPE without system identifer", "input": [["Doctype", "HTML", "-//W3C//DTD HTML 4.01//EN"]], "expected": ["<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">"] }, {"description": "IBM DOCTYPE without public identifer", "input": [["Doctype", "html", "", "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"]], "expected": ["<!DOCTYPE html SYSTEM \"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd\">"] } ]}