parser/xml/test/unit/test_namespace_support.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.

     1 function noop() {}
     3 function run_test() {
     4   var contentHandler = {
     5     attrs: null,
     6     reset: function() {
     7         this.attrs = [];
     8     },
     9     startDocument: noop,
    10     endDocument: noop,
    12     startElement: function startElement(aNamespaceURI, aLocalName, aNodeName, aAttrs) {
    13       for (var i = 0; i < aAttrs.length; i++) 
    14         this.attrs.push(aAttrs.getQName(i));
    15     },
    17     endElement: noop,
    18     characters: noop,
    19     processingInstruction: noop,
    20     ignorableWhitespace: noop,
    21     startPrefixMapping: noop,
    22     endPrefixMapping: noop
    23   };
    25   const nsISAXXMLReader = Components.interfaces.nsISAXXMLReader;
    26   const src = "<a:x xmlns:a='foo' y='bar'/>";
    27   const NS_PREFIX = "http://xml.org/sax/features/namespace-prefixes";
    29   var saxReader = Components.classes["@mozilla.org/saxparser/xmlreader;1"]
    30                             .createInstance(nsISAXXMLReader);
    31   do_check_false(saxReader.getFeature(NS_PREFIX));
    32   saxReader.contentHandler = contentHandler;
    33   contentHandler.reset();
    34   saxReader.parseFromString(src, "application/xml");
    35   do_check_eq(contentHandler.attrs.length, 1);
    36   do_check_eq(contentHandler.attrs[0], "y");
    38   saxReader.setFeature(NS_PREFIX, true);
    39   do_check_true(saxReader.getFeature(NS_PREFIX));
    40   contentHandler.reset();
    41   saxReader.parseFromString(src, "application/xml");
    42   do_check_eq(contentHandler.attrs.length, 2);
    43   do_check_eq(contentHandler.attrs[0], "xmlns:a");
    44   do_check_eq(contentHandler.attrs[1], "y");
    46   saxReader.setFeature(NS_PREFIX, false);
    47   do_check_false(saxReader.getFeature(NS_PREFIX));
    48   contentHandler.reset();
    49   saxReader.parseFromString(src, "application/xml");
    50   do_check_eq(contentHandler.attrs.length, 1);
    51   do_check_eq(contentHandler.attrs[0], "y");
    52 }

mercurial