parser/xml/test/unit/test_xml_declaration.js

Wed, 31 Dec 2014 13:27:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 13:27:57 +0100
branch
TOR_BUG_3246
changeset 6
8bccb770b82d
permissions
-rw-r--r--

Ignore runtime configuration files generated during quality assurance.

michael@0 1 function noop() {}
michael@0 2
michael@0 3 function run_test() {
michael@0 4 var evts;
michael@0 5
michael@0 6 var contentHandler = {
michael@0 7 attrs: null,
michael@0 8 startDocument: function() {
michael@0 9 evts.push("startDocument");
michael@0 10 },
michael@0 11 endDocument: noop,
michael@0 12
michael@0 13 startElement: function startElement() {
michael@0 14 evts.push("startElement");
michael@0 15 },
michael@0 16
michael@0 17 endElement: noop,
michael@0 18 characters: noop,
michael@0 19 processingInstruction: noop,
michael@0 20 ignorableWhitespace: noop,
michael@0 21 startPrefixMapping: noop,
michael@0 22 endPrefixMapping: noop
michael@0 23 };
michael@0 24
michael@0 25 function XMLDeclHandler(version, encoding, standalone) {
michael@0 26 evts.splice(evts.length, 0, version, encoding, standalone);
michael@0 27 }
michael@0 28
michael@0 29 const nsISAXXMLReader = Components.interfaces.nsISAXXMLReader;
michael@0 30 var saxReader = Components.classes["@mozilla.org/saxparser/xmlreader;1"]
michael@0 31 .createInstance(nsISAXXMLReader);
michael@0 32 saxReader.contentHandler = contentHandler;
michael@0 33 saxReader.declarationHandler = XMLDeclHandler;
michael@0 34
michael@0 35 evts = [];
michael@0 36 saxReader.parseFromString("<root/>", "application/xml");
michael@0 37 do_check_eq(evts.length, 2);
michael@0 38 do_check_eq(evts[0], "startDocument");
michael@0 39 do_check_eq(evts[1], "startElement");
michael@0 40
michael@0 41 evts = [];
michael@0 42 saxReader.parseFromString("<?xml version='1.0'?><root/>", "application/xml");
michael@0 43 do_check_eq(evts.length, 5);
michael@0 44 do_check_eq(evts[0], "startDocument");
michael@0 45 do_check_eq(evts[1], "1.0");
michael@0 46 do_check_eq(evts[2], "");
michael@0 47 do_check_false(evts[3]);
michael@0 48 do_check_eq(evts[4], "startElement");
michael@0 49
michael@0 50 evts = [];
michael@0 51 saxReader.parseFromString("<?xml version='1.0' encoding='UTF-8'?><root/>", "application/xml");
michael@0 52 do_check_eq(evts.length, 5);
michael@0 53 do_check_eq(evts[0], "startDocument");
michael@0 54 do_check_eq(evts[1], "1.0");
michael@0 55 do_check_eq(evts[2], "UTF-8");
michael@0 56 do_check_false(evts[3]);
michael@0 57 do_check_eq(evts[4], "startElement");
michael@0 58
michael@0 59 evts = [];
michael@0 60 saxReader.parseFromString("<?xml version='1.0' standalone='yes'?><root/>", "application/xml");
michael@0 61 do_check_eq(evts.length, 5);
michael@0 62 do_check_eq(evts[0], "startDocument");
michael@0 63 do_check_eq(evts[1], "1.0");
michael@0 64 do_check_eq(evts[2], "");
michael@0 65 do_check_true(evts[3]);
michael@0 66 do_check_eq(evts[4], "startElement");
michael@0 67
michael@0 68 evts = [];
michael@0 69 saxReader.parseFromString("<?xml version='1.0' encoding='UTF-8' standalone='yes'?><root/>", "application/xml");
michael@0 70 do_check_eq(evts.length, 5);
michael@0 71 do_check_eq(evts[0], "startDocument");
michael@0 72 do_check_eq(evts[1], "1.0");
michael@0 73 do_check_eq(evts[2], "UTF-8");
michael@0 74 do_check_true(evts[3]);
michael@0 75 do_check_eq(evts[4], "startElement");
michael@0 76
michael@0 77 evts = [];
michael@0 78 // Not well-formed
michael@0 79 saxReader.parseFromString("<?xml encoding='UTF-8'?><root/>", "application/xml");
michael@0 80 do_check_eq(evts.length, 1);
michael@0 81 do_check_eq(evts[0], "startDocument");
michael@0 82 }

mercurial