Test creation of each type of Node and check intial values

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Attribute creation using createElement on an HTML doc:
PASS attr.nodeName is 'foo'
PASS attr.name is 'foo'
FAIL attr.localName should be null (of type object). Was foo (of type string).
PASS attr.namespaceURI is null
PASS attr.prefix is null
PASS attr.nodeValue is ''
PASS attr.value is ''
PASS attr.attributes is null
Attribute creation using createElementNS on an HTML doc:
PASS attr.nodeName is 'example:foo'
PASS attr.name is 'example:foo'
PASS attr.localName is 'foo'
PASS attr.namespaceURI is 'http://www.example.com'
PASS attr.prefix is 'example'
PASS attr.nodeValue is ''
PASS attr.value is ''
PASS attr.attributes is null
Attribute creation using createElement on an XHTML doc:
PASS attr.nodeName is 'foo'
PASS attr.name is 'foo'
FAIL attr.localName should be null (of type object). Was foo (of type string).
PASS attr.namespaceURI is null
PASS attr.prefix is null
PASS attr.nodeValue is ''
PASS attr.value is ''
PASS attr.attributes is null
Attribute creation using createElementNS on an XHTML doc:
PASS attr.nodeName is 'example:foo'
PASS attr.name is 'example:foo'
PASS attr.localName is 'foo'
PASS attr.namespaceURI is 'http://www.example.com'
PASS attr.prefix is 'example'
PASS attr.nodeValue is ''
PASS attr.value is ''
PASS attr.attributes is null
PASS comment.nodeName is '#comment'
PASS comment.localName is null
PASS comment.namespaceURI is null
PASS comment.prefix is null
PASS comment.nodeValue is 'foo'
PASS comment.data is 'foo'
PASS comment.attributes is null
PASS document.createCDATASection('foo') threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9.
PASS cdata.nodeName is '#cdata-section'
PASS cdata.localName is null
PASS cdata.namespaceURI is null
PASS cdata.prefix is null
PASS cdata.nodeValue is 'foo'
PASS cdata.data is 'foo'
PASS cdata.attributes is null
PASS fragment.nodeName is '#document-fragment'
PASS fragment.localName is null
PASS fragment.namespaceURI is null
PASS fragment.prefix is null
PASS fragment.nodeValue is null
PASS fragment.attributes is null
PASS doc.nodeName is '#document'
PASS doc.localName is null
FAIL doc.namespaceURI should be http://www.w3.org/1999/xhtml (of type string). Was null (of type object).
PASS doc.prefix is null
PASS doc.nodeValue is null
PASS doc.attributes is null
PASS doctype.nodeName is 'svg'
PASS doctype.name is 'svg'
PASS doctype.localName is null
PASS doctype.namespaceURI is null
PASS doctype.prefix is null
PASS doctype.nodeValue is null
PASS doctype.attributes is null
Element creation using createElement on an HTML doc:
PASS element.nodeName is 'PRE'
FAIL element.localName should be null (of type object). Was pre (of type string).
FAIL element.namespaceURI should be null (of type object). Was http://www.w3.org/1999/xhtml (of type string).
PASS element.prefix is null
PASS element.nodeValue is null
PASS element.attributes.toString() is '[object NamedNodeMap]'
Prefixed element creation using createElementNS on an HTML doc:
PASS element.nodeName is 'html:pre'
PASS element.localName is 'pre'
PASS element.namespaceURI is 'http://www.w3.org/1999/xhtml'
PASS element.prefix is 'html'
PASS element.nodeValue is null
PASS element.attributes.toString() is '[object NamedNodeMap]'
SVG Element creation using createElementNS on an HTML doc:
PASS element.nodeName is 'svg'
PASS element.localName is 'svg'
PASS element.namespaceURI is 'http://www.w3.org/2000/svg'
PASS element.prefix is null
PASS element.nodeValue is null
PASS element.attributes.toString() is '[object NamedNodeMap]'
Unknown Element creation using createElementNS on an HTML doc:
PASS element.nodeName is 'foo:svg'
PASS element.localName is 'svg'
PASS element.namespaceURI is 'http://www.webkit.org'
PASS element.prefix is 'foo'
PASS element.nodeValue is null
PASS element.attributes.toString() is '[object NamedNodeMap]'
Element creation using createElementNS on an HTML doc:
FAIL element.nodeName should be pre. Was PRE.
PASS element.localName is 'pre'
PASS element.namespaceURI is 'http://www.w3.org/1999/xhtml'
PASS element.prefix is null
PASS element.nodeValue is null
PASS element.attributes.toString() is '[object NamedNodeMap]'
Element creation using createElement on an XHTML doc:
PASS element.nodeName is 'pre'
FAIL element.localName should be null (of type object). Was pre (of type string).
FAIL element.namespaceURI should be null (of type object). Was http://www.w3.org/1999/xhtml (of type string).
PASS element.prefix is null
PASS element.nodeValue is null
PASS element.attributes.toString() is '[object NamedNodeMap]'
Element creation using createElementNS on an XHTML doc:
PASS element.nodeName is 'html:pre'
PASS element.localName is 'pre'
PASS element.namespaceURI is 'http://www.w3.org/1999/xhtml'
PASS element.prefix is 'html'
PASS element.nodeValue is null
PASS element.attributes.toString() is '[object NamedNodeMap]'
PASS document.createEntityReference('gt') threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9.
PASS entityReference.nodeName is 'gt'
PASS entityReference.localName is null
PASS entityReference.namespaceURI is null
PASS entityReference.prefix is null
PASS entityReference.nodeValue is null
PASS entityReference.attributes is null
PASS document.createProcessingInstruction('xml-stylesheet', 'type="text/xsl" href="missing.xsl"') threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9.
PASS processingInstruction.nodeName is 'xml-stylesheet'
PASS processingInstruction.localName is null
PASS processingInstruction.namespaceURI is null
PASS processingInstruction.prefix is null
PASS processingInstruction.nodeValue is 'type="text/xsl" href="missing.xsl"'
PASS processingInstruction.attributes is null
PASS processingInstruction.target is 'xml-stylesheet'
PASS processingInstruction.data is 'type="text/xsl" href="missing.xsl"'
PASS text.nodeName is '#text'
PASS text.localName is null
PASS text.namespaceURI is null
PASS text.prefix is null
PASS text.nodeValue is 'foo'
PASS text.data is 'foo'
PASS text.attributes is null
PASS successfullyParsed is true

TEST COMPLETE

