--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/core/XMLv2__W3CDOM3CoreTests.st Tue May 12 12:20:53 2015 +0100
@@ -0,0 +1,24567 @@
+"{ Package: 'stx:goodies/xmlsuite/core' }"
+
+"{ NameSpace: XMLv2 }"
+
+AbstractW3CDOM3TestCase subclass:#W3CDOM3CoreTests
+ instanceVariableNames:'doc'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'XML Suite-Tests W3C'
+!
+
+
+!W3CDOM3CoreTests class methodsFor:'defaults'!
+
+module
+ ^'Core'
+! !
+
+!W3CDOM3CoreTests methodsFor:'W3C tests'!
+
+test_attrgetschematypeinfo01
+ "
+Call getSchemaTypeInfo on title attribute for the first acronym element.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Attr-schemaTypeInfo
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeName
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeNamespace
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ typeNS "String"
+ typeName "String"
+ |
+ ^self. "Validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:0.
+ attr := acronymElem getAttributeNode:'title'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'CDATA' ).
+ typeNS := typeInfo typeNamespace.
+ self assert: ( typeNS = 'http://www.w3.org/TR/REC-xml' ).
+
+!
+
+test_attrgetschematypeinfo02
+ "
+Call getSchemaTypeInfo on id attribute for the third acronym element.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Attr-schemaTypeInfo
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeName
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeNamespace
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ typeNS "String"
+ typeName "String"
+ |
+ ^self. "Validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ attr := acronymElem getAttributeNode:'id'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'ID' ).
+ typeNS := typeInfo typeNamespace.
+ self assert: ( typeNS = 'http://www.w3.org/TR/REC-xml' ).
+
+!
+
+test_attrgetschematypeinfo03
+ "
+Call getSchemaTypeInfo on title attribute for the first acronym element.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Attr-schemaTypeInfo
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeName
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeNamespace
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ typeNS "String"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:0.
+ attr := acronymElem getAttributeNode:'title'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'string' ).
+ typeNS := typeInfo typeNamespace.
+ self assert: ( typeNS = 'http://www.w3.org/2001/XMLSchema' ).
+
+!
+
+test_attrgetschematypeinfo04
+ "
+Call getSchemaTypeInfo on id attribute for the third acronym element.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Attr-schemaTypeInfo
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeName
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeNamespace
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ typeNS "String"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ attr := acronymElem getAttributeNode:'id'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'ID' ).
+ typeNS := typeInfo typeNamespace.
+ self assert: ( typeNS = 'http://www.w3.org/2001/XMLSchema' ).
+
+!
+
+test_attrgetschematypeinfo05
+ "
+Call getSchemaTypeInfo on class attribute for the third acronym element.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Attr-schemaTypeInfo
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeName
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeNamespace
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ typeNS "String"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ attr := acronymElem getAttributeNode:'class'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'classType' ).
+ typeNS := typeInfo typeNamespace.
+ self assert: ( typeNS = 'http://www.w3.org/1999/xhtml' ).
+
+!
+
+test_attrgetschematypeinfo06
+ "
+Attr.schemaTypeInfo should return null if not validating or schema validating.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Attr-schemaTypeInfo
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeName
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeNamespace
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ elem "Element"
+ attr "Attr"
+ typeInfo "TypeInfo"
+ typeName "String"
+ typeNS "String"
+ |
+ "implementationAttribute not supported: validating"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_nodtdstaff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:0.
+ attr := acronymElem getAttributeNode:'title'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: typeName isNil.
+ typeNS := typeInfo typeNamespace.
+ self assert: typeNS isNil.
+
+!
+
+test_attrgetschematypeinfo07
+ "
+ The getSchemaTypeInfo method retrieves the type information associated with this attribute.
+
+ Load a valid document with an XML Schema.
+
+ Invoke getSchemaTypeInfo method on an attribute having [type definition] property. Expose {name} and {target namespace}
+ properties of the [type definition] property. Verity that the typeName and typeNamespace of the title attribute's
+ schemaTypeInfo are correct. getSchemaTypeInfo on the 'id' attribute of the fourth 'acronym' element
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Attr-schemaTypeInfo
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acElem "Element"
+ attr "Attr"
+ attrTypeInfo "TypeInfo"
+ typeName "String"
+ typeNamespace "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acElem := elemList item:3.
+ attr := acElem getAttributeNode:'id'.
+ attrTypeInfo := attr schemaTypeInfo.
+ self assert: attrTypeInfo notNil.
+ typeName := attrTypeInfo typeName.
+ typeNamespace := attrTypeInfo typeNamespace.
+ self assert: ( typeName = 'ID' ).
+ self assert: ( typeNamespace = 'http://www.w3.org/2001/XMLSchema' ).
+
+!
+
+test_attrgetschematypeinfo08
+ "
+ The getSchemaTypeInfo method retrieves the type information associated with this attribute.
+
+ Load a valid document with an XML Schema.
+ Invoke getSchemaTypeInfo method on an attribute having [type definition] property. Expose {name} and {target namespace}
+ properties of the [type definition] property. Verity that the typeName and typeNamespace of the 'title' attribute's (of first 'acronym' element)
+ schemaTypeInfo are correct.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Attr-schemaTypeInfo
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acElem "Element"
+ attr "Attr"
+ attrTypeInfo "TypeInfo"
+ typeName "String"
+ typeNamespace "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acElem := elemList item:0.
+ attr := acElem getAttributeNode:'title'.
+ attrTypeInfo := attr schemaTypeInfo.
+ typeName := attrTypeInfo typeName.
+ typeNamespace := attrTypeInfo typeNamespace.
+ self assert: ( typeName = 'string' ).
+ self assert: ( typeNamespace = 'http://www.w3.org/2001/XMLSchema' ).
+
+!
+
+test_attrisid01
+ "
+ Retrieve the third acronyms element's class attribute, whose type is not ID.
+ Invoke isID on the class attribute, this should return false.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Attr-isId
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ attr := acronymElem getAttributeNode:'class'.
+ id := attr isId.
+ self deny: id.
+
+!
+
+test_attrisid02
+ "
+ Invoke setIdAttribute on the third acronym element's new attribute and set
+ isID=true. Verify by calling isID on the new attribute and check if the
+ value returned is true.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Attr-isId
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ xmlNS "String"
+ |
+ id := false.
+ xmlNS := 'http://www.w3.org/XML/1998/namespace'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ acronymElem setAttribute: 'xml:lang' ns: xmlNS value: 'FR-fr'.
+ acronymElem setIdAttribute: 'lang' ns: xmlNS isId:true.
+ attr := acronymElem getAttributeNode: 'lang' ns: xmlNS.
+ id := attr isId.
+ self assert: id.
+
+!
+
+test_attrisid03
+ "
+ Invoke setIdAttribute(false) on a newly created attribute and then check Attr.isID.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Attr-isId
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ xmlNS "String"
+ |
+ id := false.
+ xmlNS := 'http://www.w3.org/XML/1998/namespace'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ acronymElem setAttribute: 'xml:lang' ns: xmlNS value: 'FR-fr'.
+ acronymElem setIdAttribute: 'lang' ns: xmlNS isId:false.
+ attr := acronymElem getAttributeNode: 'lang' ns: xmlNS.
+ id := attr isId.
+ self deny: id.
+
+!
+
+test_attrisid04
+ "
+Attr.isID should return true for the id attribute on the fourth acronym node
+since its type is ID.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Attr-isId
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ clonedacronymElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ ^self. "Validation not supported"
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:3.
+ attr := acronymElem getAttributeNode:'id'.
+ id := attr isId.
+ self assert: id.
+
+!
+
+test_attrisid05
+ "
+ Retrieve the fourth acronym element's id attribute, whose type is ID.
+ Deep clone the element node and append it as a sibling of the acronym node.
+ We now have two id attributes of type ID with identical values.
+ Invoke isID on the class attribute, should this return true???
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Attr-isId
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ clonedacronymElem "Element"
+ acronymParentElem "Element"
+ appendedNode "Node"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ ^self. "Validation not supported"
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:3.
+ acronymParentElem := acronymElem parentNode.
+ clonedacronymElem := acronymElem cloneNode:true.
+ appendedNode := acronymParentElem appendChild:clonedacronymElem.
+ attr := acronymElem getAttributeNode:'id'.
+ id := attr isId.
+ self assert: id.
+
+!
+
+test_attrisid06
+ "
+ Invoke isId on a new Attr node. Check if the value returned is false.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Attr-isId
+ "
+ |
+ doc "Document"
+ attr "Attr"
+ id "Boolean"
+ |
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ attr := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ id := attr isId.
+ self deny: id.
+
+!
+
+test_attrisid07
+ "
+ The method isId returns whether this attribute is known to be of type ID or not.
+
+ Add a new attribute of type ID to the third acronym element node of this document. Verify that the method
+ isId returns true. The use of Element.setIdAttributeNS() makes 'isId' a user-determined ID attribute.
+ Import the newly created attribute node into this document.
+ Since user data assocated to the imported node is not carried over, verify that the method isId
+ returns false on the imported attribute node.
+
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Attr-isId
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ attrImported "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym' ns: '*'.
+ acronymElem := elemList item:2.
+ acronymElem setAttribute: 'dom3:newAttr' ns: 'http://www.w3.org/DOM' value: 'null'.
+ acronymElem setIdAttribute: 'newAttr' ns: 'http://www.w3.org/DOM' isId:true.
+ attr := acronymElem getAttributeNode: 'newAttr' ns: 'http://www.w3.org/DOM'.
+ id := attr isId.
+ self assert: id.
+ attrImported := doc importNode:attr deep:false.
+ id := attrImported isId.
+ self deny: id.
+
+!
+
+test_canonicalform01
+ "
+Normalize document with 'canonical-form' set to true, check that
+entity references are expanded and unused entity declaration are maintained.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-canonical-form
+ "
+ |
+ doc "Document"
+ pList "NodeList"
+ pElem "Element"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ canSetValidate "Boolean"
+ errorMonitor "DOMErrorMonitor"
+ child "Node"
+ childName "String"
+ entRef "EntityReference"
+ childValue "String"
+ entities "NamedNodeMap"
+ ent2 "Entity"
+ doctype "DocumentType"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'canonical-form' value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_canonicalform02
+ "
+Normalize document with normalize-characters set to false, check that
+characters are not normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-canonical-form
+ Subject http://www.w3.org/TR/2003/WD-charmod-20030822/
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ pList "NodeList"
+ pElem "Element"
+ text "Text"
+ textValue "String"
+ retval "Node"
+ canSet "Boolean"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'canonical-form' value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_canonicalform03
+ "
+Normalize a document with the 'canonical-form' parameter set to true and
+check that a CDATASection has been eliminated.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-canonical-form
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elemName "Element"
+ cdata "CDATASection"
+ text "Text"
+ nodeName "String"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ canSet "Boolean"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ "implementationAttribute not supported: coalescing"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ elemName := elemList item:1.
+ cdata := elemName lastChild.
+ nodeName := cdata nodeName.
+ self assert: ( nodeName = '#cdata-section' ).
+ domConfig := doc domConfig.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ canSet := domConfig canSetParameter: 'canonical-form' value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_canonicalform04
+ "
+Normalize document with canonical-form set to true, check that
+namespace declaration attributes are maintained.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-canonical-form
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ xmlnsAttr "Attr"
+ canSet "Boolean"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'canonical-form' value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_canonicalform05
+ "
+Add a L1 element to a L2 namespace aware document and perform namespace normalization. Should result
+in an error.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/namespaces-algorithms#normalizeDocumentAlgo
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-canonical-form
+ "
+ |
+ doc "Document"
+ elem "Element"
+ domConfig "DOMConfiguration"
+ pList "NodeList"
+ newChild "Element"
+ retval "Element"
+ errorMonitor "DOMErrorMonitor"
+ errors "List"
+ error "DOMError"
+ errorCount "SmallInteger"
+ severity "SmallInteger"
+ problemNode "Node"
+ location "DOMLocator"
+ lineNumber "SmallInteger"
+ columnNumber "SmallInteger"
+ byteOffset "SmallInteger"
+ utf16Offset "SmallInteger"
+ uri "String"
+ type "String"
+ message "String"
+ relatedException "DOMObject"
+ relatedData "DOMObject"
+ length "SmallInteger"
+ canSet "Boolean"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ errorCount := 0.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ pList := doc getElementsByTagName: 'p'.
+ elem := pList item:0.
+ newChild := doc createElement:'br'.
+ retval := elem appendChild:newChild.
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'canonical-form' value: true.
+ "if"
+ (canSet) ifTrue: [
+ severity := error severity.
+ "if"
+ ( severity = 2 ) ifTrue: [
+ self assert:false description:'Method "greater" is not supported yet'.
+ ].
+ ].
+
+!
+
+test_canonicalform06
+ "
+Create a document with an XML 1.1 valid but XML 1.0 invalid element and
+normalize document with canonical-form set to true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-canonical-form
+ "
+ |
+ domImpl "DOMImplementation"
+ nullString "String"
+ nullDoctype "DocumentType"
+ doc "Document"
+ elem "Element"
+ retval "Node"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ errors "List"
+ error "DOMError"
+ severity "SmallInteger"
+ type "String"
+ locator "DOMLocator"
+ relatedNode "Node"
+ canSet "Boolean"
+ |
+ nullString := nil.
+ nullDoctype := nil.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: nullString qualifiedName: nullString doctype: nullDoctype.
+ "assertDOMException..."
+ self should:[
+ elem := doc createElement:'LegalNameࢎ' ns:'http://www.example.org/domts/wellformed01'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException INVALID_CHARACTER_ERR).
+ "end of assertDOMException..."
+ "try"
+ [
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+ elem := doc createElement:'LegalNameࢎ' ns:'http://www.example.org/domts/wellformed01'.
+ retval := doc appendChild:elem.
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'canonical-form' value: true.
+ "if"
+ (canSet) ifTrue: [
+ severity := error severity.
+ self assert: ( severity = 2 ).
+ type := error type.
+ self assert: ( type = 'wf-invalid-character-in-node-name' ).
+ locator := error location.
+ relatedNode := locator relatedNode.
+ self assert: relatedNode == elem.
+ ].
+
+!
+
+test_canonicalform07
+ "
+Normalize document with canonical-form set to true and validation set to true, check that
+whitespace in element content is preserved.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-canonical-form
+ "
+ |
+ doc "Document"
+ bodyList "NodeList"
+ body "Element"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ canSetValidate "Boolean"
+ errorMonitor "DOMErrorMonitor"
+ child "Node"
+ childName "String"
+ text "Text"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'canonical-form' value: true.
+ "if"
+ (canSet) ifTrue: [
+ ^self. "ignoringElementContentWhitespace supported"
+ bodyList := doc getElementsByTagName: 'body'.
+ body := bodyList item:0.
+ child := body firstChild.
+ text := doc createTextNode:' '.
+ body insert:text before: child.
+ ].
+
+!
+
+test_canonicalform08
+ "
+Normalize document based on section 3.1 with canonical-form set to true and check normalized document.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-canonical-form
+ "
+ |
+ doc "Document"
+ bodyList "NodeList"
+ body "Element"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ canSetValidate "Boolean"
+ errorMonitor "DOMErrorMonitor"
+ node "Node"
+ nodeName "String"
+ nodeValue "String"
+ nodeType "SmallInteger"
+ length "SmallInteger"
+ text "Text"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ "implementationAttribute not supported: validating"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'canonicalform01').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'canonical-form' value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_canonicalform09
+ "
+Normalize document based on section 3.1 with canonical-form set to true
+and comments to false and check normalized document.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-canonical-form
+ "
+ |
+ doc "Document"
+ bodyList "NodeList"
+ body "Element"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ canSetValidate "Boolean"
+ errorMonitor "DOMErrorMonitor"
+ node "Node"
+ nodeName "String"
+ nodeValue "String"
+ nodeType "SmallInteger"
+ length "SmallInteger"
+ text "Text"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ "implementationAttribute not supported: validating"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'canonicalform01').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'canonical-form' value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_canonicalform10
+ "
+Check elimination of unnecessary namespace prefixes when
+normalized with canonical-form = true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-canonical-form
+ "
+ |
+ doc "Document"
+ divList "NodeList"
+ div "Element"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ errorMonitor "DOMErrorMonitor"
+ node "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ "implementationAttribute not supported: validating"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'canonicalform03').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'canonical-form' value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_canonicalform11
+ "
+Check that default attributes are made explicitly specified.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-canonical-form
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ errorMonitor "DOMErrorMonitor"
+ attr "Attr"
+ attrValue "String"
+ attrSpecified "Boolean"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ "implementationAttribute not supported: validating"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'canonicalform03').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'canonical-form' value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_canonicalform12
+ "
+Normalize document with 'canonical-form' set to true, check that
+DocumentType nodes are removed.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-canonical-form
+ "
+ |
+ doc "Document"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ errorMonitor "DOMErrorMonitor"
+ doctype "DocumentType"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'canonical-form' value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_cdatasections01
+ "
+Normalize a document using Node.normalize and check that
+the value of the 'cdata-sections' parameter is ignored.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-normalize
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-cdata-sections
+ "
+ |
+ doc "Document"
+ elem "Element"
+ newCdata "CDATASection"
+ cdata "CDATASection"
+ text "Node"
+ nodeName "String"
+ nodeValue "String"
+ appendedChild "Node"
+ domConfig "DOMConfiguration"
+ pList "NodeList"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ pList := doc getElementsByTagName: 'p'.
+ elem := pList item:0.
+ newCdata := doc createCDATASection:'CDATA'.
+ appendedChild := elem appendChild:newCdata.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'cdata-sections' value: false.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalize.
+ errorMonitor assertLowerSeverityFor: self message:'normalizationError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ elem := pList item:0.
+ cdata := elem lastChild.
+ nodeName := cdata nodeName.
+ self assert: ( nodeName = '#cdata-section' ).
+
+!
+
+test_checkcharacternormalization01
+ "
+Normalize document with check-character-normalization set to false, check that
+no errors are dispatched.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-check-character-normalization
+ Subject http://www.w3.org/TR/2003/WD-charmod-20030822/
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ pList "NodeList"
+ pElem "Element"
+ text "Text"
+ textValue "String"
+ retval "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ domConfig setParameter: 'check-character-normalization' value: false.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ text := doc createTextNode:'suçon'.
+ retval := pElem appendChild:text.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalizeError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ text := pElem firstChild.
+ textValue := text nodeValue.
+ self assert: ( textValue = 'barsuçon' ).
+
+!
+
+test_checkcharacternormalization02
+ "
+Normalize document with check-character-normalization set to true, check that
+non-normalized characters are signaled.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-check-character-normalization
+ Subject http://www.w3.org/TR/2003/WD-charmod-20030822/
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ pList "NodeList"
+ pElem "Element"
+ text "Text"
+ textValue "String"
+ retval "Node"
+ canSet "Boolean"
+ errors "List"
+ error "DOMError"
+ severity "SmallInteger"
+ locator "DOMLocator"
+ relatedNode "Node"
+ errorCount "SmallInteger"
+ errorType "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ errorCount := 0.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'check-character-normalization' value: true.
+ "if"
+ (canSet) ifTrue: [
+ severity := error severity.
+ "if"
+ ( severity = 2 ) ifTrue: [
+ ].
+ ].
+
+!
+
+test_checkcharacternormalization03
+ "
+Normalize document using Node.normalize checking that check-character-normalization
+is ignored.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-normalize
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-check-character-normalization
+ Subject http://www.w3.org/TR/2003/WD-charmod-20030822/
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ pList "NodeList"
+ pElem "Element"
+ text "Text"
+ textValue "String"
+ retval "Node"
+ canSet "Boolean"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'check-character-normalization' value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_comments01
+ "
+Check that Node.normalize ignores the setting of configuration parameter 'comments'.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-normalize
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-comments
+ "
+ |
+ doc "Document"
+ elem "Element"
+ newComment "Comment"
+ lastChild "Node"
+ text "Text"
+ nodeName "String"
+ appendedChild "Node"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ pList "NodeList"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ pList := doc getElementsByTagName: 'p'.
+ elem := pList item:0.
+ newComment := doc createComment:'COMMENT_NODE'.
+ appendedChild := elem appendChild:newComment.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'comments' value: false.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalize.
+ errorMonitor assertLowerSeverityFor: self message:'normalizationError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ elem := pList item:0.
+ lastChild := elem lastChild.
+ nodeName := lastChild nodeName.
+ self assert: ( nodeName = '#comment' ).
+
+!
+
+test_datatypenormalization01
+ "
+Normalize document with datatype-normalization set to true.
+Check if double values were normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetNormalization "Boolean"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization').
+ domConfig := doc domConfig.
+ canSetNormalization := domConfig canSetParameter: 'datatype-normalization' value: true.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetNormalization) and: [(canSetValidate) and: [(canSetXMLSchema)]] ifTrue: [
+ ].
+
+!
+
+test_datatypenormalization02
+ "
+Normalize document with datatype-normalization set to true.
+Check if decimal values were normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetNormalization "Boolean"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization').
+ domConfig := doc domConfig.
+ canSetNormalization := domConfig canSetParameter: 'datatype-normalization' value: true.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetNormalization) and: [(canSetValidate) and: [(canSetXMLSchema)]] ifTrue: [
+ ].
+
+!
+
+test_datatypenormalization03
+ "
+Normalize document with datatype-normalization set to true.
+Check if boolean values were whitespace normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetNormalization "Boolean"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization').
+ domConfig := doc domConfig.
+ canSetNormalization := domConfig canSetParameter: 'datatype-normalization' value: true.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetNormalization) and: [(canSetValidate) and: [(canSetXMLSchema)]] ifTrue: [
+ ].
+
+!
+
+test_datatypenormalization04
+ "
+Normalize document with datatype-normalization set to true.
+Check if float values were normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetNormalization "Boolean"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization').
+ domConfig := doc domConfig.
+ canSetNormalization := domConfig canSetParameter: 'datatype-normalization' value: true.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetNormalization) and: [(canSetValidate) and: [(canSetXMLSchema)]] ifTrue: [
+ ].
+
+!
+
+test_datatypenormalization05
+ "
+Normalize document with datatype-normalization set to true.
+Check if dateTime values were correctly normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetNormalization "Boolean"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization').
+ domConfig := doc domConfig.
+ canSetNormalization := domConfig canSetParameter: 'datatype-normalization' value: true.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetNormalization) and: [(canSetValidate) and: [(canSetXMLSchema)]] ifTrue: [
+ ].
+
+!
+
+test_datatypenormalization06
+ "
+Normalize document with datatype-normalization set to true.
+Check if time values were normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetNormalization "Boolean"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization').
+ domConfig := doc domConfig.
+ canSetNormalization := domConfig canSetParameter: 'datatype-normalization' value: true.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetNormalization) and: [(canSetValidate) and: [(canSetXMLSchema)]] ifTrue: [
+ ].
+
+!
+
+test_datatypenormalization07
+ "
+The default value for the double element must be provided in canonical lexical form.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetNormalization "Boolean"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization').
+ domConfig := doc domConfig.
+ canSetNormalization := domConfig canSetParameter: 'datatype-normalization' value: true.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetNormalization) and: [(canSetValidate) and: [(canSetXMLSchema)]] ifTrue: [
+ ].
+
+!
+
+test_datatypenormalization08
+ "
+The default value for the decimal element must be provided in canonical lexical form.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetNormalization "Boolean"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization').
+ domConfig := doc domConfig.
+ canSetNormalization := domConfig canSetParameter: 'datatype-normalization' value: true.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetNormalization) and: [(canSetValidate) and: [(canSetXMLSchema)]] ifTrue: [
+ ].
+
+!
+
+test_datatypenormalization09
+ "
+The default value for the boolean element must be provided in canonical lexical form.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetNormalization "Boolean"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization').
+ domConfig := doc domConfig.
+ canSetNormalization := domConfig canSetParameter: 'datatype-normalization' value: true.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetNormalization) and: [(canSetValidate) and: [(canSetXMLSchema)]] ifTrue: [
+ ].
+
+!
+
+test_datatypenormalization10
+ "
+The default value for the float element must be provided in canonical lexical form.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetNormalization "Boolean"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization').
+ domConfig := doc domConfig.
+ canSetNormalization := domConfig canSetParameter: 'datatype-normalization' value: true.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetNormalization) and: [(canSetValidate) and: [(canSetXMLSchema)]] ifTrue: [
+ ].
+
+!
+
+test_datatypenormalization11
+ "
+The default value for the dateTime element must be provided in canonical lexical form.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetNormalization "Boolean"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization').
+ domConfig := doc domConfig.
+ canSetNormalization := domConfig canSetParameter: 'datatype-normalization' value: true.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetNormalization) and: [(canSetValidate) and: [(canSetXMLSchema)]] ifTrue: [
+ ].
+
+!
+
+test_datatypenormalization12
+ "
+Default values must be provided in canonical lexical form.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetNormalization "Boolean"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization').
+ domConfig := doc domConfig.
+ canSetNormalization := domConfig canSetParameter: 'datatype-normalization' value: true.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetNormalization) and: [(canSetValidate) and: [(canSetXMLSchema)]] ifTrue: [
+ ].
+
+!
+
+test_datatypenormalization13
+ "
+Normalize document with datatype-normalization set to true.
+Check if string values were normalized per default whitespace
+facet of xsd:string.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetNormalization "Boolean"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ childNode "Node"
+ childValue "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization2').
+ domConfig := doc domConfig.
+ canSetNormalization := domConfig canSetParameter: 'datatype-normalization' value: true.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetNormalization) and: [(canSetValidate) and: [(canSetXMLSchema)]] ifTrue: [
+ ].
+
+!
+
+test_datatypenormalization14
+ "
+Normalize document with datatype-normalization set to true.
+Check if string values were normalized per explicit whitespace=preserve.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetNormalization "Boolean"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ childNode "Node"
+ childValue "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization2').
+ domConfig := doc domConfig.
+ canSetNormalization := domConfig canSetParameter: 'datatype-normalization' value: true.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetNormalization) and: [(canSetValidate) and: [(canSetXMLSchema)]] ifTrue: [
+ ].
+
+!
+
+test_datatypenormalization15
+ "
+Normalize document with datatype-normalization set to true.
+Check if string values were normalized per an explicit whitespace=collapse.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetNormalization "Boolean"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ childNode "Node"
+ childValue "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization2').
+ domConfig := doc domConfig.
+ canSetNormalization := domConfig canSetParameter: 'datatype-normalization' value: true.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetNormalization) and: [(canSetValidate) and: [(canSetXMLSchema)]] ifTrue: [
+ ].
+
+!
+
+test_datatypenormalization16
+ "
+Normalize document with datatype-normalization set to true.
+Check if string values were normalized per explicit whitespace=replace.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetNormalization "Boolean"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ childNode "Node"
+ childValue "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization2').
+ domConfig := doc domConfig.
+ canSetNormalization := domConfig canSetParameter: 'datatype-normalization' value: true.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetNormalization) and: [(canSetValidate) and: [(canSetXMLSchema)]] ifTrue: [
+ ].
+
+!
+
+test_datatypenormalization17
+ "
+Normalize document with datatype-normalization set to false, string values
+should not be normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ childNode "Node"
+ childValue "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization2').
+ domConfig := doc domConfig.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetValidate) and: [(canSetXMLSchema)] ifTrue: [
+ ].
+
+!
+
+test_datatypenormalization18
+ "
+Normalize document using Node.normalize which is not affected by DOMConfiguration unlike
+Document.normalizeDocument. Strings should not have been normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-normalize
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ canSetDataNorm "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ childNode "Node"
+ childValue "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization2').
+ domConfig := doc domConfig.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ canSetDataNorm := domConfig canSetParameter: 'datatype-normalization' value: true.
+ "if"
+ (canSetValidate) and: [(canSetXMLSchema) and: [(canSetDataNorm)]] ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode01
+ "
+ Adopt the class attribute node of the fourth acronym element. Check if this attribute has been adopted successfully by verifying the
+ nodeName, nodeType, nodeValue, specified and ownerElement attributes of the adopted node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ attrOwnerElem "Element"
+ element "Element"
+ attr "Attr"
+ childList "NodeList"
+ adoptedclass "Node"
+ attrsParent "Node"
+ nodeName "String"
+ nodeType "SmallInteger"
+ nodeValue "String"
+ firstChild "Text"
+ firstChildValue "String"
+ secondChild "EntityReference"
+ secondChildType "SmallInteger"
+ secondChildName "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'acronym'.
+ element := childList item:3.
+ attr := element getAttributeNode:'class'.
+ adoptedclass := doc adoptNode: attr.
+ "if"
+ ( adoptedclass notNil ) ifTrue: [
+ self assert:false description:'Method "equals" is not supported yet'.
+ secondChild := firstChild nextSibling.
+ self assert: secondChild notNil.
+ secondChildType := secondChild nodeType.
+ self assert: ( secondChildType = 5 ).
+ secondChildName := secondChild nodeName.
+ self assert: ( secondChildName = 'alpha' ).
+ self assert:false description:'Method "else" is not supported yet'.
+ ].
+
+!
+
+test_documentadoptnode02
+ "
+ Adopt the class attribute node of the fourth acronym element. Check if this attribute has been adopted
+ successfully by verifying the nodeName, nodeType, ownerElement, specified attributes and child nodes
+ of the adopted node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ attrOwnerElem "Element"
+ element "Element"
+ attr "Attr"
+ childList "NodeList"
+ adoptedclass "Node"
+ attrsParent "Node"
+ nodeName "String"
+ nodeType "SmallInteger"
+ nodeValue "String"
+ isSpecified "Boolean"
+ nullDocType "DocumentType"
+ firstChild "Text"
+ firstChildValue "String"
+ secondChild "EntityReference"
+ secondChildType "SmallInteger"
+ secondChildName "String"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ childList := doc getElementsByTagName: 'acronym'.
+ element := childList item:3.
+ attr := element getAttributeNode:'class'.
+ adoptedclass := newDoc adoptNode: attr.
+ "if"
+ ( adoptedclass notNil ) ifTrue: [
+ self assert:false description:'Method "equals" is not supported yet'.
+ secondChild := firstChild nextSibling.
+ self assert: secondChild notNil.
+ secondChildType := secondChild nodeType.
+ self assert: ( secondChildType = 5 ).
+ secondChildName := secondChild nodeName.
+ self assert: ( secondChildName = 'alpha' ).
+ self assert:false description:'Method "else" is not supported yet'.
+ ].
+
+!
+
+test_documentadoptnode03
+ "
+ Invoke adoptNode on this document to adopt the a new namespace aware attribute node. Check
+ if this attribute has been adopted successfully by verifying the nodeName, namespaceURI, prefix,
+ specified and ownerElement attributes of the adopted node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ newAttr "Attr"
+ adoptedAttr "Attr"
+ nodeName "String"
+ nodeNamespaceURI "String"
+ nodePrefix "String"
+ attrOwnerElem "Element"
+ isSpecified "Boolean"
+ xmlNS "String"
+ |
+ xmlNS := 'http://www.w3.org/XML/1998/namespace'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ newAttr := doc createAttribute:'xml:lang' ns:xmlNS.
+ adoptedAttr := doc adoptNode: newAttr.
+ "if"
+ ( adoptedAttr notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode04
+ "
+ Invoke adoptNode on a new document to adopt a new namespace aware attribute node created by
+ this document. Check if this attribute has been adopted successfully by verifying the nodeName,
+ namespaceURI, prefix, specified and ownerElement attributes of the adopted node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ newAttr "Attr"
+ adoptedAttr "Attr"
+ nodeName "String"
+ nodeNamespaceURI "String"
+ nodePrefix "String"
+ attrOwnerElem "Element"
+ isSpecified "Boolean"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ xmlNS "String"
+ |
+ nullDocType := nil.
+ xmlNS := 'http://www.w3.org/XML/1998/namespace'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ newAttr := doc createAttribute:'xml:lang' ns:xmlNS.
+ adoptedAttr := newDoc adoptNode: newAttr.
+ "if"
+ ( adoptedAttr notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode05
+ "
+ Invoke adoptNode on a new document to adopt the default attribute dir . Check if
+ this attribute has been adopted successfully by verifying the nodeName, namespaceURI, prefix,
+ specified and ownerElement attributes of the adopted node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ elementEmp "Element"
+ childList "NodeList"
+ dir "Attr"
+ adoptedAttr "Node"
+ nodeName "String"
+ nodeNamespaceURI "String"
+ nodePrefix "String"
+ attrOwnerElem "Element"
+ isSpecified "Boolean"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ childList := doc getElementsByTagName: 'p'.
+ elementEmp := childList item:3.
+ dir := elementEmp getAttributeNode:'dir'.
+ adoptedAttr := newDoc adoptNode: dir.
+ "if"
+ ( adoptedAttr notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode06
+ "
+ Invoke adoptNode on a new document to adopt the a new Attribute node having a Text and an EntityReference
+ child. Check if this attribute has been adopted successfully by verifying the nodeName, namespaceURI, prefix,
+ specified and ownerElement attributes of the adopted node. Also verify the ownerDocument attribute
+ of the adopted node and the adopted children of the attribute node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ newAttr "Attr"
+ newText "Text"
+ newEntRef "EntityReference"
+ adoptedAttr "Attr"
+ adoptText "Text"
+ adoptEntRef "EntityReference"
+ nodeList "NodeList"
+ nodeName "String"
+ nodeNamespaceURI "String"
+ nodePrefix "String"
+ attrOwnerElem "Element"
+ isSpecified "Boolean"
+ adoptedTextNodeValue "String"
+ adoptedEntRefNodeValue "String"
+ nullDocType "DocumentType"
+ appendedChild "Node"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ xmlNS "String"
+ |
+ nullDocType := nil.
+ xmlNS := 'http://www.w3.org/XML/1998/namespace'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ newAttr := doc createAttribute:'xml:lang' ns:xmlNS.
+ newText := doc createTextNode:'Text Node'.
+ newEntRef := doc createEntityReference:'alpha'.
+ appendedChild := newAttr appendChild:newText.
+ appendedChild := newAttr appendChild:newEntRef.
+ adoptedAttr := newDoc adoptNode: newAttr.
+ "if"
+ ( adoptedAttr notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode07
+ "
+ Invoke the adoptNode method on this document with the value of the source parameter as itself.
+ Verify if a NOT_SUPPORTED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ adoptedDoc "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ "assertDOMException..."
+ self should:[
+ adoptedDoc := doc adoptNode: doc.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentadoptnode08
+ "
+ Invoke the adoptNode method on this document with a new document as the value of the
+ source parameter. Verify if a NOT_SUPPORTED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ adoptedDoc "Node"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ "assertDOMException..."
+ self should:[
+ adoptedDoc := doc adoptNode: newDoc.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentadoptnode09
+ "
+ Invoke the adoptNode method on a new document with this document as the value of the
+ source parameter. Verify if a NOT_SUPPORTED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ adoptedDoc "Node"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ "assertDOMException..."
+ self should:[
+ adoptedDoc := newDoc adoptNode: doc.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentadoptnode10
+ "
+ Invoke the adoptNode method on this document with the value of the source parameter as this
+ documents doctype node. Verify if a NOT_SUPPORTED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ adoptedDocType "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ "assertDOMException..."
+ self should:[
+ adoptedDocType := doc adoptNode: docType.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentadoptnode11
+ "
+ Invoke the adoptNode method on this document with the value of the source parameter equal to a new
+ doctype node. Verify if a NOT_SUPPORTED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ docType "DocumentType"
+ adoptedDocType "Node"
+ nullPubID "String"
+ nullSysID "String"
+ docElem "Element"
+ rootName "String"
+ |
+ nullPubID := nil.
+ nullSysID := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ docType := domImpl createDocumentType:rootName publicId:nullPubID systemId:nullSysID.
+ "assertDOMException..."
+ self should:[
+ adoptedDocType := doc adoptNode: docType.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentadoptnode12
+ "
+ Invoke the adoptNode method on a new document with the value of the source parameter equal to a new
+ doctype node. Verify if a NOT_SUPPORTED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ docType "DocumentType"
+ adoptedDocType "Node"
+ nullPubID "String"
+ nullSysID "String"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullPubID := nil.
+ nullSysID := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ docType := domImpl createDocumentType:rootName publicId:nullPubID systemId:nullSysID.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: docType.
+ "assertDOMException..."
+ self should:[
+ adoptedDocType := newDoc adoptNode: docType.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentadoptnode13
+ "
+ Using the method adoptNode, adopt a newly created DocumentFragment node populated with
+ with the first acronym element of this Document. Since the decendants of a documentFragment
+ are recursively adopted, check if the adopted node has children.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ docFragment "DocumentFragment"
+ childList "NodeList"
+ success "Boolean"
+ acronymNode "Node"
+ appendedChild "Node"
+ adoptedDocFrag "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docFragment := doc createDocumentFragment.
+ childList := doc getElementsByTagName: 'acronym'.
+ acronymNode := childList item:0.
+ appendedChild := docFragment appendChild:acronymNode.
+ adoptedDocFrag := doc adoptNode: docFragment.
+ "if"
+ ( adoptedDocFrag notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode14
+ "
+ Using the method adoptNode in a new Document, adopt a newly created DocumentFragment node populated with
+ with the first acronym element of this Document as its newChild. Since the decendants of a documentFragment
+ are recursively adopted, check if the adopted node has children.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ docElem "Element"
+ domImpl "DOMImplementation"
+ docFragment "DocumentFragment"
+ childList "NodeList"
+ success "Boolean"
+ acronymNode "Node"
+ adoptedDocFrag "Node"
+ appendedChild "Node"
+ nullDocType "DocumentType"
+ imported "Node"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ docFragment := newDoc createDocumentFragment.
+ imported := newDoc importNode:docElem deep:true.
+ docElem := newDoc documentElement.
+ appendedChild := docElem appendChild:imported.
+ childList := newDoc getElementsByTagName: 'acronym'.
+ acronymNode := childList item:0.
+ appendedChild := docFragment appendChild:acronymNode.
+ adoptedDocFrag := newDoc adoptNode: docFragment.
+ "if"
+ ( adoptedDocFrag notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode15
+ "
+ Using the method adoptNode, adopt a newly created DocumentFragment node without any children.
+ Check if the adopted node has no children.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ docFragment "DocumentFragment"
+ success "Boolean"
+ adoptedDocFrag "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docFragment := doc createDocumentFragment.
+ adoptedDocFrag := doc adoptNode: docFragment.
+ "if"
+ ( adoptedDocFrag notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode16
+ "
+Create a document fragment with an entity reference, adopt the node and check
+that the entity reference value comes from the adopting documents DTD.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ docFragment "DocumentFragment"
+ childList "NodeList"
+ parent "Element"
+ child "Element"
+ childsAttr "Attr"
+ entRef "EntityReference"
+ textNode "Text"
+ adopted "Node"
+ parentImp "Element"
+ childImp "Element"
+ attributes "NamedNodeMap"
+ childAttrImp "Attr"
+ nodeValue "String"
+ appendedChild "Node"
+ attrNode "Attr"
+ firstChild "Node"
+ firstChildType "SmallInteger"
+ firstChildName "String"
+ firstChildValue "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docFragment := doc createDocumentFragment.
+ parent := doc createElement:'parent'.
+ child := doc createElement:'child'.
+ childsAttr := doc createAttribute:'state'.
+ entRef := doc createEntityReference:'gamma'.
+ textNode := doc createTextNode:'Test'.
+ appendedChild := childsAttr appendChild:entRef.
+ attrNode := child setAttributeNode:childsAttr.
+ appendedChild := child appendChild:textNode.
+ appendedChild := parent appendChild:child.
+ appendedChild := docFragment appendChild:parent.
+ adopted := doc adoptNode: docFragment.
+ "if"
+ ( adopted notNil ) ifTrue: [
+ self assert:false description:'Method "equals" is not supported yet'.
+ self assert: ( firstChildName = 'gamma' ).
+ self assert:false description:'Method "else" is not supported yet'.
+ ].
+
+!
+
+test_documentadoptnode17
+ "
+ Invoke the adoptNode method on this document with the entity ent1 as the source. Since this is
+ read-only verify if a NO_MODIFICATION_ALLOWED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entityMap "NamedNodeMap"
+ ent "Entity"
+ adoptedEnt "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entityMap := docType entities.
+ ent := entityMap getNamedItem:'alpha'.
+ "assertDOMException..."
+ self should:[
+ adoptedEnt := doc adoptNode: ent.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentadoptnode18
+ "
+ Invoke the adoptNode method on a new document with the entity ent4 as the source. Since this is
+ read-only verify if a NO_MODIFICATION_ALLOWED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ docType "DocumentType"
+ entityMap "NamedNodeMap"
+ ent "Entity"
+ adoptedEnt "Node"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ docType := doc doctype.
+ entityMap := docType entities.
+ ent := entityMap getNamedItem:'delta'.
+ "assertDOMException..."
+ self should:[
+ adoptedEnt := newDoc adoptNode: ent.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentadoptnode19
+ "
+ Invoke the adoptNode method on this document with the notation notation1 as the source. Since this is
+ read-only verify if a NO_MODIFICATION_ALLOWED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ notationMap "NamedNodeMap"
+ notation "Notation"
+ adoptedNotaion "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ notationMap := docType notations.
+ notation := notationMap getNamedItem:'notation1'.
+ "assertDOMException..."
+ self should:[
+ adoptedNotaion := doc adoptNode: notation.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentadoptnode20
+ "
+ Invoke the adoptNode method on a new document with the notation notation2 as the source. Since this is
+ read-only verify if a NO_MODIFICATION_ALLOWED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ docType "DocumentType"
+ notationMap "NamedNodeMap"
+ notation "Notation"
+ adoptedNotation "Node"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ docType := doc doctype.
+ notationMap := docType notations.
+ notation := notationMap getNamedItem:'notation2'.
+ "assertDOMException..."
+ self should:[
+ adoptedNotation := newDoc adoptNode: notation.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentadoptnode21
+ "
+ The adoptNode method changes the ownerDocument of a node, its children, as well as the
+ attached attribute nodes if there are any. If the node has a parent it is first removed
+ from its parent child list.
+
+ Invoke the adoptNode method on this Document with the source node being an existing attribute
+ that is a part of this Document. Verify that the returned adopted node's nodeName, nodeValue
+ and nodeType are as expected and that the ownerElement attribute of the returned attribute node
+ was set to null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ attrOwnerElem "Element"
+ element "Element"
+ attr "Attr"
+ childList "NodeList"
+ adoptedTitle "Node"
+ attrsParent "Node"
+ nodeName "String"
+ nodeType "SmallInteger"
+ nodeValue "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'acronym'.
+ element := childList item:0.
+ attr := element getAttributeNode:'title'.
+ adoptedTitle := doc adoptNode: attr.
+ nodeName := adoptedTitle nodeName.
+ nodeValue := adoptedTitle nodeValue.
+ nodeType := adoptedTitle nodeType.
+ attrOwnerElem := adoptedTitle ownerElement.
+ self assert: ( nodeName = 'title' ).
+ self assert: ( nodeType = 2 ).
+ self assert: ( nodeValue = 'Yes' ).
+ self assert: attrOwnerElem isNil.
+
+!
+
+test_documentadoptnode22
+ "
+ Invoke the adoptNode method on this document with the documentElement as the source.
+ Verify if the node has been adopted correctly by its nodeName.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ docElement "Element"
+ adoptedNode "Node"
+ success "Boolean"
+ nodeNameOrig "String"
+ nodeName "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElement := doc documentElement.
+ adoptedNode := doc adoptNode: docElement.
+ "if"
+ ( adoptedNode notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode23
+ "
+ Invoke the adoptNode method on this document with the first acronym element node of this
+ Document as the source. Verify if the node has been adopted correctly by checking the
+ length of the this elements childNode list before and after.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ childList "NodeList"
+ adoptedNode "Node"
+ acronymElem "Node"
+ acronymElemLen "SmallInteger"
+ adoptedLen "SmallInteger"
+ acronymElemChild "NodeList"
+ adoptedNodeChild "NodeList"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'acronym'.
+ acronymElem := childList item:0.
+ adoptedNode := doc adoptNode: acronymElem.
+ "if"
+ ( adoptedNode notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode24
+ "
+ The adoptNode method changes the ownerDocument of a node, its children, as well as the
+ attached attribute nodes if there are any. If the node has a parent it is first removed
+ from its parent child list.
+ For Element Nodes, specified attribute nodes of the source element are adopted, Default
+ attributes are discarded and descendants of the source element are recursively adopted.
+
+ Invoke the adoptNode method on a new document with the first code element node of this
+ Document as the source. Verify if the node has been adopted correctly by checking the
+ length of the this elements childNode list before and after.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ childList "NodeList"
+ adoptedNode "Node"
+ codeElem "Element"
+ codeElemChildren "NodeList"
+ adoptedChildren "NodeList"
+ codeElemLen "SmallInteger"
+ adoptedLen "SmallInteger"
+ nullDocType "DocumentType"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: 'http://www.w3.org/DOM/Test' qualifiedName: 'dom:test' doctype: nullDocType.
+ childList := doc getElementsByTagName: 'code' ns: '*'.
+ codeElem := childList item:0.
+ adoptedNode := newDoc adoptNode: codeElem.
+ codeElemChildren := codeElem childNodes.
+ adoptedChildren := adoptedNode childNodes.
+ codeElemLen := codeElemChildren length.
+ adoptedLen := adoptedChildren length.
+ self assert: ( codeElemLen = adoptedLen ).
+
+!
+
+test_documentadoptnode25
+ "
+ Invoke the adoptNode method on a new document with a new Element of this
+ Document as the source. Verify if the node has been adopted correctly by checking the
+ nodeName of the adopted Element.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ newElem "Element"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ adoptedNode "Node"
+ adoptedName "String"
+ adoptedNS "String"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ nullDocType "DocumentType"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ newElem := doc createElement:'th' ns:'http://www.w3.org/1999/xhtml'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ adoptedNode := newDoc adoptNode: newElem.
+ "if"
+ ( adoptedNode notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode26
+ "
+ Invoke the adoptNode method on this document using a new Element and a new attribute created in
+ a new Document as the source. Verify if the node has been adopted correctly by checking the
+ nodeName of the adopted Element and by checking if the attribute was adopted.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ newElem "Element"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ adoptedNode "Node"
+ adoptedName "String"
+ adoptedNS "String"
+ nullDocType "DocumentType"
+ appendedChild "Node"
+ rootNS "String"
+ rootTagname "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootTagname := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootTagname doctype: nullDocType.
+ newElem := newDoc createElement:'head' ns:'http://www.w3.org/1999/xhtml'.
+ newElem setAttribute: 'xml:lang' ns: 'http://www.w3.org/XML/1998/namespace' value: 'en-US'.
+ docElem := newDoc documentElement.
+ appendedChild := docElem appendChild:newElem.
+ adoptedNode := doc adoptNode: newElem.
+ "if"
+ ( adoptedNode notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode27
+ "
+ Invoke the adoptNode method on this document using a new imported Element and a new attribute created in
+ a new Document as the source. Verify if the node has been adopted correctly by checking the
+ nodeName of the adopted Element and by checking if the attribute was adopted.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ newElem "Element"
+ newImpElem "Element"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ adoptedNode "Node"
+ adoptedName "String"
+ adoptedNS "String"
+ appendedChild "Node"
+ nullDocType "DocumentType"
+ rootNS "String"
+ rootTagname "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootTagname := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootTagname doctype: nullDocType.
+ newElem := newDoc createElement:'xhtml:head' ns:'http://www.w3.org/1999/xhtml'.
+ newElem setAttribute: 'xml:lang' ns: 'http://www.w3.org/XML/1998/namespace' value: 'en-US'.
+ docElem := newDoc documentElement.
+ appendedChild := docElem appendChild:newElem.
+ newImpElem := doc importNode:newElem deep:true.
+ adoptedNode := doc adoptNode: newImpElem.
+ "if"
+ ( adoptedNode notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode28
+ "
+ Invoke the adoptNode method on this document using the p element with the default
+ Attribute dir as the source. Verify if the node has been adopted correctly by
+ checking the nodeName of the adopted Element and by checking if the attribute was adopted.
+ Note the default attribute should be adopted in this case.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ childList "NodeList"
+ adoptedNode "Node"
+ employeeElem "Node"
+ attrImp "Attr"
+ nodeName "String"
+ nullNSURI "String"
+ |
+ nullNSURI := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'p'.
+ employeeElem := childList item:3.
+ adoptedNode := doc adoptNode: employeeElem.
+ "if"
+ ( adoptedNode notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode30
+ "
+ Invoke the adoptNode method on this document using a new Text node as the source. Verify
+ if the node has been adopted correctly by checking the nodeValue of the adopted node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ newText "Text"
+ adoptedText "Text"
+ nodeValue "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ newText := doc createTextNode:'Document.adoptNode test for a TEXT_NODE'.
+ adoptedText := doc adoptNode: newText.
+ "if"
+ ( adoptedText notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode31
+ "
+ Invoke the adoptNode method on this document using a new Text node from a new Document as the
+ source. Verify if the node has been adopted correctly by checking the nodeValue of the adopted
+ node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ newText "Text"
+ adoptedText "Text"
+ nodeValue "String"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ newText := newDoc createTextNode:'new Document.adoptNode test for a TEXT_NODE'.
+ adoptedText := doc adoptNode: newText.
+ "if"
+ ( adoptedText notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode32
+ "
+ Invoke the adoptNode method on another document using a new CDataSection node created in this
+ Document as the source. Verify if the node has been adopted correctly by checking the nodeValue
+ of the adopted node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ docAdopter "Document"
+ newCDATA "Node"
+ adoptedCDATA "Node"
+ nodeValue "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docAdopter := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ newCDATA := doc createCDATASection:'Document.adoptNode test for a CDATASECTION_NODE'.
+ adoptedCDATA := docAdopter adoptNode: newCDATA.
+ "if"
+ ( adoptedCDATA notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode33
+ "
+ Invoke the adoptNode method on this document using a new CDataSection node created in a new
+ Document as the source. Verify if the node has been adopted correctly by checking the nodeValue
+ of the adopted node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ newCDATA "Node"
+ adoptedCDATA "Node"
+ nodeValue "String"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ newCDATA := newDoc createCDATASection:'Document.adoptNode test for a CDATASECTION_NODE'.
+ adoptedCDATA := doc adoptNode: newCDATA.
+ "if"
+ ( adoptedCDATA notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode34
+ "
+ Invoke the adoptNode method on a new document using a new Comment node created in it
+ as the source. Verify if the node has been adopted correctly by checking the nodeValue
+ of the adopted node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ newComment "Node"
+ adoptedComment "Node"
+ nodeValue "String"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ newComment := newDoc createComment:'Document.adoptNode test for a COMMENT_NODE'.
+ adoptedComment := newDoc adoptNode: newComment.
+ "if"
+ ( adoptedComment notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode35
+ "
+ Invoke the adoptNode method on this document using a new PI node created in a new doc
+ as the source. Verify if the node has been adopted correctly by checking the nodeValue
+ of the adopted node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ newPI "ProcessingInstruction"
+ adoptedPI "ProcessingInstruction"
+ piTarget "String"
+ piData "String"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ newPI := newDoc createProcessingInstruction:'PITarget' data:'PIData'.
+ adoptedPI := doc adoptNode: newPI.
+ "if"
+ ( adoptedPI notNil ) ifTrue: [
+ ].
+
+!
+
+test_documentadoptnode36
+ "
+ Invoke the adoptNode method on this document using a new PI node created in a new doc
+ as the source. Verify if the node has been adopted correctly by checking the nodeValue
+ of the adopted node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ newPI1 "ProcessingInstruction"
+ newPI2 "ProcessingInstruction"
+ adoptedPI1 "ProcessingInstruction"
+ adoptedPI2 "ProcessingInstruction"
+ piTarget "String"
+ piData "String"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ newPI1 := newDoc createProcessingInstruction:'PITarget' data:'PIData'.
+ newPI2 := doc createProcessingInstruction:'PITarget' data:'PIData'.
+ adoptedPI1 := newDoc adoptNode: newPI1.
+ "if"
+ ( adoptedPI1 notNil ) ifTrue: [
+ self assert:false description:'Method "notNull" is not supported yet'.
+ piTarget := adoptedPI1 target.
+ piData := adoptedPI1 data.
+ self assert: ( piTarget = 'PITarget' ).
+ self assert: ( piData = 'PIData' ).
+ piTarget := adoptedPI2 target.
+ piData := adoptedPI2 data.
+ self assert: ( piTarget = 'PITarget' ).
+ self assert: ( piData = 'PIData' ).
+ ].
+
+!
+
+test_documentgetdoctype01
+ "
+ Retreive the doctype node, create a new Doctype node, call replaceChild and try replacing the
+ docType node with a new docType node. Check if the docType node was correctly replaced with
+ the new one.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-B63ED1A31
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ newDocType "DocumentType"
+ replacedDocType "DocumentType"
+ domImpl "DOMImplementation"
+ newSysID "String"
+ nullPubID "String"
+ nullSysID "String"
+ replaced "Node"
+ rootName "String"
+ |
+ nullPubID := nil.
+ nullSysID := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ rootName := docType name.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDocType := domImpl createDocumentType:rootName publicId:nullPubID systemId:nullSysID.
+ "try"
+ [
+ doc replaceChild:docType with: newDocType.
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+ replacedDocType := doc doctype.
+ newSysID := replacedDocType systemId.
+ self assert: newSysID isNil.
+
+!
+
+test_documentgetdocumenturi01
+ "
+ Retreive the documentURI of this document, and verify if it is not null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-documentURI
+ "
+ |
+ doc "Document"
+ docURI "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docURI := doc documentURI.
+ self assert: docURI notNil.
+
+!
+
+test_documentgetdocumenturi02
+ "
+ Create a new Document, retreive its documentURI, and verify if it is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-documentURI
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ docURI "String"
+ domImpl "DOMImplementation"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ docURI := newDoc documentURI.
+ self assert: docURI isNil.
+
+!
+
+test_documentgetdocumenturi03
+ "
+ Import the documentElement node of this document into a new document. Since this node is
+ now owned by the importing document, its documentURI attribute value should be null
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-documentURI
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ importedOwner "Document"
+ docElem "Element"
+ docElemImported "Node"
+ docURI "String"
+ domImpl "DOMImplementation"
+ nullDocType "DocumentType"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ docElemImported := newDoc importNode:docElem deep:false.
+ importedOwner := docElemImported ownerDocument.
+ docURI := importedOwner documentURI.
+ self assert: docURI isNil.
+
+!
+
+test_documentgetinputencoding01
+ "
+ Call the getInputEncoding method on a UTF-8 encoded document and check if the
+ value returned is UTF-8.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-inputEncoding
+ "
+ |
+ doc "Document"
+ encodingName "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ encodingName := doc inputEncoding.
+ self assert: ( encodingName asLowercase = 'UTF-8' asLowercase ).
+
+!
+
+test_documentgetinputencoding02
+ "
+ Call the getInputEncoding method on a new document and check if the value returned
+ is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-inputEncoding
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ encodingName "String"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ encodingName := newDoc inputEncoding.
+ self assert: encodingName isNil.
+
+!
+
+test_documentgetinputencoding03
+ "
+ Call the getInputEncoding method on a on a UTF-16 (BE) encoded document and check if the value returned
+ is UTF-16BE.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-inputEncoding
+ "
+ |
+ doc "Document"
+ encodingName "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_utf16').
+ encodingName := doc inputEncoding.
+ self assert: ( encodingName asLowercase = 'UTF-16BE' asLowercase ).
+
+!
+
+test_documentgetinputencoding04
+ "
+ Call the getInputEncoding method on a cloned UTF-8 encoded document
+ and check if the value returned is UTF-8 or null (implementation dependent).
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-inputEncoding
+ "
+ |
+ doc "Document"
+ cloned "Document"
+ encodingName "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_utf8').
+ cloned := doc cloneNode:true.
+ encodingName := cloned inputEncoding.
+ self assert: ( encodingName asLowercase = 'UTF-8' asLowercase ) or: [( encodingName isNil ) ].
+
+!
+
+test_documentgetstricterrorchecking01
+ "
+ Verify if the (default) value of the strictErrorChecking attribute of this document object is true.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-strictErrorChecking
+ "
+ |
+ doc "Document"
+ strictErrorCheckingValue "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ strictErrorCheckingValue := doc strictErrorChecking.
+ self assert: strictErrorCheckingValue.
+
+!
+
+test_documentgetstricterrorchecking02
+ "
+ Verify if the (default)value of the strictErrorChecking attribute of a new Document object is true.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-strictErrorChecking
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ strictErrorCheckingValue "Boolean"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ strictErrorCheckingValue := newDoc strictErrorChecking.
+ self assert: strictErrorCheckingValue.
+
+!
+
+test_documentgetxmlencoding01
+ "
+ Call the getXmlEncoding method on a UTF-8 encoded XML document in which the encoding pseudo
+ attribute in its XMLDecl is UTF-8 and check if the value returned is UTF-8.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-encoding
+ "
+ |
+ doc "Document"
+ encodingName "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_utf8').
+ encodingName := doc xmlEncoding.
+ self assert: ( encodingName = 'uTf-8' ).
+
+!
+
+test_documentgetxmlencoding02
+ "
+ Call the getXmlEncoding method on a new document and check if the value returned
+ is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-encoding
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ encodingName "String"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ encodingName := newDoc xmlEncoding.
+ self assert: encodingName isNil.
+
+!
+
+test_documentgetxmlencoding03
+ "
+ Call the getXmlEncoding method on a UTF-16 encoded document and check if the value returned
+ is UTF-16.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-encoding
+ "
+ |
+ doc "Document"
+ encodingName "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_utf16').
+ encodingName := doc xmlEncoding.
+ self assert: ( encodingName = 'uTf-16' ).
+
+!
+
+test_documentgetxmlencoding04
+ "
+ Call the getXmlEncoding method on a UTF-8 encoded XML document that does not contain
+ the encoding pseudo attribute in its XMLDecl and check if the value returend is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-encoding
+ "
+ |
+ doc "Document"
+ encodingName "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ encodingName := doc xmlEncoding.
+ self assert: encodingName isNil.
+
+!
+
+test_documentgetxmlencoding05
+ "
+ Call the getXmlEncoding method on a cloned UTF-8 encoded document
+ and check if the value returned is UTF-8 or null (implementation dependent).
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-encoding
+ "
+ |
+ doc "Document"
+ cloned "Document"
+ encodingName "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_utf8').
+ cloned := doc cloneNode:true.
+ encodingName := cloned xmlEncoding.
+ self assert: ( encodingName = 'uTf-8' ) or: [( encodingName isNil ) ].
+
+!
+
+test_documentgetxmlstandalone01
+ "
+ Retreive the xmlStandalone attribute of a document for which standalone was not specified, this
+ should return false since the default for standalone is no when external markup decls
+ are present.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-standalone
+ "
+ |
+ doc "Document"
+ standalone "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ standalone := doc xmlStandalone.
+ self deny: standalone.
+
+!
+
+test_documentgetxmlstandalone02
+ "
+ The value of the standalone pesudo-attribute for a new Document should be false.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-standalone
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ standalone "Boolean"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ standalone := newDoc xmlStandalone.
+ self deny: standalone.
+
+!
+
+test_documentgetxmlstandalone03
+ "
+ The value of the standalone attribute for an XML document with the standalone= no
+ should be false.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-standalone
+ "
+ |
+ doc "Document"
+ standalone "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_standalone_no').
+ standalone := doc xmlStandalone.
+ self deny: standalone.
+
+!
+
+test_documentgetxmlstandalone04
+ "
+ Retreive the documentURI of a document for which standalone was specified as yes , this
+ should return true.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-standalone
+ "
+ |
+ doc "Document"
+ standalone "Boolean"
+ |
+ "implementationAttribute not supported: validating"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_standalone_yes').
+ standalone := doc xmlStandalone.
+ self assert: standalone.
+
+!
+
+test_documentgetxmlstandalone05
+ "
+ Cretae a new DocumentType node whose systemId is StaffNS.DTD. Create a new Document
+ node. Check if the value of the standalone attribute on the new Document is false.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-standalone
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ newDocType "DocumentType"
+ domImpl "DOMImplementation"
+ standalone "Boolean"
+ nullPubId "String"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ docType "DocumentType"
+ sysId "String"
+ |
+ nullPubId := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ docType := doc doctype.
+ sysId := docType systemId.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDocType := domImpl createDocumentType:rootName publicId:nullPubId systemId:sysId.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: newDocType.
+ standalone := newDoc xmlStandalone.
+ self deny: standalone.
+
+!
+
+test_documentgetxmlversion01
+ "
+ Check if the value of the version attribute in the XML declaration of this document
+ obtained by parsing staffNS.xml is 1.0 .
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-version
+ "
+ |
+ doc "Document"
+ versionValue "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ self assert: ( versionValue = '1.0' ).
+
+!
+
+test_documentgetxmlversion02
+ "
+ Check if the value of the version attribute in the XML declaration of a new document
+ is 1.0 .
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-version
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ versionValue "String"
+ domImpl "DOMImplementation"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ self assert: ( versionValue asLowercase = '1.0' asLowercase ).
+
+!
+
+test_documentgetxmlversion03
+ "
+ Check if the value of the version attribute in a XML document without a XMLDecl is
+ is 1.0 .
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-version
+ "
+ |
+ doc "Document"
+ versionValue "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ self assert: ( versionValue asLowercase = '1.0' asLowercase ).
+
+!
+
+test_documentnormalizedocument01
+ "
+ Invoke the normalizeDocument method on this document. Retreive the documentElement node
+ and check the nodeName of this node to make sure it has not changed.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ docElemNodeName "String"
+ origDocElemNodeName "String"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ origDocElemNodeName := docElem nodeName.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalizeError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ docElem := doc documentElement.
+ docElemNodeName := docElem nodeName.
+ self assert: ( docElemNodeName = origDocElemNodeName ).
+
+!
+
+test_documentnormalizedocument02
+ "
+Normalize a document with the 'cdata-sections' parameter set to false and
+check if the CDATASection has been preserved.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-cdata-sections
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elemName "Element"
+ cdata "CDATASection"
+ text "Text"
+ nodeName "String"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ "implementationAttribute not supported: coalescing"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ elemName := elemList item:1.
+ cdata := elemName lastChild.
+ nodeName := cdata nodeName.
+ self assert: ( nodeName = '#cdata-section' ).
+ domConfig := doc domConfig.
+ domConfig setParameter: 'cdata-sections' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalizationError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ elemList := doc getElementsByTagName: 'strong'.
+ elemName := elemList item:1.
+ cdata := elemName lastChild.
+ nodeName := cdata nodeName.
+ self assert: ( nodeName = '#cdata-section' ).
+ domConfig setParameter: 'cdata-sections' value: false.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalization2Error' severity: DOMErrorMonitor SEVERITY_ERROR.
+ elemList := doc getElementsByTagName: 'strong'.
+ elemName := elemList item:1.
+ text := elemName lastChild.
+ nodeName := text nodeName.
+ self assert: ( nodeName = '#text' ).
+
+!
+
+test_documentnormalizedocument03
+ "
+Normalize a document with a created CDATA section with the
+'cdata-sections' parameter set to true then to false and check if
+the CDATASection has been preserved and then coalesced.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=416
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-cdata-sections
+ "
+ |
+ doc "Document"
+ elem "Element"
+ newCdata "CDATASection"
+ cdata "CDATASection"
+ text "Node"
+ nodeName "String"
+ nodeValue "String"
+ appendedChild "Node"
+ domConfig "DOMConfiguration"
+ pList "NodeList"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ pList := doc getElementsByTagName: 'p'.
+ elem := pList item:0.
+ newCdata := doc createCDATASection:'CDATA'.
+ appendedChild := elem appendChild:newCdata.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'cdata-sections' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalizationError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ elem := pList item:0.
+ cdata := elem lastChild.
+ nodeName := cdata nodeName.
+ self assert: ( nodeName = '#cdata-section' ).
+ domConfig setParameter: 'cdata-sections' value: false.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalization2Error' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ elem := pList item:0.
+ text := elem lastChild.
+ nodeName := text nodeName.
+ self assert: ( nodeName = '#text' ).
+ nodeValue := text nodeValue.
+ self assert: ( nodeValue = 'barCDATA' ).
+
+!
+
+test_documentnormalizedocument04
+ "
+ Append a Comment node and normalize with comments set to false.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=416
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-comments
+ "
+ |
+ doc "Document"
+ elem "Element"
+ newComment "Comment"
+ lastChild "Node"
+ text "Text"
+ nodeName "String"
+ appendedChild "Node"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ pList "NodeList"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ pList := doc getElementsByTagName: 'p'.
+ elem := pList item:0.
+ newComment := doc createComment:'COMMENT_NODE'.
+ appendedChild := elem appendChild:newComment.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'comments' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalizationError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ elem := pList item:0.
+ lastChild := elem lastChild.
+ nodeName := lastChild nodeName.
+ self assert: ( nodeName = '#comment' ).
+ domConfig setParameter: 'comments' value: false.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalization2Error' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ elem := pList item:0.
+ lastChild := elem lastChild.
+ nodeName := lastChild nodeName.
+ self assert: ( nodeName = '#text' ).
+
+!
+
+test_documentnormalizedocument05
+ "
+Add a L1 element to a L2 namespace aware document and perform namespace normalization. Should result
+in an error.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/namespaces-algorithms#normalizeDocumentAlgo
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-namespaces
+ "
+ |
+ doc "Document"
+ elem "Element"
+ domConfig "DOMConfiguration"
+ pList "NodeList"
+ newChild "Element"
+ retval "Element"
+ errorMonitor "DOMErrorMonitor"
+ errors "List"
+ error "DOMError"
+ errorCount "SmallInteger"
+ severity "SmallInteger"
+ problemNode "Node"
+ location "DOMLocator"
+ lineNumber "SmallInteger"
+ columnNumber "SmallInteger"
+ byteOffset "SmallInteger"
+ utf16Offset "SmallInteger"
+ uri "String"
+ type "String"
+ message "String"
+ relatedException "DOMObject"
+ relatedData "DOMObject"
+ length "SmallInteger"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ errorCount := 0.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ pList := doc getElementsByTagName: 'p'.
+ elem := pList item:0.
+ newChild := doc createElement:'br'.
+ retval := elem appendChild:newChild.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'namespaces' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ errors := errorMonitor errors.
+errors do: [:error|
+ severity := error severity.
+ "if"
+ ( severity = 2 ) ifTrue: [
+ self assert:false description:'Method "greater" is not supported yet'.
+ ].
+].
+ self assert: ( errorCount = 1 ).
+
+!
+
+test_documentnormalizedocument06
+ "
+Add a CDATASection containing ]]> perform normalization with split-cdata-sections=true. Should result
+in an warning.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-split-cdata-sections
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ERROR-DOMError-severity
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ERROR-DOMError-message
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ERROR-DOMError-type
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ERROR-DOMError-relatedException
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ERROR-DOMError-relatedData
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ERROR-DOMError-location
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMLocator-line-number
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMLocator-column-number
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMLocator-byteOffset
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMLocator-utf16Offset
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMLocator-node
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMLocator-uri
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=542
+ "
+ |
+ doc "Document"
+ elem "Element"
+ domConfig "DOMConfiguration"
+ elemList "NodeList"
+ newChild "CDATASection"
+ oldChild "Node"
+ retval "Node"
+ errorMonitor "DOMErrorMonitor"
+ errors "List"
+ error "DOMError"
+ splittedCount "SmallInteger"
+ severity "SmallInteger"
+ problemNode "Node"
+ location "DOMLocator"
+ lineNumber "SmallInteger"
+ columnNumber "SmallInteger"
+ byteOffset "SmallInteger"
+ utf16Offset "SmallInteger"
+ uri "String"
+ type "String"
+ message "String"
+ relatedException "DOMObject"
+ relatedData "DOMObject"
+ length "SmallInteger"
+ nodeType "SmallInteger"
+ nodeValue "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ splittedCount := 0.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ newChild := doc createCDATASection:'this is not ]]> good'.
+ oldChild := elem firstChild.
+ elem replaceChild:oldChild with: newChild.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'split-cdata-sections' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ newChild := elem firstChild.
+ nodeValue := newChild nodeValue.
+ nodeType := newChild nodeType.
+ self deny: ( nodeType = 4 ) and: [false "no template for element contains" ].
+ errors := errorMonitor errors.
+errors do: [:error|
+ type := error type.
+ severity := error severity.
+ "if"
+ ( type = 'cdata-sections-splitted' ) ifTrue: [
+ self assert:false description:'Method "greater" is not supported yet'.
+ ].
+].
+ self assert: ( splittedCount = 1 ).
+
+!
+
+test_documentnormalizedocument07
+ "
+Add a CDATASection containing ]]> and perform normalization with split-cdata-sections=false. Should result
+in an error.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-split-cdata-sections
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ERROR-DOMError-severity
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ERROR-DOMError-message
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ERROR-DOMError-type
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ERROR-DOMError-relatedException
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ERROR-DOMError-relatedData
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ERROR-DOMError-location
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMLocator-line-number
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMLocator-column-number
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMLocator-byteOffset
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMLocator-utf16Offset
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMLocator-node
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMLocator-uri
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=542
+ "
+ |
+ doc "Document"
+ elem "Element"
+ domConfig "DOMConfiguration"
+ elemList "NodeList"
+ newChild "CDATASection"
+ oldChild "Node"
+ retval "Node"
+ errorMonitor "DOMErrorMonitor"
+ errors "List"
+ error "DOMError"
+ errorCount "SmallInteger"
+ severity "SmallInteger"
+ problemNode "Node"
+ location "DOMLocator"
+ lineNumber "SmallInteger"
+ columnNumber "SmallInteger"
+ byteOffset "SmallInteger"
+ utf16Offset "SmallInteger"
+ uri "String"
+ type "String"
+ message "String"
+ relatedException "DOMObject"
+ relatedData "DOMObject"
+ length "SmallInteger"
+ |
+ errorCount := 0.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ oldChild := elem firstChild.
+ newChild := doc createCDATASection:'this is not ]]> good'.
+ elem replaceChild:oldChild with: newChild.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'split-cdata-sections' value: false.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ errors := errorMonitor errors.
+errors do: [:error|
+ severity := error severity.
+ "if"
+ ( severity = 2 ) ifTrue: [
+ self assert:false description:'Method "greater" is not supported yet'.
+ ].
+].
+ self assert: ( errorCount = 1 ).
+
+!
+
+test_documentnormalizedocument08
+ "
+Add two CDATASections containing ]]> perform normalization with split-cdata-sections=true.
+Should result in two warnings and at least 4 nodes.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-split-cdata-sections
+ "
+ |
+ doc "Document"
+ elem "Element"
+ domConfig "DOMConfiguration"
+ elemList "NodeList"
+ newChild "CDATASection"
+ oldChild "Node"
+ retval "Node"
+ errorMonitor "DOMErrorMonitor"
+ errors "List"
+ error "DOMError"
+ length "SmallInteger"
+ childNodes "NodeList"
+ type "String"
+ splittedCount "SmallInteger"
+ severity "SmallInteger"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ splittedCount := 0.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ newChild := doc createCDATASection:'this is not ]]> good'.
+ oldChild := elem firstChild.
+ elem replaceChild:oldChild with: newChild.
+ newChild := doc createCDATASection:'this is not ]]> good'.
+ retval := elem appendChild:newChild.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'split-cdata-sections' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ errors := errorMonitor errors.
+errors do: [:error|
+ type := error type.
+ severity := error severity.
+ "if"
+ ( type = 'cdata-sections-splitted' ) ifTrue: [
+ ].
+].
+ self assert: ( splittedCount = 2 ).
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ childNodes := elem childNodes.
+ length := childNodes length.
+ self assert: ( length > 3 ).
+
+!
+
+test_documentnormalizedocument09
+ "
+ The normalizeDocument method method acts as if the document was going through a save
+ and load cycle, putting the document in a normal form.
+
+ Set the validate-if-schema feature to true. Invoke the normalizeDocument method on this
+ document. Retreive the documentElement node and check the nodeName of this node
+ to make sure it has not changed. Now set validate to false and verify the same.
+ Register an error handler on this Document and in each case make sure that it does
+ not get called.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-validate-if-schema
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ docElemNodeName "String"
+ canSet "Boolean"
+ errorHandler "DOMErrorHandler"
+ errHandler "DOMErrorHandler"
+ domConfig "DOMConfiguration"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'error-handler' value: errHandler.
+ canSet := domConfig canSetParameter: 'validate-if-schema' value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+ domConfig setParameter: 'validate-if-schema' value: false.
+ doc normalizeDocument.
+ docElem := doc documentElement.
+ docElemNodeName := docElem nodeName.
+ self assert: ( docElemNodeName = 'html' ).
+
+!
+
+test_documentnormalizedocument10
+ "
+ The normalizeDocument method method acts as if the document was going through a save
+ and load cycle, putting the document in a normal form.
+
+ Create an Element and a text node and verify the nodeValue of this text node and append these to
+ this Document. If supported, invoke the setParameter method on this domconfiguration object to set the
+ element-content-whitespace feature to false. Invoke the normalizeDocument method and verify if
+ the text node has been discarded.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-element-content-whitespace
+ "
+ |
+ doc "Document"
+ elem "Element"
+ newText "Text"
+ text "Text"
+ nodeValue "String"
+ canSet "Boolean"
+ appendedChild "Node"
+ domConfig "DOMConfiguration"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem := doc createElement:'newElem'.
+ newText := doc createTextNode:'Text Node'.
+ appendedChild := elem appendChild:newText.
+ appendedChild := doc appendChild:elem.
+ text := elem firstChild.
+ nodeValue := text nodeValue.
+ self assert: ( nodeValue = 'Text Node' ).
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'element-content-whitespace' value: true.
+ self assert: canSet.
+ domConfig setParameter: 'element-content-whitespace' value: true.
+ doc normalizeDocument.
+ text := elem firstChild.
+ nodeValue := text nodeValue.
+ self assert: ( nodeValue = 'Text Node' ).
+ canSet := domConfig canSetParameter: 'element-content-whitespace' value: false.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_documentnormalizedocument11
+ "
+ The normalizeDocument method method acts as if the document was going through a save
+ and load cycle, putting the document in a normal form.
+ The feature namespace-declarations when set to false, discards all namespace declaration attributes,
+ although namespace prefixes are still retained.
+
+ Set the normalization feature namespace-declarations to false, invoke normalizeDocument and verify
+ the nodeName of element acquired by tagname.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-namespace-declarations
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elemName "Element"
+ nodeName "String"
+ canSet "Boolean"
+ domConfig "DOMConfiguration"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ ^self. "ignoringElementContentWhitespace supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'namespace-declarations' value: true.
+ doc normalizeDocument.
+ elemList := doc getElementsByTagName: 'acronym' ns: '*'.
+ elemName := elemList item:1.
+ self assert: elemName notNil.
+ canSet := domConfig canSetParameter: 'namespace-declarations' value: false.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_documentnormalizedocument12
+ "
+ The normalizeDocument method method acts as if the document was going through a save
+ and load cycle, putting the document in a normal form.
+
+ Set the validate feature to true. Invoke the normalizeDocument method on this
+ document. Retreive the documentElement node and check the nodeName of this node
+ to make sure it has not changed. Now set validate to false and verify the same.
+ Register an error handler on this Document and in each case make sure that it does
+ not get called.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-validate
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ docElemNodeName "String"
+ canSet "Boolean"
+ domConfig "DOMConfiguration"
+ errorHandler "DOMErrorHandler"
+ errHandler "DOMErrorHandler"
+ |
+ ^self. "Validation not supported"
+ ^self. "Schema validation not supported"
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'error-handler' value: errHandler.
+ canSet := domConfig canSetParameter: 'validate' value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+ domConfig setParameter: 'validate' value: false.
+ doc normalizeDocument.
+ docElem := doc documentElement.
+ docElemNodeName := docElem nodeName.
+ self assert: ( docElemNodeName = 'html' ).
+
+!
+
+test_documentnormalizedocument13
+ "
+Add a L1 attribute to a L2 namespace aware document and perform namespace normalization. Should result
+in an error.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/namespaces-algorithms#normalizeDocumentAlgo
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-namespaces
+ "
+ |
+ doc "Document"
+ elem "Element"
+ domConfig "DOMConfiguration"
+ pList "NodeList"
+ newAttr "Attr"
+ retval "Element"
+ errorMonitor "DOMErrorMonitor"
+ errors "List"
+ error "DOMError"
+ errorCount "SmallInteger"
+ severity "SmallInteger"
+ problemNode "Node"
+ location "DOMLocator"
+ lineNumber "SmallInteger"
+ columnNumber "SmallInteger"
+ byteOffset "SmallInteger"
+ utf16Offset "SmallInteger"
+ uri "String"
+ type "String"
+ message "String"
+ relatedException "DOMObject"
+ relatedData "DOMObject"
+ length "SmallInteger"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ errorCount := 0.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ pList := doc getElementsByTagName: 'p'.
+ elem := pList item:0.
+ elem setAttribute:'title' value:'DOM L1 Attribute'.
+ newAttr := elem getAttributeNode:'title'.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'namespaces' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ errors := errorMonitor errors.
+errors do: [:error|
+ severity := error severity.
+ "if"
+ ( severity = 2 ) ifTrue: [
+ self assert:false description:'Method "greater" is not supported yet'.
+ ].
+].
+ self assert: ( errorCount = 1 ).
+
+!
+
+test_documentrenamenode01
+ "
+ Invoke the renameNode method to rename the class attribute node of the
+ second element whose localName is acronym and namespaceURI http://www.nist.gov
+ with the new namespaceURI as http://www.w3.org/DOM/Test and name as pre0fix:renamedNode.
+ Check if this attribute has been renamed successfully by verifying the
+ nodeName, namespaceURI, nodeType attributes of the renamed node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ element "Element"
+ attr "Attr"
+ childList "NodeList"
+ renamedclass "Node"
+ nodeName "String"
+ nodeType "SmallInteger"
+ namespaceURI "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'acronym'.
+ element := childList item:1.
+ attr := element getAttributeNode:'class'.
+ renamedclass := doc renameNode:attr namespaceUri:'http://www.w3.org/DOM/Test' qualifiedName:'renamedNode'.
+ nodeName := renamedclass nodeName.
+ namespaceURI := renamedclass namespaceURI.
+ nodeType := renamedclass nodeType.
+ self assert: ( nodeName = 'renamedNode' ).
+ self assert: ( nodeType = 2 ).
+ self assert: ( namespaceURI = 'http://www.w3.org/DOM/Test' ).
+
+!
+
+test_documentrenamenode02
+ "
+ Invoke the renameNode method to rename the class attribute node of the
+ second element whose localName is acronym and namespaceURI http://www.nist.gov
+ with the new namespaceURI as http://www.w3.org/DOM/Test and name as prefi0x:renamedNode.
+ Check if this attribute has been renamed successfully by verifying the
+ nodeName, namespaceURI, nodeType attributes of the renamed node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ element "Element"
+ attr "Attr"
+ childList "NodeList"
+ renamedclass "Node"
+ nodeName "String"
+ nodeType "SmallInteger"
+ namespaceURI "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'acronym'.
+ element := childList item:1.
+ attr := element getAttributeNode:'class'.
+ renamedclass := doc renameNode:attr namespaceUri:'http://www.w3.org/DOM/Test' qualifiedName:'prefi0x:renamedNode'.
+ nodeName := renamedclass nodeName.
+ namespaceURI := renamedclass namespaceURI.
+ nodeType := renamedclass nodeType.
+ self assert: ( nodeName = 'prefi0x:renamedNode' ).
+ self assert: ( namespaceURI = 'http://www.w3.org/DOM/Test' ).
+
+!
+
+test_documentrenamenode03
+ "
+ Invoke the renameNode method to rename a new attribute node to one whose
+ namespaceURI is http://www.w3.org/DOM/Test and name is pre0:fix1.
+ Check if this attribute has been renamed successfully by verifying the
+ nodeName, namespaceURI, nodeType attributes of the renamed node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ attr "Attr"
+ renamedNode "Node"
+ nodeName "String"
+ namespaceURI "String"
+ nullNSURI "String"
+ |
+ nullNSURI := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ attr := doc createAttribute:'test' ns:nullNSURI.
+ renamedNode := doc renameNode:attr namespaceUri:'http://www.w3.org/DOM/Test' qualifiedName:'pre0:fix1'.
+ nodeName := renamedNode nodeName.
+ namespaceURI := renamedNode namespaceURI.
+ self assert: ( nodeName = 'pre0:fix1' ).
+ self assert: ( namespaceURI = 'http://www.w3.org/DOM/Test' ).
+
+!
+
+test_documentrenamenode04
+ "
+ Invoke the renameNode method to rename a new attribute node to one whose
+ namespaceURI is null and name is pf.
+ Check if this attribute has been renamed successfully by verifying the
+ nodeName, namespaceURI, nodeType attributes of the renamed node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ attr "Attr"
+ renamedNode "Node"
+ nodeName "String"
+ namespaceURI "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ attr := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ renamedNode := doc renameNode:attr namespaceUri:'' qualifiedName:'title'.
+ nodeName := renamedNode nodeName.
+ namespaceURI := renamedNode namespaceURI.
+ self assert: ( nodeName = 'title' ).
+ self assert: namespaceURI isNil.
+
+!
+
+test_documentrenamenode05
+ "
+ Invoke the renameNode method to rename a new attribute node to one whose
+ namespaceURI is null and name is rened.
+ Check if this attribute has been renamed successfully by verifying the
+ nodeName, namespaceURI, nodeType attributes of the renamed node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ attr "Attr"
+ renamedNode "Node"
+ nodeName "String"
+ namespaceURI "String"
+ nullNSURI "String"
+ |
+ nullNSURI := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ attr := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ renamedNode := doc renameNode:attr namespaceUri:nullNSURI qualifiedName:'title'.
+ nodeName := renamedNode nodeName.
+ namespaceURI := renamedNode namespaceURI.
+ self assert: namespaceURI isNil.
+ self assert: ( nodeName = 'title' ).
+
+!
+
+test_documentrenamenode06
+ "
+ Invoke the renameNode method to rename the default attribute dir to xsi:schemaLocation.
+ Check if this attribute has been renamed successfully by verifying the
+ nodeName, namespaceURI, nodeType attributes of the renamed node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ element "Element"
+ attr "Attr"
+ childList "NodeList"
+ renamedclass "Node"
+ nodeName "String"
+ nodeType "SmallInteger"
+ namespaceURI "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'p'.
+ element := childList item:3.
+ attr := element getAttributeNode:'dir'.
+ renamedclass := doc renameNode:attr namespaceUri:'http://www.w3.org/2001/XMLSchema-instance' qualifiedName:'xsi:schemaLocation'.
+ nodeName := renamedclass nodeName.
+ namespaceURI := renamedclass namespaceURI.
+ nodeType := renamedclass nodeType.
+ self assert: ( nodeName = 'xsi:schemaLocation' ).
+ self assert: ( nodeType = 2 ).
+ self assert: ( namespaceURI = 'http://www.w3.org/2001/XMLSchema-instance' ).
+
+!
+
+test_documentrenamenode07
+ "
+ Invoke the renameNode method on a new document node to rename a new attribute node
+ to one whose namespaceURI is http://www.w3.org/XML/1998/namespace and name is xml:dom.
+ Check if this attribute has been renamed successfully by verifying the
+ nodeName and namespaceURI attributes of the renamed node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ attr "Attr"
+ renamedNode "Node"
+ nodeName "String"
+ namespaceURI "String"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ attr := newDoc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ renamedNode := newDoc renameNode:attr namespaceUri:'http://www.w3.org/XML/1998/namespace' qualifiedName:'xml:dom'.
+ nodeName := renamedNode nodeName.
+ namespaceURI := renamedNode namespaceURI.
+ self assert: ( nodeName = 'xml:dom' ).
+ self assert: ( namespaceURI = 'http://www.w3.org/XML/1998/namespace' ).
+
+!
+
+test_documentrenamenode08
+ "
+ Invoke the renameNode method on a new document node and try to rename the default
+ attribute dir
+ Check if a WRONG_DOCUMENT_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ element "Element"
+ attr "Attr"
+ childList "NodeList"
+ renamedNode "Node"
+ nullDocType "DocumentType"
+ docElem "Element"
+ docElemNS "String"
+ docElemName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'p'.
+ element := childList item:3.
+ attr := element getAttributeNode:'dir'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ docElem := doc documentElement.
+ docElemNS := docElem namespaceURI.
+ docElemName := docElem tagName.
+ newDoc := domImpl createDocumentNS: docElemNS qualifiedName: docElemName doctype: nullDocType.
+ "assertDOMException..."
+ self should:[
+ renamedNode := newDoc renameNode:attr namespaceUri:'http://www.w3.org/XML/1998/namespace' qualifiedName:'xml:lang'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException WRONG_DOCUMENT_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentrenamenode09
+ "
+ The method renameNode renames an existing node. When the specified node was created
+ from a different document than this document, a WRONG_DOCUMENT_ERR exception is thrown.
+
+ Invoke the renameNode method on a new Document node to rename a new attribute node
+ created in the original Document, but later adopted by this new document node. The
+ ownerDocument attribute of this attribute has now changed, such that the attribute node is considered to
+ be created from this new document node. Verify that no exception is thrown upon renaming and verify
+ the new nodeName of this attribute node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ attr "Attr"
+ renamedNode "Node"
+ adopted "Node"
+ nullDocType "DocumentType"
+ attrNodeName "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: 'http://www.w3.org/DOM/Test' qualifiedName: 'dom:newD' doctype: nullDocType.
+ attr := doc createAttribute:'test' ns:'http://www.w3.org/DOM/Test'.
+ adopted := newDoc adoptNode: attr.
+ renamedNode := newDoc renameNode:attr namespaceUri:'http://www.w3.org/2000/xmlns/' qualifiedName:'xmlns:xmlns'.
+ attrNodeName := renamedNode nodeName.
+ self assert: ( attrNodeName = 'xmlns:xmlns' ).
+
+!
+
+test_documentrenamenode10
+ "
+ The method renameNode renames an existing node and raises a NAMESPACE_ERR
+ if the qualifiedName has a prefix and the namespaceURI is null but a
+ NOT_SUPPORTED_ERR should be raised since the the type of the specified node is
+ neither ELEMENT_NODE nor ATTRIBUTE_NODE.
+
+ Invoke the renameNode method on a new document node to rename a node to nodes
+ with malformed qualifiedNames.
+ Check if a NOT_SUPPORTED_ERR gets thrown instead of a NAMESPACE_ERR.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ textEntry "String"
+ textNode "Text"
+ renamedNode "Node"
+ qualifiedName "String"
+ nullDocType "DocumentType"
+ qualifiedNames "List"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ textEntry := 'hello'.
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ textNode := doc createTextNode:textEntry.
+qualifiedNames do: [qualifiedName|
+ "assertDOMException..."
+ self should:[
+ renamedNode := doc renameNode:textNode namespaceUri:'http://www.w3.org/XML/1998/namespace' qualifiedName:qualifiedName.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+].
+
+!
+
+test_documentrenamenode11
+ "
+ The method renameNode renames an existing node and raises a NAMESPACE_ERR
+ if the qualifiedName has a prefix and the namespaceURI is null but a
+ NOT_SUPPORTED_ERR should be raised since the the type of the specified node is
+ neither ELEMENT_NODE nor ATTRIBUTE_NODE.
+
+ Invoke the renameNode method on this document node to rename a text node such that its
+ qualifiedName has a prefix and namespaceURI is null.
+ Check if a NOT_SUPPORTED_ERR gets thrown instead of a NAMESPACE_ERR.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ textEntry "String"
+ textNode "Text"
+ renamedNode "Node"
+ nullDocType "DocumentType"
+ nullNSURI "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ textEntry := 'hello'.
+ nullDocType := nil.
+ nullNSURI := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ textNode := doc createTextNode:textEntry.
+ "assertDOMException..."
+ self should:[
+ renamedNode := doc renameNode:textNode namespaceUri:nullNSURI qualifiedName:'pre:fix'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentrenamenode12
+ "
+ The method renameNode renames an existing node and raises a NAMESPACE_ERR
+ if the qualifiedName has a prefix and the namespaceURI is null but a
+ NOT_SUPPORTED_ERR should be raised since the the type of the specified node is
+ neither ELEMENT_NODE nor ATTRIBUTE_NODE.
+
+ Invoke the renameNode method on this document node to rename a text node such that its
+ qualifiedName has a prefix that is xml and namespaceURI is http://www.w3.org/XML/1999/namespace .
+ Check if a NOT_SUPPORTED_ERR gets thrown instead of a NAMESPACE_ERR since the type of node is not valid
+ for this method.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ renamedNode "Node"
+ textEntry "String"
+ textNode "Text"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ textEntry := 'hello'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ textNode := doc createTextNode:textEntry.
+ "assertDOMException..."
+ self should:[
+ renamedNode := doc renameNode:textNode namespaceUri:'http://www.w3.org/XML/1999/namespace' qualifiedName:'xml:prefix'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentrenamenode13
+ "
+ The method renameNode renames an existing node and raises a NAMESPACE_ERR
+ if the qualifiedName has a prefix and the namespaceURI is null but a
+ NOT_SUPPORTED_ERR should be raised since the the type of the specified node is
+ neither ELEMENT_NODE nor ATTRIBUTE_NODE.
+
+ Invoke the renameNode method on this document node to rename a text node such that its
+ qualifiedName has a prefix that is xmlns and namespaceURI is http://www.w3.org/XML/1998/namespace .
+ Check if a NOT_SUPPORTED_ERR gets thrown instead of a NAMESPACE_ERR since the type of node is not valid
+ for this method.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ textEntry "String"
+ textNode "Text"
+ renamedNode "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ textEntry := 'hello'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ textNode := doc createTextNode:textEntry.
+ "assertDOMException..."
+ self should:[
+ renamedNode := doc renameNode:textNode namespaceUri:'http://www.w3.org/XML/1998/namespace' qualifiedName:'xmlns:prefix'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentrenamenode14
+ "
+ The method renameNode renames an existing node and raises a NAMESPACE_ERR
+ if the qualifiedName has a prefix and the namespaceURI is null but a
+ NOT_SUPPORTED_ERR should be raised since the the type of the specified node is
+ neither ELEMENT_NODE nor ATTRIBUTE_NODE.
+
+ Invoke the renameNode method on this document node to rename a text node such that its
+ qualifiedName is xmlns and namespaceURI is http://www.w3.org/2000/xmlns .
+ Check if a NOT_SUPPORTED_ERR gets thrown instead of a NAMESPACE_ERR since the type of node is
+ not valid for this method.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ renamedNode "Node"
+ nullDocType "DocumentType"
+ textEntry "String"
+ textNode "Text"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullDocType := nil.
+ textEntry := 'hello'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ textNode := doc createTextNode:textEntry.
+ "assertDOMException..."
+ self should:[
+ renamedNode := doc renameNode:textNode namespaceUri:'http://www.w3.org/2000/xmlns' qualifiedName:'xmlns'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentrenamenode15
+ "
+ Rename the fourth acronym element to svg:rect and verify the
+ nodeName, namespaceURI, nodeType attributes of the renamed node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ element "Element"
+ childList "NodeList"
+ renamedclass "Node"
+ nodeName "String"
+ nodeType "SmallInteger"
+ namespaceURI "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'acronym'.
+ element := childList item:3.
+ renamedclass := doc renameNode:element namespaceUri:'http://www.w3.org/DOM/Test' qualifiedName:'qnam:renamedNode'.
+ nodeName := renamedclass nodeName.
+ namespaceURI := renamedclass namespaceURI.
+ nodeType := renamedclass nodeType.
+ self assert: ( nodeName = 'qnam:renamedNode' ).
+ self assert: ( nodeType = 1 ).
+ self assert: ( namespaceURI = 'http://www.w3.org/DOM/Test' ).
+
+!
+
+test_documentrenamenode16
+ "
+ Invoke the renameNode method to rename the fourth
+ acronym element with a new namespaceURI that is
+ null and qualifiedName that is renamedNode.
+ Check if this element has been renamed successfully by verifying the
+ nodeName, attributes of the renamed node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ element "Element"
+ childList "NodeList"
+ renamedclass "Node"
+ nodeName "String"
+ nodeType "SmallInteger"
+ namespaceURI "String"
+ nullNSURI "String"
+ |
+ nullNSURI := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'acronym'.
+ element := childList item:3.
+ renamedclass := doc renameNode:element namespaceUri:nullNSURI qualifiedName:'renamedNode'.
+ nodeName := renamedclass nodeName.
+ namespaceURI := renamedclass namespaceURI.
+ nodeType := renamedclass nodeType.
+ self assert: ( nodeName = 'renamedNode' ).
+ self assert: ( nodeType = 1 ).
+ self assert: namespaceURI isNil.
+
+!
+
+test_documentrenamenode17
+ "
+ Invoke the renameNode method to rename a new element node of a new document so that
+ its namespaceURI is http://www.w3.org/2000/xmlns/ and qualifiedName is xmlns:xmlns.
+ Check if this element has been renamed successfully by verifying the
+ nodeName, attributes of the renamed node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ element "Element"
+ renamedNode "Node"
+ nodeName "String"
+ nodeType "SmallInteger"
+ namespaceURI "String"
+ docElem "Element"
+ rootNS "String"
+ rootTagname "String"
+ nullDocType "DocumentType"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootTagname := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootTagname doctype: nullDocType.
+ element := newDoc createElement:'body' ns:'http://www.w3.org/1999/xhtml'.
+ renamedNode := newDoc renameNode:element namespaceUri:'http://www.w3.org/1999/xhtml' qualifiedName:'xhtml:head'.
+ nodeName := renamedNode nodeName.
+ namespaceURI := renamedNode namespaceURI.
+ nodeType := renamedNode nodeType.
+ self assert: ( nodeName = 'xhtml:head' ).
+ self assert: ( nodeType = 1 ).
+ self assert: ( namespaceURI = 'http://www.w3.org/1999/xhtml' ).
+
+!
+
+test_documentrenamenode18
+ "
+ Invoke the renameNode method on this document and try to rename a new element
+ node of a new document.
+ Check if a WRONG_DOCUMENT_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ element "Element"
+ renamedNode "Node"
+ docElem "Element"
+ rootNS "String"
+ rootTagname "String"
+ nullDocType "DocumentType"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootTagname := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootTagname doctype: nullDocType.
+ element := newDoc createElement:'body' ns:'http://www.w3.org/1999/xhtml'.
+ "assertDOMException..."
+ self should:[
+ renamedNode := doc renameNode:element namespaceUri:'http://www.w3.org/1999/xhtml' qualifiedName:'head'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException WRONG_DOCUMENT_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentrenamenode19
+ "
+ The method renameNode renames an existing node and raises a NAMESPACE_ERR
+ if the qualifiedName is malformed per the Namespaces in XML specification.
+
+ Invoke the renameNode method on a new document node to rename a node to nodes
+ with malformed qualifiedNames.
+ Check if a NAMESPACE_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ element "Element"
+ renamedNode "Node"
+ qualifiedName "String"
+ nullDocType "DocumentType"
+ qualifiedNames "List"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: 'http://www.w3.org/DOM/Test' qualifiedName: 'newD' doctype: nullDocType.
+ element := doc createElement:'test' ns:'http://www.w3.org/DOM/Test'.
+qualifiedNames do: [qualifiedName|
+ "assertDOMException..."
+ self should:[
+ renamedNode := doc renameNode:element namespaceUri:'http://www.w3.org/2000/XMLNS' qualifiedName:qualifiedName.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NAMESPACE_ERR).
+ "end of assertDOMException..."
+].
+
+!
+
+test_documentrenamenode20
+ "
+ Invoke the renameNode method on this document node to rename a node such that its
+ qualifiedName has a prefix that is xml:html and namespaceURI is
+ http://www.example.com/namespace .
+ Check if a NAMESPACE_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ element "Element"
+ renamedNode "Node"
+ docElem "Element"
+ rootNS "String"
+ rootTagname "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootTagname := docElem tagName.
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootTagname := docElem tagName.
+ element := doc createElement:rootTagname ns:rootNS.
+ "assertDOMException..."
+ self should:[
+ renamedNode := doc renameNode:element namespaceUri:'http://www.example.com/xml' qualifiedName:'xml:html'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NAMESPACE_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentrenamenode21
+ "
+ Invoke the renameNode method on this document node to rename a node such that its
+ qualifiedName has a prefix that is xmlns:xml and namespaceURI is http://www.w3.org/2000/XMLNS/ .
+ Check if a NAMESPACE_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ attr "Attr"
+ renamedNode "Node"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ attr := newDoc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ "assertDOMException..."
+ self should:[
+ renamedNode := newDoc renameNode:attr namespaceUri:'http://www.w3.org/2000/XMLNS/' qualifiedName:'xmlns:xml'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NAMESPACE_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentrenamenode22
+ "
+ Invoke the renameNode method on this document node to rename a node such that its
+ qualifiedName is xmlns and namespaceURI is http://www.w3.org/1999/xmlns/ .
+ Check if a NAMESPACE_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ attr "Attr"
+ renamedNode "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ attr := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ "assertDOMException..."
+ self should:[
+ renamedNode := doc renameNode:attr namespaceUri:'http://www.w3.org/1999/xmlns/' qualifiedName:'xmlns'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NAMESPACE_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentrenamenode23
+ "
+ The method renameNode renames an existing node and raises a NOT_SUPPORTED_ERR
+ if the type of the specified node is neither ELEMENT_NODE nor ATTRIBUTE_NODE.
+
+ Invoke the renameNode method on this document node to attempt to rename itself.
+ Check if a NOT_SUPPORTED_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ renamedNode "Node"
+ docowner "Document"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ "assertDOMException..."
+ self should:[
+ renamedNode := doc renameNode:doc namespaceUri:'http://www.w3.org/DOM/Test' qualifiedName:'root'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentrenamenode24
+ "
+ The method renameNode renames an existing node and raises a NOT_SUPPORTED_ERR
+ if the type of the specified node is neither ELEMENT_NODE nor ATTRIBUTE_NODE.
+
+ Invoke the renameNode method on this document node to attempt to rename itself.
+ The namespaceURI specified here is null and the name has a prefix.
+ Check if a NOT_SUPPORTED_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ renamedNode "Node"
+ nullNSURI "String"
+ docowner "Document"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullNSURI := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ "assertDOMException..."
+ self should:[
+ renamedNode := doc renameNode:doc namespaceUri:nullNSURI qualifiedName:'doc:root'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentrenamenode25
+ "
+ Invoke the renameNode method to attempt to rename a DOcumentType node of this Document.
+ Check if a NOT_SUPPORTED_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ renamedNode "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ "assertDOMException..."
+ self should:[
+ renamedNode := doc renameNode:docType namespaceUri:'http://www.w3.org/DOM/Test' qualifiedName:'root'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentrenamenode26
+ "
+ Invoke the renameNode method oto attempt to rename a new DocumentFragment node
+ of this Document.
+ Check if a NOT_SUPPORTED_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ renamedNode "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docFrag := doc createDocumentFragment.
+ "assertDOMException..."
+ self should:[
+ renamedNode := doc renameNode:docFrag namespaceUri:'http://www.w3.org/DOM/Test' qualifiedName:'root'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentrenamenode27
+ "
+ Invoke the renameNode method to attempt to rename new Text, Comment, CDataSection,
+ ProcessingInstruction and EntityReference nodes of a new Document.
+ Check if a NOT_SUPPORTED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ text "Text"
+ comment "Comment"
+ cdata "CDATASection"
+ pi "ProcessingInstruction"
+ entref "EntityReference"
+ renamedTxt "Node"
+ renamedComment "Node"
+ renamedCdata "Node"
+ renamedPi "Node"
+ renamedEntRef "Node"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ text := newDoc createTextNode:'text'.
+ comment := newDoc createComment:'comment'.
+ cdata := newDoc createCDATASection:'cdata'.
+ pi := newDoc createProcessingInstruction:'pit' data:'pid'.
+ entref := newDoc createEntityReference:'alpha'.
+ "assertDOMException..."
+ self should:[
+ renamedTxt := newDoc renameNode:text namespaceUri:'http://www.w3.org/DOM/Test' qualifiedName:'text'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+ "assertDOMException..."
+ self should:[
+ renamedComment := newDoc renameNode:comment namespaceUri:'http://www.w3.org/DOM/Test' qualifiedName:'comment'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+ "assertDOMException..."
+ self should:[
+ renamedCdata := newDoc renameNode:cdata namespaceUri:'http://www.w3.org/DOM/Test' qualifiedName:'cdata'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+ "assertDOMException..."
+ self should:[
+ renamedPi := newDoc renameNode:pi namespaceUri:'http://www.w3.org/DOM/Test' qualifiedName:'pi'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+ "assertDOMException..."
+ self should:[
+ renamedEntRef := newDoc renameNode:entref namespaceUri:'http://www.w3.org/DOM/Test' qualifiedName:'entref'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentrenamenode28
+ "
+ Invoke the renameNode method to attempt to rename a Entity and Notation nodes of this Document.
+ Check if a NOT_SUPPORTED_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entityNodeMap "NamedNodeMap"
+ notationNodeMap "NamedNodeMap"
+ entity "Entity"
+ notation "Notation"
+ renamedEntityNode "Node"
+ renamedNotationNode "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entityNodeMap := docType entities.
+ notationNodeMap := docType notations.
+ entity := entityNodeMap getNamedItem:'alpha'.
+ notation := notationNodeMap getNamedItem:'notation1'.
+ "assertDOMException..."
+ self should:[
+ renamedEntityNode := doc renameNode:entity namespaceUri:'http://www.w3.org/DOM/Test' qualifiedName:'beta'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+ "assertDOMException..."
+ self should:[
+ renamedNotationNode := doc renameNode:notation namespaceUri:'http://www.w3.org/DOM/Test' qualifiedName:'notation2'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentrenamenode29
+ "
+ Invoke the renameNode method to attempt to rename an Element node of a XML1.0 document
+ with a name that contains an invalid XML 1.0 character and check if a INVALID_CHARACTER_ERR
+ gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-renameNode
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ renamed "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ "assertDOMException..."
+ self should:[
+ renamed := doc renameNode:docElem namespaceUri:'http://www.w3.org/DOM/Test' qualifiedName:'@'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException INVALID_CHARACTER_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentsetdocumenturi01
+ "
+ The setDocmentURI method set the location of the document.
+
+ Set the documentURI to a valid string and retreive the documentURI of this
+ document and verify if it is was correctly set.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-documentURI
+ "
+ |
+ doc "Document"
+ docURI "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ doc documentURI:'file:///test'.
+ docURI := doc documentURI.
+ self assert: ( docURI = 'file:///test' ).
+
+!
+
+test_documentsetdocumenturi02
+ "
+ The setDocmentURI method set the location of the document.
+
+ Set the documentURI to null and retreive the documentURI of this document and verify
+ if it is was set to null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-documentURI
+ "
+ |
+ doc "Document"
+ docURI "String"
+ nullValue "String"
+ |
+ nullValue := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ doc documentURI:nullValue.
+ docURI := doc documentURI.
+ self assert: docURI isNil.
+
+!
+
+test_documentsetdocumenturi03
+ "
+ The setDocmentURI method set the location of the document.
+
+ Create a new document and set its documentURI to a valid string. Retreive the documentURI
+ and verify if it is was correctly set.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-documentURI
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ docURI "String"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ newDoc documentURI:'somestring'.
+ docURI := newDoc documentURI.
+ self assert: ( docURI = 'somestring' ).
+
+!
+
+test_documentsetstricterrorchecking01
+ "
+ Set the strictErrorChecking attribute value on this documentNode to false and then to true.
+ Call the createAttributeNS method on this document with an illegal character in the qualifiedName
+ and check if the INVALID_CHARACTER_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-strictErrorChecking
+ "
+ |
+ doc "Document"
+ newAttr "Attr"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ doc strictErrorChecking:false.
+ doc strictErrorChecking:true.
+ "assertDOMException..."
+ self should:[
+ newAttr := doc createAttribute:'@' ns:'http://www.w3.org/DOM/Test'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException INVALID_CHARACTER_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentsetstricterrorchecking02
+ "
+ Set the strictErrorChecking attribute value on a new Document to true.
+ Call the createAttributeNS method on this document with a a null namespaceURI and a qualified name
+ with a prefix and check if the NAMESPACE_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-strictErrorChecking
+ "
+ |
+ doc "Document"
+ newAttr "Attr"
+ nullValue "String"
+ |
+ nullValue := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ doc strictErrorChecking:true.
+ "assertDOMException..."
+ self should:[
+ newAttr := doc createAttribute:'dom:test' ns:nullValue.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NAMESPACE_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_documentsetstricterrorchecking03
+ "
+ Set the strictErrorChecking attribute value on a new Document to false and check if it was
+ correctly set using getStrictErrorChecking.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-strictErrorChecking
+ "
+ |
+ doc "Document"
+ strictErrorCheckingValue "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ doc strictErrorChecking:false.
+ strictErrorCheckingValue := doc strictErrorChecking.
+ self deny: strictErrorCheckingValue.
+
+!
+
+test_documentsetxmlstandalone01
+ "
+ Set the standalone attribute of this document to true and verify if the attribute was correctly
+ set.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-standalone
+ "
+ |
+ doc "Document"
+ standalone "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ doc xmlStandalone:true.
+ standalone := doc xmlStandalone.
+ self assert: standalone.
+
+!
+
+test_documentsetxmlstandalone02
+ "
+ Create a new document object and set standalone to false and check if it was correctly set.
+ Then repeat this by setting it to true.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-standalone
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ standalone "Boolean"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ newDoc xmlStandalone:false.
+ standalone := newDoc xmlStandalone.
+ self deny: standalone.
+ newDoc xmlStandalone:true.
+ standalone := newDoc xmlStandalone.
+ self assert: standalone.
+
+!
+
+test_documentsetxmlversion01
+ "
+ Set the value of the version attribute of the XML declaration of this document to
+ various invalid characters and verify if a NOT_SUPPORTED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-version
+ "
+ |
+ doc "Document"
+ versionValue "String"
+ illegalVersion "List"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+illegalVersion do: [versionValue|
+ "assertDOMException..."
+ self should:[
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+].
+
+!
+
+test_documentsetxmlversion02
+ "
+ Set the value of the version attribute of the XML declaration of a new document to 1.0
+ and check if it was correctly set.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-version
+ "
+ |
+ doc "Document"
+ versionValue "String"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ self assert: ( versionValue = '1.0' ).
+
+!
+
+test_documentsetxmlversion03
+ "
+ Set the value of the version attribute of the XML declaration of a new document to 1.0
+ and check if it was correctly set.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-version
+ "
+ |
+ doc "Document"
+ versionValue "String"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ self assert: ( versionValue = '1.1' ).
+
+!
+
+test_documentsetxmlversion05
+ "
+ Set the value of the version attribute of the XML declaration of a new document to -
+ and check if a NOT_SUPPORTED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-version
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ "assertDOMException..."
+ self should:[
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_SUPPORTED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_domconfigcanonicalform1
+ "Checks behavior of canonical-form configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-canonical-form
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-property
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "Boolean"
+ parameter "String"
+ |
+ nullDocType := nil.
+ parameter := 'cAnOnical-form'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ state := domConfig getParameter: parameter.
+ self deny: state.
+ canSet := domConfig canSetParameter: parameter value: false.
+ self assert: canSet.
+ canSet := domConfig canSetParameter: parameter value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+ domConfig setParameter: parameter value: false.
+
+!
+
+test_domconfigcdatasections1
+ "Checks behavior of cdata-sections configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-cdata-sections
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-setParameter
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "Boolean"
+ parameter "String"
+ |
+ nullDocType := nil.
+ parameter := 'cDaTa-sections'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ state := domConfig getParameter: parameter.
+ self assert: state.
+ canSet := domConfig canSetParameter: parameter value: false.
+ self assert: canSet.
+ canSet := domConfig canSetParameter: parameter value: true.
+ self assert: canSet.
+ domConfig setParameter: parameter value: false.
+ state := domConfig getParameter: parameter.
+ self deny: state.
+ domConfig setParameter: parameter value: true.
+ state := domConfig getParameter: parameter.
+ self assert: state.
+
+!
+
+test_domconfigcheckcharacternormalization1
+ "Checks behavior of check-character-normalization configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-check-character-normalization
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-setParameter
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "Boolean"
+ parameter "String"
+ |
+ nullDocType := nil.
+ parameter := 'cHeCk-character-normalization'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ state := domConfig getParameter: parameter.
+ self deny: state.
+ canSet := domConfig canSetParameter: parameter value: false.
+ self assert: canSet.
+ canSet := domConfig canSetParameter: parameter value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+ domConfig setParameter: parameter value: false.
+
+!
+
+test_domconfigcomments1
+ "Checks behavior of comments configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-comments
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "Boolean"
+ parameter "String"
+ |
+ nullDocType := nil.
+ parameter := 'cOmments'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ state := domConfig getParameter: parameter.
+ self assert: state.
+ canSet := domConfig canSetParameter: parameter value: false.
+ self assert: canSet.
+ canSet := domConfig canSetParameter: parameter value: true.
+ self assert: canSet.
+ domConfig setParameter: parameter value: false.
+ state := domConfig getParameter: parameter.
+ self deny: state.
+ domConfig setParameter: parameter value: true.
+ state := domConfig getParameter: parameter.
+ self assert: state.
+
+!
+
+test_domconfigdatatypenormalization1
+ "Checks behavior of datatype-normalization configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "Boolean"
+ parameter "String"
+ |
+ nullDocType := nil.
+ parameter := 'dAtAtype-normalization'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ state := domConfig getParameter: parameter.
+ self deny: state.
+ canSet := domConfig canSetParameter: parameter value: false.
+ self assert: canSet.
+ canSet := domConfig canSetParameter: parameter value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+ domConfig setParameter: parameter value: false.
+
+!
+
+test_domconfigdatatypenormalization2
+ "Setting datatype-normalization to true also forces validate to true.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "Boolean"
+ parameter "String"
+ |
+ nullDocType := nil.
+ parameter := 'datatype-normalization'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'validate' value: false.
+ canSet := domConfig canSetParameter: parameter value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_domconfigelementcontentwhitespace1
+ "Checks behavior of element-content-whitespace configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-element-content-whitespace
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-setParameter
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "Boolean"
+ parameter "String"
+ |
+ nullDocType := nil.
+ parameter := 'eLeMent-content-whitespace'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ state := domConfig getParameter: parameter.
+ self assert: state.
+ canSet := domConfig canSetParameter: parameter value: true.
+ self assert: canSet.
+ canSet := domConfig canSetParameter: parameter value: false.
+ "if"
+ (canSet) ifTrue: [
+ ].
+ domConfig setParameter: parameter value: true.
+
+!
+
+test_domconfigentities1
+ "Checks behavior of entities configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-entities
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-setParameter
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "Boolean"
+ parameter "String"
+ |
+ nullDocType := nil.
+ parameter := 'eNtIties'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ state := domConfig getParameter: parameter.
+ self assert: state.
+ canSet := domConfig canSetParameter: parameter value: false.
+ self assert: canSet.
+ canSet := domConfig canSetParameter: parameter value: true.
+ self assert: canSet.
+ domConfig setParameter: parameter value: false.
+ state := domConfig getParameter: parameter.
+ self deny: state.
+ domConfig setParameter: parameter value: true.
+ state := domConfig getParameter: parameter.
+ self assert: state.
+
+!
+
+test_domconfigerrorhandler1
+ "Checks behavior of error-handler configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-error-handler
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-setParameter
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=544
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ origHandler "DOMErrorHandler"
+ state "DOMErrorHandler"
+ parameter "String"
+ errorHandler "DOMErrorHandler"
+ |
+ nullDocType := nil.
+ parameter := 'eRrOr-handler'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ origHandler := domConfig getParameter: parameter.
+ canSet := domConfig canSetParameter: parameter value: errorHandler.
+ self assert: canSet.
+ canSet := domConfig canSetParameter: parameter value: origHandler.
+ self assert: canSet.
+ domConfig setParameter: parameter value: errorHandler.
+ state := domConfig getParameter: parameter.
+ self assert: state == errorHandler.
+ domConfig setParameter: parameter value: origHandler.
+ state := domConfig getParameter: parameter.
+ self assert: state == origHandler.
+ canSet := domConfig canSetParameter: parameter value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_domconfigerrorhandler2
+ "Calls DOMConfiguration.setParameter( error-handler , null). Spec
+ does not explicitly address the case.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-error-handler
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-setParameter
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ errorHandler "DOMErrorHandler"
+ parameter "String"
+ state "DOMErrorHandler"
+ |
+ nullDocType := nil.
+ errorHandler := nil.
+ parameter := 'error-handler'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: parameter value: errorHandler.
+ self assert: canSet.
+ domConfig setParameter: parameter value: errorHandler.
+ state := domConfig getParameter: parameter.
+ self assert: state isNil.
+
+!
+
+test_domconfiginfoset1
+ "Checks behavior of infoset configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-infoset
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-setParameter
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-cdata-sections
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-entities
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "Boolean"
+ parameter "String"
+ |
+ nullDocType := nil.
+ parameter := 'iNfOset'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ state := domConfig getParameter: parameter.
+ self deny: state.
+ canSet := domConfig canSetParameter: parameter value: false.
+ self assert: canSet.
+ canSet := domConfig canSetParameter: parameter value: true.
+ self assert: canSet.
+ domConfig setParameter: parameter value: true.
+ state := domConfig getParameter: parameter.
+ self assert: state.
+ state := domConfig getParameter: 'entities'.
+ self deny: state.
+ state := domConfig getParameter: 'cdata-sections'.
+ self deny: state.
+ domConfig setParameter: parameter value: false.
+ state := domConfig getParameter: parameter.
+ self assert: state.
+ domConfig setParameter: 'entities' value: true.
+ state := domConfig getParameter: parameter.
+ self deny: state.
+
+!
+
+test_domconfignamespacedeclarations1
+ "Checks behavior of namespace-declarations configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-namespace-declarations
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-setParameter
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "Boolean"
+ parameter "String"
+ |
+ nullDocType := nil.
+ parameter := 'nAmEspace-declarations'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ state := domConfig getParameter: parameter.
+ self assert: state.
+ canSet := domConfig canSetParameter: parameter value: false.
+ self assert: canSet.
+ canSet := domConfig canSetParameter: parameter value: true.
+ self assert: canSet.
+ domConfig setParameter: parameter value: false.
+ state := domConfig getParameter: parameter.
+ self deny: state.
+ domConfig setParameter: parameter value: true.
+ state := domConfig getParameter: parameter.
+ self assert: state.
+
+!
+
+test_domconfignamespaces1
+ "Checks behavior of namespaces configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-namespaces
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "Boolean"
+ parameter "String"
+ |
+ nullDocType := nil.
+ parameter := 'nAmEspaces'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ state := domConfig getParameter: parameter.
+ self assert: state.
+ canSet := domConfig canSetParameter: parameter value: true.
+ self assert: canSet.
+ canSet := domConfig canSetParameter: parameter value: false.
+ "if"
+ (canSet) ifTrue: [
+ ].
+ domConfig setParameter: parameter value: true.
+
+!
+
+test_domconfignamespaces2
+ "Document.getParameter( namespaces ) should be true regardles if the
+ parse that created the document was namespace aware.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-namespaces
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration
+ "
+ |
+ doc "Document"
+ domConfig "DOMConfiguration"
+ state "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ state := domConfig getParameter: 'namespaces'.
+ self assert: state.
+
+!
+
+test_domconfignormalizecharacters1
+ "Checks behavior of normalize-characters configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-normalize-characters
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-setParameter
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "Boolean"
+ parameter "String"
+ |
+ nullDocType := nil.
+ parameter := 'nOrMalize-characters'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ state := domConfig getParameter: parameter.
+ self deny: state.
+ canSet := domConfig canSetParameter: parameter value: false.
+ self assert: canSet.
+ canSet := domConfig canSetParameter: parameter value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+ domConfig setParameter: parameter value: false.
+
+!
+
+test_domconfigparameternames01
+ "Checks getParameterNames and canSetParameter for Document.domConfig.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-domConfig
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-parameterNames
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-canonical-form
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-cdata-sections
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-check-character-normalization
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-comments
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-datatype-normalization
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-entities
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-error-handler
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-infoset
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-namespaces
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-namespace-declarations
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-normalize-characters
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-split-cdata-sections
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-validate
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-validate-if-schema
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-well-formed
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-element-content-whitespace
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ config "DOMConfiguration"
+ state "Boolean"
+ parameterNames "DOMStringList"
+ parameterName "String"
+ matchCount "SmallInteger"
+ paramValue "DOMUserData"
+ canSet "Boolean"
+ |
+ matchCount := 0.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ config := doc domConfig.
+ self assert: config notNil.
+ parameterNames := config parameterNames.
+ self assert: parameterNames notNil.
+parameterNames do: [:parameterName|
+ paramValue := config getParameter: parameterName.
+ canSet := config canSetParameter: parameterName value: paramValue.
+ self assert: canSet.
+ config setParameter: parameterName value: paramValue.
+ "if"
+ ( parameterName asLowercase = 'canonical-form' asLowercase ) or: [( parameterName asLowercase = 'cdata-sections' asLowercase ) or: [( parameterName asLowercase = 'check-character-normalization' asLowercase ) or: [( parameterName asLowercase = 'comments' asLowercase ) or: [( parameterName asLowercase = 'datatype-normalization' asLowercase ) or: [( parameterName asLowercase = 'entities' asLowercase ) or: [( parameterName asLowercase = 'error-handler' asLowercase ) or: [( parameterName asLowercase = 'infoset' asLowercase ) or: [( parameterName asLowercase = 'namespaces' asLowercase ) or: [( parameterName asLowercase = 'namespace-declarations' asLowercase ) or: [( parameterName asLowercase = 'normalize-characters' asLowercase ) or: [( parameterName asLowercase = 'split-cdata-sections' asLowercase ) or: [( parameterName asLowercase = 'validate' asLowercase ) or: [( parameterName asLowercase = 'validate-if-schema' asLowercase ) or: [( parameterName asLowercase = 'well-formed' asLowercase ) or: [( parameterName asLowercase = 'element-content-whitespace' asLowercase )]]]]]]]]]]]]]]] ifTrue: [
+ ].
+].
+ self assert: ( matchCount = 16 ).
+
+!
+
+test_domconfigschemalocation1
+ "Checks behavior of schema-location configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-schema-location
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-setParameter
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "String"
+ parameter "String"
+ nullSchemaLocation "String"
+ sampleSchemaLocation "String"
+ |
+ nullDocType := nil.
+ parameter := 'sChEma-location'.
+ nullSchemaLocation := nil.
+ sampleSchemaLocation := 'http://www.example.com/schemas/sampleschema.xsd'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: parameter value: true.
+ self deny: canSet.
+ "try"
+ [
+ state := domConfig getParameter: parameter.
+ self assert: state isNil.
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+ canSet := domConfig canSetParameter: parameter value: sampleSchemaLocation.
+ self assert: canSet.
+ canSet := domConfig canSetParameter: parameter value: nullSchemaLocation.
+ self assert: canSet.
+ domConfig setParameter: parameter value: sampleSchemaLocation.
+ state := domConfig getParameter: parameter.
+ self assert: ( state = sampleSchemaLocation ).
+ domConfig setParameter: parameter value: nullSchemaLocation.
+ state := domConfig getParameter: parameter.
+ self assert: state isNil.
+
+!
+
+test_domconfigschematype1
+ "Checks behavior of schema-type configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-schema-type
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-setParameter
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "String"
+ parameter "String"
+ xmlSchemaType "String"
+ dtdType "String"
+ |
+ nullDocType := nil.
+ parameter := 'sChEma-type'.
+ xmlSchemaType := 'http://www.w3.org/2001/XMLSchema'.
+ dtdType := 'http://www.w3.org/TR/REC-xml'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: parameter value: true.
+ self deny: canSet.
+ "try"
+ [
+ state := domConfig getParameter: parameter.
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+ canSet := domConfig canSetParameter: parameter value: dtdType.
+ "if"
+ (canSet) ifTrue: [
+ ].
+ canSet := domConfig canSetParameter: parameter value: xmlSchemaType.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_domconfigsplitcdatasections1
+ "Checks behavior of split-cdata-sections configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-split-cdata-sections
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-setParameter
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "Boolean"
+ parameter "String"
+ |
+ nullDocType := nil.
+ parameter := 'sPlIt-cdata-sections'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ state := domConfig getParameter: parameter.
+ self assert: state.
+ canSet := domConfig canSetParameter: parameter value: false.
+ self assert: canSet.
+ canSet := domConfig canSetParameter: parameter value: true.
+ self assert: canSet.
+ domConfig setParameter: parameter value: false.
+ state := domConfig getParameter: parameter.
+ self deny: state.
+ domConfig setParameter: parameter value: true.
+ state := domConfig getParameter: parameter.
+ self assert: state.
+
+!
+
+test_domconfigurationcansetparameter01
+ "
+ The parameter commments is turned on by default. Check to see if this feature can be set
+ to false by invoking canSetParameter method. Also check that this method does not change the
+ value of parameter.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-canSetParameter
+ "
+ |
+ doc "Document"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ newCommentNode "Comment"
+ docElem "Element"
+ appendedChild "Node"
+ lastChild "Node"
+ commentValue "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ newCommentNode := doc createComment:'This is a new Comment node'.
+ docElem := doc documentElement.
+ appendedChild := docElem appendChild:newCommentNode.
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'comments' value: false.
+ self assert: canSet.
+ doc normalizeDocument.
+ lastChild := docElem lastChild.
+ commentValue := lastChild nodeValue.
+ self assert: ( commentValue = 'This is a new Comment node' ).
+
+!
+
+test_domconfigurationcansetparameter02
+ "
+Check that canSetParameter('cdata-sections') returns true for both true and false
+and that calls to the method do not actually change the parameter value.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-canSetParameter
+ "
+ |
+ doc "Document"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ paramVal "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'cdata-sections' value: false.
+ self assert: canSet.
+ paramVal := domConfig getParameter: 'cdata-sections'.
+ self assert: paramVal.
+ canSet := domConfig canSetParameter: 'cdata-sections' value: true.
+ self assert: canSet.
+ domConfig setParameter: 'cdata-sections' value: false.
+ canSet := domConfig canSetParameter: 'cdata-sections' value: true.
+ self assert: canSet.
+ paramVal := domConfig getParameter: 'cdata-sections'.
+ self deny: paramVal.
+ canSet := domConfig canSetParameter: 'cdata-sections' value: false.
+ self assert: canSet.
+
+!
+
+test_domconfigurationcansetparameter03
+ "
+ The canSetParameter method checks if setting a parameter to a specific value is supported.
+
+ The parameter entities is turned on by default. Check to see if this feature can be set
+ to false by invoking canSetParameter method. Also check that this method does not change the
+ value of parameter by checking if entities still exist in the document.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-canSetParameter
+ "
+ |
+ doc "Document"
+ domConfig "DOMConfiguration"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ nullNS "String"
+ entity "Entity"
+ entityName "String"
+ canSet "Boolean"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullNS := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'entities' value: false.
+ self assert: canSet.
+ doc normalizeDocument.
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ entity := entitiesMap getNamedItem:'epsilon'.
+ self assert: entity notNil.
+ entityName := entity nodeName.
+ self assert: ( entityName = 'epsilon' ).
+
+!
+
+test_domconfigurationcansetparameter04
+ "
+ The parameter entities is turned on by default. Check to see if this feature can be set
+ to false by invoking canSetParameter method. Also check that this method does not change the
+ value of parameter by checking if entity references still exist in the document.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-canSetParameter
+ "
+ |
+ doc "Document"
+ domConfig "DOMConfiguration"
+ acronymList "NodeList"
+ acronymElem "Node"
+ nodeType "SmallInteger"
+ first "Node"
+ canSet "Boolean"
+ paramVal "Boolean"
+ |
+ "implementationAttribute not supported: expandEntityReferences"
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'entities' value: false.
+ self assert: canSet.
+ paramVal := domConfig getParameter: 'entities'.
+ self assert: paramVal.
+ doc normalizeDocument.
+ acronymList := doc getElementsByTagName: 'acronym'.
+ acronymElem := acronymList item:1.
+ first := acronymElem firstChild.
+ nodeType := first nodeType.
+ self assert: ( nodeType = 5 ).
+
+!
+
+test_domconfigurationcansetparameter06
+ "
+Check that canSetParameter('element-content-whitespace', true) returns true
+and that canSetParameter('element-content-whitespace) does not change value of
+parameter.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-canSetParameter
+ "
+ |
+ doc "Document"
+ domConfig "DOMConfiguration"
+ itemList "NodeList"
+ elementBody "Element"
+ textNode "Text"
+ canSet "Boolean"
+ canSetFalse "Boolean"
+ paramVal "Boolean"
+ hasWhitespace "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ canSetFalse := domConfig canSetParameter: 'element-content-whitespace' value: false.
+ paramVal := domConfig getParameter: 'element-content-whitespace'.
+ self assert: paramVal.
+ "if"
+ (canSetFalse) ifTrue: [
+ ].
+ canSet := domConfig canSetParameter: 'element-content-whitespace' value: true.
+ self assert: canSet.
+ "if"
+ (canSetFalse) ifTrue: [
+ ].
+
+!
+
+test_domconfigurationgetparameter01
+ "
+ The method getParameter returns the value of a parameter if known.
+
+ Get the DOMConfiguration object of a document and verify that the default required features are set
+ to true.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ "
+ |
+ doc "Document"
+ domConfig "DOMConfiguration"
+ param "DOMUserData"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domConfig := doc domConfig.
+ param := domConfig getParameter: 'comments'.
+ self assert: param.
+ param := domConfig getParameter: 'cdata-sections'.
+ self assert: param.
+ param := domConfig getParameter: 'entities'.
+ self assert: param.
+ param := domConfig getParameter: 'namespace-declarations'.
+ self assert: param.
+ param := domConfig getParameter: 'infoset'.
+ self deny: param.
+
+!
+
+test_domconfigurationgetparameter02
+ "
+ The method getParameter returns the value of a parameter if known.
+
+ Get the DOMConfiguration object of a document and verify that a NOT_FOUND_ERR is thrown if the parameter
+ is not found.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ "
+ |
+ doc "Document"
+ domConfig "DOMConfiguration"
+ param "DOMUserData"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domConfig := doc domConfig.
+ "assertDOMException..."
+ self should:[
+ param := domConfig getParameter: 'not-found-param'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_domconfigvalidate1
+ "Checks behavior of validate configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-validate
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-setParameter
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "Boolean"
+ parameter "String"
+ |
+ nullDocType := nil.
+ parameter := 'vAlIdate'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ state := domConfig getParameter: parameter.
+ self deny: state.
+ canSet := domConfig canSetParameter: parameter value: false.
+ self assert: canSet.
+ canSet := domConfig canSetParameter: parameter value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+ domConfig setParameter: parameter value: false.
+
+!
+
+test_domconfigvalidateifschema1
+ "Checks behavior of validate-if-schema configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-validate-if-schema
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-setParameter
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "Boolean"
+ parameter "String"
+ |
+ nullDocType := nil.
+ parameter := 'vAlIdate-if-schema'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ state := domConfig getParameter: parameter.
+ self deny: state.
+ canSet := domConfig canSetParameter: parameter value: false.
+ self assert: canSet.
+ canSet := domConfig canSetParameter: parameter value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+ domConfig setParameter: parameter value: false.
+
+!
+
+test_domconfigwellformed1
+ "Checks behavior of well-formed configuration parameter.
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-well-formed
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-getParameter
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-setParameter
+ "
+ |
+ domImpl "DOMImplementation"
+ doc "Document"
+ domConfig "DOMConfiguration"
+ nullDocType "DocumentType"
+ canSet "Boolean"
+ state "Boolean"
+ parameter "String"
+ |
+ nullDocType := nil.
+ parameter := 'wElL-formed'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ domConfig := doc domConfig.
+ state := domConfig getParameter: parameter.
+ self assert: state.
+ canSet := domConfig canSetParameter: parameter value: true.
+ self assert: canSet.
+ canSet := domConfig canSetParameter: parameter value: false.
+ "if"
+ (canSet) ifTrue: [
+ ].
+ domConfig setParameter: parameter value: true.
+
+!
+
+test_domimplementationgetfeature01
+ "
+ Invoke getFeature method on this DOMImplementation with the value of the feature parameter
+ as Core and version as 2.0. This should return a DOMImplmentation object that's not null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMImplementation3-getFeature
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ domImplReturned "DOMImplementation"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ domImplReturned := domImpl getFeature:'Core' version:'2.0'.
+ self assert: domImplReturned notNil.
+
+!
+
+test_domimplementationgetfeature02
+ "
+ Invoke getFeature method on this DOMImplementation with the value of the feature parameter
+ as Core and version as . This should return a DOMImplementation object that's not null.
+
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMImplementation3-getFeature
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ domImplReturned "DOMImplementation"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ domImplReturned := domImpl getFeature:'Core' version:''.
+ self assert: domImplReturned notNil.
+
+!
+
+test_domimplementationgetfeature03
+ "
+ Invoke getFeature method on this DOMImplementation with the value of the feature parameter
+ as Core and version as null. This should return a DOMImplementation object that's not null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMImplementation3-getFeature
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ domImplReturned "DOMImplementation"
+ nodeName "String"
+ nullVersion "String"
+ |
+ nullVersion := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ domImplReturned := domImpl getFeature:'Core' version:nullVersion.
+ self assert: domImplReturned notNil.
+
+!
+
+test_domimplementationgetfeature05
+ "
+ Invoke getFeature method on this DOMImplementation with the value of the feature parameter
+ as and version equal to null. This should return a null DOMObject.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMImplementation3-getFeature
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ domImplReturned "DOMImplementation"
+ nullVersion "String"
+ |
+ nullVersion := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ domImplReturned := domImpl getFeature:'' version:nullVersion.
+ self assert: domImplReturned isNil.
+
+!
+
+test_domimplementationgetfeature06
+ "
+ Invoke getFeature method on this DOMImplementation with the value of the feature parameter
+ as 1-1 (some junk) and version equal to * . This should return a null DOMObject.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMImplementation3-getFeature
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ domImplReturned "DOMImplementation"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ domImplReturned := domImpl getFeature:'1-1' version:'*'.
+ self assert: domImplReturned isNil.
+
+!
+
+test_domimplementationregistry01
+ "
+DOMImplementationRegistry.newInstance() (Java) or DOMImplementationRegistry global variable
+(ECMAScript) should not be null.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ |
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+
+!
+
+test_domimplementationregistry02
+ "
+DOMImplementationRegistry.getDOMImplementation( cOrE ) should return a DOMImplementation
+where hasFeature( Core , null) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpl
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasFeature "Boolean"
+ nullVersion "String"
+ |
+ nullVersion := nil.
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImpl := domImplRegistry getDOMImplementation:'cOrE'.
+ self assert: domImpl notNil.
+ hasFeature := domImpl hasFeature:'Core' version:nullVersion.
+ self assert: hasFeature.
+
+!
+
+test_domimplementationregistry03
+ "
+DOMImplementationRegistry.getDOMImplementation( cOrE 3.0 ) should return a DOMImplementation
+where hasFeature( Core , 3.0 ) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpl
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasFeature "Boolean"
+ |
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImpl := domImplRegistry getDOMImplementation:'cOrE 3.0'.
+ self assert: domImpl notNil.
+ hasFeature := domImpl hasFeature:'Core' version:'3.0'.
+ self assert: hasFeature.
+
+!
+
+test_domimplementationregistry04
+ "
+DOMImplementationRegistry.getDOMImplementation( +cOrE ) should return a DOMImplementation
+where hasFeature( +Core , null) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpl
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasFeature "Boolean"
+ nullVersion "String"
+ |
+ nullVersion := nil.
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImpl := domImplRegistry getDOMImplementation:'+cOrE'.
+ self assert: domImpl notNil.
+ hasFeature := domImpl hasFeature:'+Core' version:nullVersion.
+ self assert: hasFeature.
+
+!
+
+test_domimplementationregistry05
+ "
+DOMImplementationRegistry.getDOMImplementation( +cOrE 3.0 ) should return a DOMImplementation
+where hasFeature( +Core , 3.0 ) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpl
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasFeature "Boolean"
+ |
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImpl := domImplRegistry getDOMImplementation:'+cOrE 3.0'.
+ self assert: domImpl notNil.
+ hasFeature := domImpl hasFeature:'+Core' version:'3.0'.
+ self assert: hasFeature.
+
+!
+
+test_domimplementationregistry06
+ "
+If the implementation supports XML , DOMImplementationRegistry.getDOMImplementation( xMl 3.0 cOrE ) should
+return a DOMImplementation where hasFeature( XML , 3.0 ), and hasFeature( Core , null) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpl
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasFeature "Boolean"
+ nullVersion "String"
+ |
+ nullVersion := nil.
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImpl := domImplRegistry getDOMImplementation:'xMl 3.0 cOrE'.
+ self assert: domImpl notNil.
+ hasFeature := domImpl hasFeature:'XML' version:'3.0'.
+ self assert: hasFeature.
+ hasFeature := domImpl hasFeature:'Core' version:nullVersion.
+ self assert: hasFeature.
+
+!
+
+test_domimplementationregistry07
+ "
+DOMImplementationRegistry.getDOMImplementation( http://www.example.com/bogus-feature 99.0 ) should return
+null.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpl
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasFeature "Boolean"
+ nullVersion "String"
+ |
+ nullVersion := nil.
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImpl := domImplRegistry getDOMImplementation:'http://www.example.com/bogus-feature 99.0'.
+ self assert: domImpl isNil.
+
+!
+
+test_domimplementationregistry08
+ "
+DOMImplementationRegistry.getDOMImplementation( SVG ) should return null or a DOMImplementation
+where hasFeature( SVG , null) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpl
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ baseImpl "DOMImplementation"
+ hasFeature "Boolean"
+ nullVersion "String"
+ |
+ nullVersion := nil.
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImpl := domImplRegistry getDOMImplementation:'SVG'.
+ "if"
+ ( domImpl isNil ) ifTrue: [
+ ].
+
+!
+
+test_domimplementationregistry09
+ "
+DOMImplementationRegistry.getDOMImplementation( HTML ) should return null or a DOMImplementation
+where hasFeature( HTML , null) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpl
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasFeature "Boolean"
+ baseImpl "DOMImplementation"
+ nullVersion "String"
+ |
+ nullVersion := nil.
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImpl := domImplRegistry getDOMImplementation:'HTML'.
+ "if"
+ ( domImpl isNil ) ifTrue: [
+ ].
+
+!
+
+test_domimplementationregistry10
+ "
+DOMImplementationRegistry.getDOMImplementation( LS ) should return null or a DOMImplementation
+where hasFeature( LS , null) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpl
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasFeature "Boolean"
+ baseImpl "DOMImplementation"
+ nullVersion "String"
+ |
+ nullVersion := nil.
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImpl := domImplRegistry getDOMImplementation:'LS'.
+ "if"
+ ( domImpl isNil ) ifTrue: [
+ ].
+
+!
+
+test_domimplementationregistry11
+ "
+DOMImplementationRegistry.getDOMImplementation( XPath ) should return null or a DOMImplementation
+where hasFeature( XPath , null) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpl
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasFeature "Boolean"
+ baseImpl "DOMImplementation"
+ nullVersion "String"
+ |
+ nullVersion := nil.
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImpl := domImplRegistry getDOMImplementation:'XPath'.
+ "if"
+ ( domImpl isNil ) ifTrue: [
+ ].
+
+!
+
+test_domimplementationregistry12
+ "
+DOMImplementationRegistry.getDOMImplementation( cOrE 3.0 xMl 3.0 eVeNts 2.0 lS ) should return null
+or a DOMImplementation that implements the specified features.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpl
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasCore "Boolean"
+ hasXML "Boolean"
+ hasEvents "Boolean"
+ hasLS "Boolean"
+ baseImpl "DOMImplementation"
+ nullVersion "String"
+ |
+ nullVersion := nil.
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImpl := domImplRegistry getDOMImplementation:'cOrE 3.0 xMl 3.0 eVeNts 2.0 lS'.
+ "if"
+ ( domImpl isNil ) ifTrue: [
+ self assert:false description:'Method "and" is not supported yet'.
+ ].
+
+!
+
+test_domimplementationregistry13
+ "
+DOMImplementationRegistry.getDOMImplementationList( cOrE ) should return a
+list of at least one DOMImplementation
+where hasFeature( Core , null) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpls
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMImplementationList-item
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMImplementationList-length
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ hasFeature "Boolean"
+ domImpl "DOMImplementation"
+ domImplList "DOMImplementationList"
+ length "SmallInteger"
+ nullVersion "String"
+ |
+ nullVersion := nil.
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImplList := domImplRegistry getDOMImplementationList:'cOrE'.
+ length := domImplList length.
+ domImpl := domImplList item:length.
+ self assert: domImpl isNil.
+ self assert: ( length > 0 ).
+domImplList do: [:domImpl|
+ hasFeature := domImpl hasFeature:'Core' version:nullVersion.
+ self assert: hasFeature.
+].
+
+!
+
+test_domimplementationregistry14
+ "
+DOMImplementationRegistry.getDOMImplementationList( cOrE 3.0 ) should return
+a list of DOMImplementation
+where hasFeature( Core , 3.0 ) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpls
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasFeature "Boolean"
+ domImplList "DOMImplementationList"
+ length "SmallInteger"
+ |
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImplList := domImplRegistry getDOMImplementationList:'cOrE 3.0'.
+ length := domImplList length.
+ self assert: ( length > 0 ).
+domImplList do: [:domImpl|
+ hasFeature := domImpl hasFeature:'Core' version:'3.0'.
+ self assert: hasFeature.
+].
+
+!
+
+test_domimplementationregistry15
+ "
+DOMImplementationRegistry.getDOMImplementationList( +cOrE ) should return
+list of DOMImplementation
+where hasFeature( +Core , null) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpls
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasFeature "Boolean"
+ nullVersion "String"
+ domImplList "DOMImplementationList"
+ length "SmallInteger"
+ |
+ nullVersion := nil.
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImplList := domImplRegistry getDOMImplementationList:'+cOrE'.
+ length := domImplList length.
+ self assert: ( length > 0 ).
+domImplList do: [:domImpl|
+ hasFeature := domImpl hasFeature:'+Core' version:nullVersion.
+ self assert: hasFeature.
+].
+
+!
+
+test_domimplementationregistry16
+ "
+DOMImplementationRegistry.getDOMImplementationList( +cOrE 3.0 ) should return
+a list of DOMImplementation
+where hasFeature( +Core , 3.0 ) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpls
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasFeature "Boolean"
+ domImplList "DOMImplementationList"
+ length "SmallInteger"
+ |
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImplList := domImplRegistry getDOMImplementationList:'+cOrE 3.0'.
+ length := domImplList length.
+ self assert: ( length > 0 ).
+domImplList do: [:domImpl|
+ hasFeature := domImpl hasFeature:'+Core' version:'3.0'.
+ self assert: hasFeature.
+].
+
+!
+
+test_domimplementationregistry17
+ "
+If the implementation supports XML , DOMImplementationRegistry.getDOMImplementationList( xMl 3.0 cOrE ) should
+return a list of DOMImplementation where hasFeature( XML , 3.0 ), and hasFeature( Core , null) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpls
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasFeature "Boolean"
+ nullVersion "String"
+ domImplList "DOMImplementationList"
+ length "SmallInteger"
+ |
+ nullVersion := nil.
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImplList := domImplRegistry getDOMImplementationList:'xMl 3.0 cOrE'.
+ length := domImplList length.
+ self assert: ( length > 0 ).
+domImplList do: [:domImpl|
+ hasFeature := domImpl hasFeature:'XML' version:'3.0'.
+ self assert: hasFeature.
+ hasFeature := domImpl hasFeature:'Core' version:nullVersion.
+ self assert: hasFeature.
+].
+
+!
+
+test_domimplementationregistry18
+ "
+DOMImplementationRegistry.getDOMImplementationList( http://www.example.com/bogus-feature 99.0 )
+should return a zero-length list.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpls
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ domImplList "DOMImplementationList"
+ length "SmallInteger"
+ |
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImplList := domImplRegistry getDOMImplementationList:'http://www.example.com/bogus-feature 99.0'.
+ length := domImplList length.
+ self assert: ( length = 0 ).
+
+!
+
+test_domimplementationregistry19
+ "
+DOMImplementationRegistry.getDOMImplementationList( SVG ) should return
+zero-length list or a list of DOMImplementation
+where hasFeature( SVG , null) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpls
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ baseImpl "DOMImplementation"
+ hasFeature "Boolean"
+ nullVersion "String"
+ domImplList "DOMImplementationList"
+ length "SmallInteger"
+ |
+ nullVersion := nil.
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImplList := domImplRegistry getDOMImplementationList:'SVG'.
+ length := domImplList length.
+ "if"
+ ( length = 0 ) ifTrue: [
+ ].
+
+!
+
+test_domimplementationregistry20
+ "
+DOMImplementationRegistry.getDOMImplementationList( HTML ) should return
+an empty list or a list of DOMImplementation
+where hasFeature( HTML , null) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpls
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasFeature "Boolean"
+ baseImpl "DOMImplementation"
+ nullVersion "String"
+ domImplList "DOMImplementationList"
+ length "SmallInteger"
+ |
+ nullVersion := nil.
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImplList := domImplRegistry getDOMImplementationList:'HTML'.
+ length := domImplList length.
+ "if"
+ ( length = 0 ) ifTrue: [
+ ].
+
+!
+
+test_domimplementationregistry21
+ "
+DOMImplementationRegistry.getDOMImplementationList( LS ) should return
+a empty list or a list of DOMImplementation
+where hasFeature( LS , null) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpls
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasFeature "Boolean"
+ baseImpl "DOMImplementation"
+ nullVersion "String"
+ domImplList "DOMImplementationList"
+ length "SmallInteger"
+ |
+ nullVersion := nil.
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImplList := domImplRegistry getDOMImplementationList:'LS'.
+ length := domImplList length.
+ "if"
+ ( length = 0 ) ifTrue: [
+ ].
+
+!
+
+test_domimplementationregistry22
+ "
+DOMImplementationRegistry.getDOMImplementationList( XPath ) should return
+an empty list or a list of DOMImplementation
+where hasFeature( XPath , null) returns true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpls
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasFeature "Boolean"
+ baseImpl "DOMImplementation"
+ nullVersion "String"
+ domImplList "DOMImplementationList"
+ length "SmallInteger"
+ |
+ nullVersion := nil.
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImplList := domImplRegistry getDOMImplementationList:'XPath'.
+ length := domImplList length.
+ "if"
+ ( length = 0 ) ifTrue: [
+ ].
+
+!
+
+test_domimplementationregistry23
+ "
+DOMImplementationRegistry.getDOMImplementationList( cOrE 3.0 xMl 3.0 eVeNts 2.0 lS )
+should return an empty list or a list of DOMImplementation that implements the specified features.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpls
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ hasCore "Boolean"
+ hasXML "Boolean"
+ hasEvents "Boolean"
+ hasLS "Boolean"
+ baseImpl "DOMImplementation"
+ nullVersion "String"
+ domImplList "DOMImplementationList"
+ length "SmallInteger"
+ |
+ nullVersion := nil.
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImplList := domImplRegistry getDOMImplementationList:'cOrE 3.0 xMl 3.0 eVeNts 2.0 lS'.
+ length := domImplList length.
+ "if"
+ ( length = 0 ) ifTrue: [
+ self assert:false description:'Method "and" is not supported yet'.
+ ].
+
+!
+
+test_domimplementationregistry24
+ "
+DOMImplementationRegistry.getDOMImplementation( ) should return an implementation.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpls
+ Subject http://lists.w3.org/Archives/Public/www-dom/2004JanMar/0111.html
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImpl "DOMImplementation"
+ |
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImpl := domImplRegistry getDOMImplementation:''.
+ self assert: domImpl notNil.
+
+!
+
+test_domimplementationregistry25
+ "
+DOMImplementationRegistry.getDOMImplementationList( cOrE 3.0 xMl 3.0 eVeNts 2.0 lS )
+should return an empty list or a list of DOMImplementation that implements the specified features.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/ecma-script-binding
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-getDOMImpls
+ Subject http://lists.w3.org/Archives/Public/www-dom/2004JanMar/0111.html
+ "
+ |
+ domImplRegistry "DOMImplementationRegistry"
+ domImplList "DOMImplementationList"
+ length "SmallInteger"
+ |
+ domImplRegistry := DOMImplementationRegistry.
+ self assert: domImplRegistry notNil.
+ domImplList := domImplRegistry getDOMImplementationList:''.
+ length := domImplList length.
+ self assert: ( length > 0 ).
+
+!
+
+test_domstringlistcontains01
+ "
+Check implementation of DOMStringList.contains by searching DOMConfig parameter
+names for comments and .
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMStringList-contains
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-parameterNames
+ "
+ |
+ doc "Document"
+ paramList "DOMStringList"
+ domConfig "DOMConfiguration"
+ contains "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domConfig := doc domConfig.
+ paramList := domConfig parameterNames.
+ contains := paramList contains:'comments'.
+ self assert: contains.
+ contains := paramList contains:''.
+ self deny: contains.
+
+!
+
+test_domstringlistcontains02
+ "
+ The contains method of the DOMStringList tests if a string is part of this DOMStringList.
+
+ Invoke the contains method on the list searching for several of the parameters recognized by the
+ DOMConfiguration object.
+ Verify that the list contains features that are required and supported by this DOMConfiguration object.
+ Verify that the contains method returns false for a string that is not contained in this DOMStringList.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMStringList-contains
+ "
+ |
+ doc "Document"
+ paramList "DOMStringList"
+ domConfig "DOMConfiguration"
+ contain "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domConfig := doc domConfig.
+ paramList := domConfig parameterNames.
+ contain := paramList contains:'comments'.
+ self assert: contain.
+ contain := paramList contains:'cdata-sections'.
+ self assert: contain.
+ contain := paramList contains:'entities'.
+ self assert: contain.
+ contain := paramList contains:'error-handler'.
+ self assert: contain.
+ contain := paramList contains:'infoset'.
+ self assert: contain.
+ contain := paramList contains:'namespace-declarations'.
+ self assert: contain.
+ contain := paramList contains:'element-content-whitespace'.
+ self assert: contain.
+ contain := paramList contains:'test'.
+ self deny: contain.
+
+!
+
+test_domstringlistgetlength01
+ "
+ The length attribute of the DOMStringList returns the number of DOMStrings in the list.
+ The range of valid child node indices is 0 to length-1 inclusive.
+
+ Invoke the length on the list of parameters returned by the DOMConfiguration object.
+ Verify that the list is not null and length is not 0.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMStringList-length
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-parameterNames
+ "
+ |
+ doc "Document"
+ paramList "DOMStringList"
+ domConfig "DOMConfiguration"
+ listSize "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domConfig := doc domConfig.
+ paramList := domConfig parameterNames.
+ self assert: paramList notNil.
+ listSize := paramList length.
+ self assert: listSize = 0.
+
+!
+
+test_domstringlistitem01
+ "
+Check implementation of DOMStringList.item by accessing items 0 and length-1 and expecting
+a string and accessing items out of range and expecting null.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMStringList-item
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMConfiguration-parameterNames
+ "
+ |
+ doc "Document"
+ paramList "DOMStringList"
+ domConfig "DOMConfiguration"
+ contains "Boolean"
+ length "SmallInteger"
+ index "SmallInteger"
+ parameter "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domConfig := doc domConfig.
+ paramList := domConfig parameterNames.
+ length := paramList length.
+ parameter := paramList item:0.
+ self assert: parameter notNil.
+ parameter := paramList item:length.
+ self assert: parameter isNil.
+ length := length - 1.
+ parameter := paramList item:length.
+ self assert: parameter notNil.
+
+!
+
+test_domstringlistitem02
+ "
+ The item method of the DOMStringList Returns the indexth item in the collection.
+ If index is greater than or equal to the number of DOMStrings in the list, this returns null.
+
+ Invoke the first item on the list of parameters returned by the DOMConfiguration object and
+ make sure it is not null. Then invoke the 100th item and verify that null is returned.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#DOMStringList-item
+ "
+ |
+ doc "Document"
+ paramList "DOMStringList"
+ domConfig "DOMConfiguration"
+ listSize "SmallInteger"
+ retStr "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domConfig := doc domConfig.
+ paramList := domConfig parameterNames.
+ retStr := paramList item:0.
+ self assert: retStr notNil.
+ retStr := paramList item:100.
+ self assert: retStr isNil.
+
+!
+
+test_elementcontentwhitespace01
+ "
+Normalize document with element-content-whitespace set to true, check that
+whitespace in element content is preserved.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-element-content-whitespace
+ "
+ |
+ doc "Document"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ errorMonitor "DOMErrorMonitor"
+ bodyList "NodeList"
+ body "Node"
+ child "Node"
+ childName "String"
+ childType "SmallInteger"
+ text "Text"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'element-content-whitespace' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ bodyList := doc getElementsByTagName: 'body'.
+ body := bodyList item:0.
+ child := body firstChild.
+ childType := child nodeType.
+ "if"
+ ( childType = 1 ) ifTrue: [
+ ].
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalizeError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ bodyList := doc getElementsByTagName: 'body'.
+ body := bodyList item:0.
+ child := body firstChild.
+ self assert: child notNil.
+ childName := child nodeName.
+ self assert: ( childName = '#text' ).
+ child := child nextSibling.
+ self assert: child notNil.
+ childName := child nodeName.
+ self assert: ( childName = 'p' ).
+
+!
+
+test_elementcontentwhitespace02
+ "
+Normalize document with element-content-whitespace set to false and validation set to true, check that
+whitespace in element content is eliminated.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-element-content-whitespace
+ "
+ |
+ doc "Document"
+ bodyList "NodeList"
+ body "Element"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ canSetValidate "Boolean"
+ errorMonitor "DOMErrorMonitor"
+ child "Node"
+ childName "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'element-content-whitespace' value: false.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ "if"
+ (canSetValidate) and: [(canSet)] ifTrue: [
+ ].
+
+!
+
+test_elementcontentwhitespace03
+ "
+Normalize document using Node.normalize with element-content-whitespace set to false and validation set to true, check that
+whitespace in element content is preserved.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-normalize
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-element-content-whitespace
+ "
+ |
+ doc "Document"
+ bodyList "NodeList"
+ body "Element"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ canSetValidate "Boolean"
+ errorMonitor "DOMErrorMonitor"
+ child "Node"
+ childName "String"
+ text "Text"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ "if"
+ false "no template for element implementationAttribute" ifTrue: [
+ ].
+ canSet := domConfig canSetParameter: 'element-content-whitespace' value: false.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_elementgetschematypeinfo01
+ "
+Call getSchemaTypeInfo on title attribute for the first em element from DTD validated document.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Element-schemaTypeInfo
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeName
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeNamespace
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ typeNS "String"
+ typeName "String"
+ |
+ ^self. "Validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: typeName isNil.
+ typeNS := typeInfo typeNamespace.
+ self assert: typeNS isNil.
+
+!
+
+test_elementgetschematypeinfo02
+ "
+Call getSchemaTypeInfo on title attribute for the first em element from schema-validated document.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Element-schemaTypeInfo
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeName
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeNamespace
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ typeNS "String"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'emType' ).
+ typeNS := typeInfo typeNamespace.
+ self assert: ( typeNS = 'http://www.w3.org/1999/xhtml' ).
+
+!
+
+test_elementgetschematypeinfo03
+ "
+Element.schemaTypeInfo should return null if not validating or schema validating.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Element-schemaTypeInfo
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeName
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeNamespace
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ typeName "String"
+ typeNS "String"
+ |
+ "implementationAttribute not supported: validating"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_nodtdstaff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: typeName isNil.
+ typeNS := typeInfo typeNamespace.
+ self assert: typeNS isNil.
+
+!
+
+test_elementgetschematypeinfo04
+ "
+ The getSchemaTypeInfo method retrieves the type information associated with this element.
+
+ Load a valid document with an XML Schema.
+ Invoke getSchemaTypeInfo method on an element having [type definition] property. Expose {name} and {target namespace}
+ properties of the [type definition] property. Verity that the typeName and typeNamespace of the code element's
+ schemaTypeInfo are correct.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Element-schemaTypeInfo
+ "
+ |
+ doc "Document"
+ codeElem "Element"
+ elemTypeInfo "TypeInfo"
+ typeName "String"
+ typeNamespace "String"
+ elemList "NodeList"
+ docElemNodeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'code'.
+ codeElem := elemList item:1.
+ elemTypeInfo := codeElem schemaTypeInfo.
+ typeName := elemTypeInfo typeName.
+ typeNamespace := elemTypeInfo typeNamespace.
+ self assert: ( typeName = 'code' ).
+ self assert: ( typeNamespace = 'http://www.w3.org/1999/xhtml' ).
+
+!
+
+test_elementgetschematypeinfo05
+ "
+ The getSchemaTypeInfo method retrieves the type information associated with this element.
+
+ Load a valid document with an XML Schema.
+ Invoke getSchemaTypeInfo method on an element having [type definition] property. Expose {name} and {target namespace}
+ properties of the [type definition] property. Verity that the typeName and typeNamespace of the acronym element's
+ schemaTypeInfo are correct.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Element-schemaTypeInfo
+ "
+ |
+ doc "Document"
+ acElem "Element"
+ elemTypeInfo "TypeInfo"
+ typeName "String"
+ typeNamespace "String"
+ elemList "NodeList"
+ docElemNodeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'span'.
+ acElem := elemList item:0.
+ elemTypeInfo := acElem schemaTypeInfo.
+ typeName := elemTypeInfo typeName.
+ typeNamespace := elemTypeInfo typeNamespace.
+ self assert: ( typeName = 'string' ).
+ self assert: ( typeNamespace = 'http://www.w3.org/2001/XMLSchema' ).
+
+!
+
+test_elementgetschematypeinfo06
+ "
+ The getSchemaTypeInfo method retrieves the type information associated with this element.
+
+ Load a valid document with an XML Schema.
+ Invoke getSchemaTypeInfo method on an element having [type definition] property. Expose {name} and {target namespace}
+ properties of the [type definition] property. Verity that the typeName and typeNamespace of the strong element's
+ schemaTypeInfo are correct.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Element-schemaTypeInfo
+ "
+ |
+ doc "Document"
+ strongElem "Element"
+ elemTypeInfo "TypeInfo"
+ typeName "String"
+ typeNamespace "String"
+ elemList "NodeList"
+ docElemNodeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ strongElem := elemList item:1.
+ elemTypeInfo := strongElem schemaTypeInfo.
+ typeName := elemTypeInfo typeName.
+ typeNamespace := elemTypeInfo typeNamespace.
+ self assert: ( typeName = 'strongType' ).
+ self assert: ( typeNamespace = 'http://www.w3.org/1999/xhtml' ).
+
+!
+
+test_elementgetschematypeinfo07
+ "
+ The getSchemaTypeInfo method retrieves the type information associated with this element.
+
+ Load a valid document with an XML Schema.
+ Invoke getSchemaTypeInfo method on an element having [type definition] property. Expose {name} and {target namespace}
+ properties of the [type definition] property. Verity that the typeName and typeNamespace of the name element's
+ schemaTypeInfo are correct.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Element-schemaTypeInfo
+ "
+ |
+ doc "Document"
+ supElem "Element"
+ elemTypeInfo "TypeInfo"
+ typeName "String"
+ typeNamespace "String"
+ docElemNodeName "String"
+ elemList "NodeList"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'sup'.
+ supElem := elemList item:0.
+ elemTypeInfo := supElem schemaTypeInfo.
+ typeName := elemTypeInfo typeName.
+ typeNamespace := elemTypeInfo typeNamespace.
+ self assert: ( typeName = 'sup' ).
+ self assert: ( typeNamespace = 'http://www.w3.org/1999/xhtml' ).
+
+!
+
+test_elementsetidattribute01
+ "
+ Invoke setIdAttribute on the third acronym element's class attribute. Verify by calling isID
+ on the class attribute and getElementById on document. Invoke setIdAttribute again to reset.
+ Calling isID should return false.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttr
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ acronymElem setIdAttribute: 'class' isId:true.
+ attributesMap := acronymElem attributes.
+ attr := attributesMap getNamedItem:'class'.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'No'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'acronym' ).
+ acronymElem setIdAttribute: 'class' isId:false.
+ id := attr isId.
+ self deny: id.
+
+!
+
+test_elementsetidattribute03
+ "
+ First use setAttribute to change the class attribute of the third acronym element. Invoke setIdAttribute
+ on the newly set attribute. Verify by calling isID on the new attribute and getElementById on document.
+ Invoke setIdAttribute again to reset. Calling isID should return false.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttr
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ acronymElem setAttribute:'class' value:'Maybe'.
+ acronymElem setIdAttribute: 'class' isId:true.
+ attributesMap := acronymElem attributes.
+ attr := attributesMap getNamedItem:'class'.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'Maybe'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'acronym' ).
+ acronymElem setIdAttribute: 'class' isId:false.
+ id := attr isId.
+ self deny: id.
+
+!
+
+test_elementsetidattribute04
+ "
+ First use setAttribute to create a new attribute on the third strong element. Invoke setIdAttribute
+ on the new attribute. Verify by calling isID on the new attribute and getElementById on document.
+ Invoke setIdAttribute again to reset. Calling isID should return false.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttr
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ nameElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ nameElem := elemList item:2.
+ nameElem setAttribute:'hasMiddleName' value:'Antoine'.
+ nameElem setIdAttribute: 'hasMiddleName' isId:true.
+ attributesMap := nameElem attributes.
+ attr := attributesMap getNamedItem:'hasMiddleName'.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'Antoine'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'strong' ).
+ nameElem setIdAttribute: 'hasMiddleName' isId:false.
+ id := attr isId.
+ self deny: id.
+
+!
+
+test_elementsetidattribute05
+ "
+ Invoke setIdAttribute on the third strong element with a non-existing attribute name. Verify that
+ NOT_FOUND_ERR is raised.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttr
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ nameElem "Element"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ nameElem := elemList item:2.
+ "assertDOMException..."
+ self should:[
+ nameElem setIdAttribute: 'hasMiddleName' isId:true.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_elementsetidattribute06
+ "
+ Invoke setIdAttribute on the third strong element with an attribute name of the acronym element.
+ Verify that NOT_FOUND_ERR is raised.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttr
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ nameElem "Element"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ nameElem := elemList item:2.
+ "assertDOMException..."
+ self should:[
+ nameElem setIdAttribute: 'class' isId:true.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_elementsetidattribute07
+ "
+ First use setAttribute to create two new attribute of the second and third strong element with different values.
+ Invoke setIdAttribute on the new attributes. Verify by calling isID on the new attributes and getElementById
+ with two different values on document.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttr
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ nameElem1 "Element"
+ nameElem2 "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ nameElem1 := elemList item:2.
+ nameElem2 := elemList item:3.
+ nameElem1 setAttribute:'hasMiddleName' value:'Antoine'.
+ nameElem1 setIdAttribute: 'hasMiddleName' isId:true.
+ nameElem2 setAttribute:'hasMiddleName' value:'Neeya'.
+ nameElem2 setIdAttribute: 'hasMiddleName' isId:true.
+ attributesMap := nameElem1 attributes.
+ attr := attributesMap getNamedItem:'hasMiddleName'.
+ id := attr isId.
+ self assert: id.
+ attributesMap := nameElem2 attributes.
+ attr := attributesMap getNamedItem:'hasMiddleName'.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'Antoine'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'strong' ).
+ elem := doc getElementById:'Neeya'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'strong' ).
+
+!
+
+test_elementsetidattribute08
+ "
+ Invoke setIdAttribute class attribute on the second, third, and the fifth acronym element.
+ Verify by calling isID on the attributes and getElementById with the unique value No on document.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttr
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem1 "Element"
+ acronymElem2 "Element"
+ acronymElem3 "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem1 := elemList item:1.
+ acronymElem2 := elemList item:2.
+ acronymElem3 := elemList item:4.
+ acronymElem1 setIdAttribute: 'class' isId:true.
+ acronymElem2 setIdAttribute: 'class' isId:true.
+ acronymElem3 setIdAttribute: 'class' isId:true.
+ attributesMap := acronymElem1 attributes.
+ attr := attributesMap getNamedItem:'class'.
+ id := attr isId.
+ self assert: id.
+ attributesMap := acronymElem2 attributes.
+ attr := attributesMap getNamedItem:'class'.
+ id := attr isId.
+ self assert: id.
+ attributesMap := acronymElem3 attributes.
+ attr := attributesMap getNamedItem:'class'.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'No'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'acronym' ).
+
+!
+
+test_elementsetidattribute09
+ "
+ First use setAttribute to create two new attributes on the second strong element and sup element.
+ Invoke setIdAttribute on the new attributes. Verify by calling isID on the new attributes and getElementById
+ with two different values on document.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttr
+ "
+ |
+ doc "Document"
+ elemList1 "NodeList"
+ elemList2 "NodeList"
+ nameElem "Element"
+ salaryElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList1 := doc getElementsByTagName: 'strong'.
+ elemList2 := doc getElementsByTagName: 'sup'.
+ nameElem := elemList1 item:2.
+ salaryElem := elemList2 item:2.
+ nameElem setAttribute:'hasMiddleName' value:'Antoine'.
+ salaryElem setAttribute:'annual' value:'2002'.
+ nameElem setIdAttribute: 'hasMiddleName' isId:true.
+ salaryElem setIdAttribute: 'annual' isId:true.
+ attributesMap := nameElem attributes.
+ attr := attributesMap getNamedItem:'hasMiddleName'.
+ id := attr isId.
+ self assert: id.
+ attributesMap := salaryElem attributes.
+ attr := attributesMap getNamedItem:'annual'.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'Antoine'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'strong' ).
+ elem := doc getElementById:'2002'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'sup' ).
+
+!
+
+test_elementsetidattribute10
+ "
+ Invoke setIdAttribute on the third acronym element's class attribute consecutively with different
+ isId values. Verify by calling isId on the attribute.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttr
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ acronymElem setIdAttribute: 'class' isId:true.
+ attributesMap := acronymElem attributes.
+ attr := attributesMap getNamedItem:'class'.
+ id := attr isId.
+ self assert: id.
+ acronymElem setIdAttribute: 'class' isId:true.
+ id := attr isId.
+ self assert: id.
+ acronymElem setIdAttribute: 'class' isId:false.
+ id := attr isId.
+ self deny: id.
+ elem := doc getElementById:'No'.
+ self assert: elem isNil.
+
+!
+
+test_elementsetidattribute11
+ "
+ Invoke setIdAttribute on the 4th acronym element's class attribute which contains
+ an entity reference. Verify by calling isID on the class attribute and getElementById
+ on document. Invoke setIdAttribute again to reset. Calling isID should return false.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttr
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:3.
+ acronymElem setIdAttribute: 'class' isId:true.
+ attributesMap := acronymElem attributes.
+ attr := attributesMap getNamedItem:'class'.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'Yα'.
+ self assert: elem notNil.
+ elemName := elem tagName.
+ self assert: ( elemName = 'acronym' ).
+ acronymElem setIdAttribute: 'class' isId:false.
+ id := attr isId.
+ self deny: id.
+
+!
+
+test_elementsetidattributenode01
+ "
+ Invoke setIdAttributeNode on the 3rd p element using the title attribute as a parameter . Verify by calling
+ isID on the attribute node and getElementById on document node. Call setIdAttributeNode again with isId=false
+ to reset. Invoke isId on the attribute node should return false.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNode
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ employeeElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ employeeElem := elemList item:2.
+ attributesMap := employeeElem attributes.
+ attr := attributesMap getNamedItem:'xmlns:dmstc'.
+ employeeElem setIdAttributeNode:attr isId:true.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'http://www.netzero.com'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'p' ).
+ elem setIdAttributeNode:attr isId:false.
+ id := attr isId.
+ self deny: id.
+
+!
+
+test_elementsetidattributenode02
+ "
+ Invoke setIdAttributeNode on the 3rd acronym element using the class attribute as a parameter . Verify by calling
+ isID on the attribute node and getElementById on document node. Call setIdAttributeNode again with isId=false
+ to reset. Invoke isId on the attribute node should return false.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNode
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ attributesMap := acronymElem attributes.
+ attr := attributesMap getNamedItem:'class'.
+ acronymElem setIdAttributeNode:attr isId:true.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'No'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'acronym' ).
+ elem setIdAttributeNode:attr isId:false.
+ id := attr isId.
+ self deny: id.
+
+!
+
+test_elementsetidattributenode03
+ "
+ Create a new attribute node on the second strong element. Invoke setIdAttributeNode on a newly created
+ attribute node. Verify by calling isID on the attribute node and getElementById on document node.
+ Call setIdAttributeNode again with isId=false to reset. Invoke isId on the attribute node should return false.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNode
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ nameElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ newAttr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ nameElem := elemList item:1.
+ nameElem setAttribute:'title' value:'Karen'.
+ attributesMap := nameElem attributes.
+ attr := attributesMap getNamedItem:'title'.
+ nameElem setIdAttributeNode:attr isId:true.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'Karen'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'strong' ).
+ elem setIdAttributeNode:attr isId:false.
+ id := attr isId.
+ self deny: id.
+
+!
+
+test_elementsetidattributenode04
+ "
+ Create a new namespace attribute on the second strong element. Invoke setIdAttributeNode on a newly created
+ attribute node. Verify by calling isID on the attribute node and getElementById on document node.
+ Call setIdAttributeNode again with isId=false to reset. Invoke isId on the attribute node should return false.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNode
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ nameElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ newAttr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ nameElem := elemList item:1.
+ nameElem setAttribute: 'xmlns:middle' ns: 'http://www.w3.org/2000/xmlns/' value: 'http://www.example.com/middle'.
+ attributesMap := nameElem attributes.
+ attr := attributesMap getNamedItem:'xmlns:middle'.
+ nameElem setIdAttributeNode:attr isId:true.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'http://www.example.com/middle'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'strong' ).
+ elem setIdAttributeNode:attr isId:false.
+ id := attr isId.
+ self deny: id.
+
+!
+
+test_elementsetidattributenode05
+ "
+ Invoke setIdAttributeNode on the third strong element but with the class attribute of the acronym
+ element as a parameter. Verify that NOT_FOUND_ERR is raised.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNode
+ "
+ |
+ doc "Document"
+ elemList1 "NodeList"
+ elemList2 "NodeList"
+ nameElem "Element"
+ acronymElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList1 := doc getElementsByTagName: 'strong'.
+ elemList2 := doc getElementsByTagName: 'acronym'.
+ nameElem := elemList1 item:1.
+ acronymElem := elemList2 item:1.
+ attributesMap := acronymElem attributes.
+ attr := attributesMap getNamedItem:'class'.
+ "assertDOMException..."
+ self should:[
+ nameElem setIdAttributeNode:attr isId:true.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_elementsetidattributenode06
+ "
+ Invoke setIdAttributeNode on the third strong element but with the title attribute of the acronym
+ element as a parameter. Verify that NOT_FOUND_ERR is raised.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNode
+ "
+ |
+ doc "Document"
+ elemList1 "NodeList"
+ elemList2 "NodeList"
+ nameElem "Element"
+ acronymElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ nameElement "Element"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList1 := doc getElementsByTagName: 'strong'.
+ elemList2 := doc getElementsByTagName: 'acronym'.
+ nameElem := elemList1 item:1.
+ acronymElem := elemList2 item:1.
+ attributesMap := acronymElem attributes.
+ attr := attributesMap getNamedItem:'xsi:noNamespaceSchemaLocation'.
+ "assertDOMException..."
+ self should:[
+ nameElem setIdAttributeNode:attr isId:true.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_elementsetidattributenode07
+ "
+ Invoke setIdAttributeNode on the 2nd and 3rd acronym element using the class attribute as a parameter . Verify by calling
+ isID on the attribute node and getElementById on document node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNode
+ "
+ |
+ doc "Document"
+ elemList1 "NodeList"
+ elemList2 "NodeList"
+ acronymElem1 "Element"
+ acronymElem2 "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList1 := doc getElementsByTagName: 'acronym'.
+ elemList2 := doc getElementsByTagName: 'acronym'.
+ acronymElem1 := elemList1 item:1.
+ acronymElem2 := elemList2 item:2.
+ attributesMap := acronymElem1 attributes.
+ attr := attributesMap getNamedItem:'class'.
+ acronymElem1 setIdAttributeNode:attr isId:true.
+ id := attr isId.
+ self assert: id.
+ attributesMap := acronymElem2 attributes.
+ attr := attributesMap getNamedItem:'class'.
+ acronymElem2 setIdAttributeNode:attr isId:true.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'No'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'acronym' ).
+ elem := doc getElementById:'Yes'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'acronym' ).
+
+!
+
+test_elementsetidattributenode08
+ "
+ This method declares the attribute specified by node to be of type ID. If the value of the specified attribute
+ is unique then this element node can later be retrieved using getElementById on Document. Note, however,
+ that this simply affects this node and does not change any grammar that may be in use.
+
+ Invoke setIdAttributeNode on the 2nd acronym element and 3rd p element using the title and xmlns:dmstc attributes respectively
+ as parameters . Verify by calling isID on the attribute node and getElementById on document node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNode
+ "
+ |
+ doc "Document"
+ elemList1 "NodeList"
+ elemList2 "NodeList"
+ acronymElem "Element"
+ pElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList1 := doc getElementsByTagName: 'acronym' ns: '*'.
+ elemList2 := doc getElementsByTagName: 'p' ns: '*'.
+ acronymElem := elemList1 item:1.
+ pElem := elemList2 item:2.
+ attributesMap := acronymElem attributes.
+ attr := attributesMap getNamedItem:'title'.
+ acronymElem setIdAttributeNode:attr isId:true.
+ id := attr isId.
+ self assert: id.
+ attributesMap := pElem attributes.
+ attr := attributesMap getNamedItem:'xmlns:dmstc'.
+ pElem setIdAttributeNode:attr isId:true.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'Yes'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'acronym' ).
+ elem := doc getElementById:'http://www.netzero.com'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'p' ).
+
+!
+
+test_elementsetidattributenode09
+ "
+ This method declares the attribute specified by node to be of type ID. If the value of the specified attribute
+ is unique then this element node can later be retrieved using getElementById on Document. Note, however,
+ that this simply affects this node and does not change any grammar that may be in use.
+
+ Invoke setIdAttributeNode with the xmlns attribute of ent4. Verify that NO_MODIFICATION_ALLOWED_ERR is raised.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNode
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ varElem "Element"
+ entRef "EntityReference"
+ entElement "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ domConfig "DOMConfiguration"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ "implementationAttribute not supported: expandEntityReferences"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'entities' value: true.
+ doc normalizeDocument.
+ elemList := doc getElementsByTagName: 'var' ns: '*'.
+ varElem := elemList item:2.
+ entRef := varElem firstChild.
+ entElement := entRef firstChild.
+ attributesMap := entElement attributes.
+ attr := attributesMap getNamedItem:'xmlns'.
+ "assertDOMException..."
+ self should:[
+ entElement setIdAttributeNode:attr isId:true.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_elementsetidattributenode10
+ "
+ This method declares the attribute specified by node to be of type ID. If the value of the specified attribute
+ is unique then this element node can later be retrieved using getElementById on Document. Note, however,
+ that this simply affects this node and does not change any grammar that may be in use.
+
+ Invoke setIdAttributeNode on the 4th acronym element using the class attribute (containing entity reference)
+ as a parameter . Verify by calling isId on the attribute node and getElementById on document node.
+ Reset by invoking setIdAttributeNode with isId=false.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNode
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym' ns: '*'.
+ acronymElem := elemList item:3.
+ attributesMap := acronymElem attributes.
+ attr := attributesMap getNamedItem:'class'.
+ acronymElem setIdAttributeNode:attr isId:true.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'Yα'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'acronym' ).
+ acronymElem setIdAttributeNode:attr isId:false.
+ id := attr isId.
+ self deny: id.
+
+!
+
+test_elementsetidattributens01
+ "
+ Invoke setIdAttributeNS on an existing namespace attribute with a namespace URI and a qualified name. Verify by calling
+ isId on the attribute node and getElementById on document node. Call setIdAttributeNS with isId=false to reset.
+ isId should now return false.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNS
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ employeeElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ employeeElem := elemList item:2.
+ employeeElem setIdAttribute: 'dmstc' ns: 'http://www.w3.org/2000/xmlns/' isId:true.
+ attributesMap := employeeElem attributes.
+ attr := attributesMap getNamedItem:'xmlns:dmstc'.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'http://www.netzero.com'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'p' ).
+ employeeElem setIdAttribute: 'dmstc' ns: 'http://www.w3.org/2000/xmlns/' isId:false.
+ id := attr isId.
+ self deny: id.
+
+!
+
+test_elementsetidattributens02
+ "
+ Invoke setIdAttributeNS on an existing attribute with a namespace URI and a qualified name. Verify by calling
+ isID on the attribute node and getElementById on document node. Assume the grammar has not defined any
+ element of typeID. Call setIdAttributeNS with isId=false to reset. Method isId should now return false.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNS
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ addressElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ xsiNS "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ id := false.
+ xsiNS := 'http://www.w3.org/2001/XMLSchema-instance'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym' ns: '*'.
+ addressElem := elemList item:2.
+ addressElem setIdAttribute: 'noNamespaceSchemaLocation' ns: xsiNS isId:true.
+ attributesMap := addressElem attributes.
+ attr := attributesMap getNamedItem:'xsi:noNamespaceSchemaLocation'.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'Yes'.
+ self assert: elem notNil.
+ elemName := elem tagName.
+ self assert: ( elemName = 'acronym' ).
+ addressElem setIdAttribute: 'noNamespaceSchemaLocation' ns: xsiNS isId:false.
+ id := attr isId.
+ self deny: id.
+
+!
+
+test_elementsetidattributens03
+ "
+ Invoke setIdAttributeNS on a newly added namespace attribute on the first em element. Verify by calling
+ isID on the attribute node and getElementById on document node. Call setIdAttributeNS with isId=false to reset.
+ Method isId should now return false.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNS
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ employeeIdElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ employeeIdElem := elemList item:0.
+ employeeIdElem setAttribute: 'xmlns:newAttr' ns: 'http://www.w3.org/2000/xmlns/' value: 'newValue'.
+ employeeIdElem setIdAttribute: 'newAttr' ns: 'http://www.w3.org/2000/xmlns/' isId:true.
+ attributesMap := employeeIdElem attributes.
+ attr := attributesMap getNamedItem:'xmlns:newAttr'.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'newValue'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'em' ).
+ employeeIdElem setIdAttribute: 'newAttr' ns: 'http://www.w3.org/2000/xmlns/' isId:false.
+ id := attr isId.
+ self deny: id.
+
+!
+
+test_elementsetidattributens04
+ "
+ The method setIdAttributeNS declares the attribute specified by local name and namespace URI to be of type ID.
+ If the value of the specified attribute is unique then this element node can later be retrieved using getElementById on Document.
+ Note, however, that this simply affects this node and does not change any grammar that may be in use.
+
+ Invoke setIdAttributeNS on newly added attribute on the third strong element. Verify by calling
+ isID on the attribute node and getElementById on document node.
+ Call setIdAttributeNS with isId=false to reset. Method isId should now return false.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNS
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ strongElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong' ns: '*'.
+ strongElem := elemList item:2.
+ strongElem setAttribute: 'dmstc:newAttr' ns: 'http://www.netzero.com' value: 'newValue'.
+ strongElem setIdAttribute: 'newAttr' ns: 'http://www.netzero.com' isId:true.
+ attributesMap := strongElem attributes.
+ attr := attributesMap getNamedItem:'dmstc:newAttr'.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'newValue'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'strong' ).
+ strongElem setIdAttribute: 'newAttr' ns: 'http://www.netzero.com' isId:false.
+ id := attr isId.
+ self deny: id.
+
+!
+
+test_elementsetidattributens05
+ "
+ The method setIdAttributeNS declares the attribute specified by local name and namespace URI to be of type ID.
+ If the value of the specified attribute is unique then this element node can later be retrieved using getElementById on Document.
+ Note, however, that this simply affects this node and does not change any grammar that may be in use.
+
+ Invoke setIdAttributeNS on a changed attribute of the third acronym element. Verify by calling
+ isID on the attribute node and getElementById on document node.
+ Call setIdAttributeNS with isId=false to reset. Method isId should now return false.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNS
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym' ns: '*'.
+ acronymElem := elemList item:2.
+ acronymElem setAttribute: 'title' ns: '*' value: 'newValue'.
+ acronymElem setIdAttribute: 'title' ns: '*' isId:true.
+ attributesMap := acronymElem attributes.
+ attr := attributesMap getNamedItem:'title'.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'newValue'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'acronym' ).
+ acronymElem setIdAttribute: 'title' ns: '*' isId:false.
+ id := attr isId.
+ self deny: id.
+
+!
+
+test_elementsetidattributens06
+ "
+ Invoke setIdAttributeNS on the third strong element with a non-existing attribute name. Verify that
+ NOT_FOUND_ERR is raised.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNS
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ nameElem "Element"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ nameElem := elemList item:2.
+ "assertDOMException..."
+ self should:[
+ nameElem setIdAttribute: 'hasMiddleName' ns: 'http://www.netzero.com' isId:true.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_elementsetidattributens07
+ "
+ Invoke setIdAttributeNS on the second p element with a non-existing attribute. Verify that
+ NOT_FOUND_ERR is raised.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNS
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ employeeElem "Element"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ employeeElem := elemList item:1.
+ "assertDOMException..."
+ self should:[
+ employeeElem setIdAttribute: 'xsi' ns: 'http://www.netzero.com' isId:true.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_elementsetidattributens08
+ "
+ Invoke setIdAttributeNS on the second p element with a non-existing attribute. Verify that
+ NOT_FOUND_ERR is raised.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNode
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ employeeElem "Element"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ employeeElem := elemList item:1.
+ "assertDOMException..."
+ self should:[
+ employeeElem setIdAttribute: 'usa' ns: 'http://www.usa.com' isId:true.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_elementsetidattributens09
+ "
+ The method setIdAttributeNS declares the attribute specified by local name and namespace URI to be of type ID.
+ If the value of the specified attribute is unique then this element node can later be retrieved using getElementById on Document.
+ Note, however, that this simply affects this node and does not change any grammar that may be in use.
+
+ Invoke setIdAttributeNS on the xmlns attribute of ent4. Verify that NO_MODIFICATION_ALLOWED_ERR is raised.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNS
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ varElem "Element"
+ entRef "EntityReference"
+ entElement "Element"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ "implementationAttribute not supported: expandEntityReferences"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'var' ns: '*'.
+ varElem := elemList item:2.
+ entRef := varElem firstChild.
+ entElement := entRef firstChild.
+ "assertDOMException..."
+ self should:[
+ entElement setIdAttribute: 'xmlns' ns: 'http://www.w3.org/2000/xmlns/' isId:true.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_elementsetidattributens10
+ "
+ Declares the attribute specified by local name and namespace URI to be of type ID. If the value of the
+ specified attribute is unique then this element node can later be retrieved using getElementById on Document.
+ Note, however, that this simply affects this node and does not change any grammar that may be in use.
+
+ Invoke setIdAttributeNS on two existing namespace attributes with different values. Verify by calling
+ isId on the attributes and getElementById with different values on document node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNS
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ pElem1 "Element"
+ pElem2 "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p' ns: '*'.
+ pElem1 := elemList item:2.
+ pElem2 := elemList item:3.
+ pElem1 setIdAttribute: 'dmstc' ns: 'http://www.w3.org/2000/xmlns/' isId:true.
+ pElem2 setIdAttribute: 'nm' ns: 'http://www.w3.org/2000/xmlns/' isId:true.
+ attributesMap := pElem1 attributes.
+ attr := attributesMap getNamedItem:'xmlns:dmstc'.
+ id := attr isId.
+ self assert: id.
+ attributesMap := pElem2 attributes.
+ attr := attributesMap getNamedItem:'xmlns:nm'.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'http://www.netzero.com'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'p' ).
+ elem := doc getElementById:'http://www.altavista.com'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'p' ).
+
+!
+
+test_elementsetidattributens11
+ "
+ Declares the attribute specified by local name and namespace URI to be of type ID. If the value of the
+ specified attribute is unique then this element node can later be retrieved using getElementById on Document.
+ Note, however, that this simply affects this node and does not change any grammar that may be in use.
+
+ Invoke setIdAttributeNS on two existing namespace attributes with same local name but different values. Verify by calling
+ isId on the attributes node and getElementById with different values on document node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNS
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ pElem1 "Element"
+ pElem2 "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p' ns: '*'.
+ pElem1 := elemList item:1.
+ pElem2 := elemList item:2.
+ pElem1 setIdAttribute: 'dmstc' ns: 'http://www.w3.org/2000/xmlns/' isId:true.
+ pElem2 setIdAttribute: 'dmstc' ns: 'http://www.w3.org/2000/xmlns/' isId:true.
+ attributesMap := pElem1 attributes.
+ attr := attributesMap getNamedItem:'xmlns:dmstc'.
+ id := attr isId.
+ self assert: id.
+ attributesMap := pElem2 attributes.
+ attr := attributesMap getNamedItem:'xmlns:dmstc'.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'http://www.netzero.com'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'p' ).
+ elem := doc getElementById:'http://www.usa.com'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'p' ).
+
+!
+
+test_elementsetidattributens12
+ "
+ Declares the attribute specified by local name and namespace URI to be of type ID. If the value of the
+ specified attribute is unique then this element node can later be retrieved using getElementById on Document.
+ Note, however, that this simply affects this node and does not change any grammar that may be in use.
+
+ Set the noNamespaceSchemaLocation attribute on the first acronym element to No . Invoke setIdAttributeNS on the
+ noNamespaceSchemaLocation attribute of the first, second and third acronym element. Verify by calling isId on
+ the attributes. Calling getElementById with No as a value should return the acronym element.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNS
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem1 "Element"
+ acronymElem2 "Element"
+ acronymElem3 "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym' ns: '*'.
+ acronymElem1 := elemList item:0.
+ acronymElem2 := elemList item:1.
+ acronymElem3 := elemList item:2.
+ acronymElem1 setAttribute: 'xsi:noNamespaceSchemaLocation' ns: 'http://www.w3.org/2001/XMLSchema-instance' value: 'No'.
+ acronymElem1 setIdAttribute: 'noNamespaceSchemaLocation' ns: 'http://www.w3.org/2001/XMLSchema-instance' isId:true.
+ acronymElem2 setIdAttribute: 'noNamespaceSchemaLocation' ns: 'http://www.w3.org/2001/XMLSchema-instance' isId:true.
+ acronymElem3 setIdAttribute: 'noNamespaceSchemaLocation' ns: 'http://www.w3.org/2001/XMLSchema-instance' isId:true.
+ attributesMap := acronymElem1 attributes.
+ attr := attributesMap getNamedItem:'xsi:noNamespaceSchemaLocation'.
+ id := attr isId.
+ self assert: id.
+ attributesMap := acronymElem2 attributes.
+ attr := attributesMap getNamedItem:'xsi:noNamespaceSchemaLocation'.
+ id := attr isId.
+ self assert: id.
+ attributesMap := acronymElem3 attributes.
+ attr := attributesMap getNamedItem:'xsi:noNamespaceSchemaLocation'.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'No'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'acronym' ).
+
+!
+
+test_elementsetidattributens13
+ "
+ Invoke setIdAttributeNS on newly added attribute on the third strong element. Verify by calling
+ isID on the attribute node and getElementById on document node.
+ Call setIdAttributeNS on the same element to reset ID but with a non-existing attribute should generate
+ NOT_FOUND_ERR
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNS
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ nameElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ nameElem := elemList item:2.
+ nameElem setAttribute: 'xmlns:newAttr' ns: 'http://www.w3.org/2000/xmlns/' value: 'newValue'.
+ nameElem setIdAttribute: 'newAttr' ns: 'http://www.w3.org/2000/xmlns/' isId:true.
+ attributesMap := nameElem attributes.
+ attr := attributesMap getNamedItem:'xmlns:newAttr'.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'newValue'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'strong' ).
+ "assertDOMException..."
+ self should:[
+ nameElem setIdAttribute: 'lang' ns: 'http://www.w3.org/XML/1998/namespace' isId:false.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_elementsetidattributens14
+ "
+ Declares the attribute specified by local name and namespace URI to be of type ID. If the value of the
+ specified attribute is unique then this element node can later be retrieved using getElementById on Document.
+ Note, however, that this simply affects this node and does not change any grammar that may be in use.
+
+ Invoke setIdAttributeNS on two existing attributes of the second p element and the third
+ acronym element. Verify by calling isId on the attributes and getElementById with different values on document node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ElSetIdAttrNS
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ pElem "Element"
+ acronymElem "Element"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ id "Boolean"
+ elem "Element"
+ elemName "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ id := false.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p' ns: '*'.
+ pElem := elemList item:1.
+ elemList := doc getElementsByTagName: 'acronym' ns: '*'.
+ acronymElem := elemList item:2.
+ pElem setIdAttribute: 'dmstc' ns: 'http://www.w3.org/2000/xmlns/' isId:true.
+ acronymElem setIdAttribute: 'noNamespaceSchemaLocation' ns: 'http://www.w3.org/2001/XMLSchema-instance' isId:true.
+ attributesMap := pElem attributes.
+ attr := attributesMap getNamedItem:'xmlns:dmstc'.
+ id := attr isId.
+ self assert: id.
+ attributesMap := acronymElem attributes.
+ attr := attributesMap getNamedItem:'xsi:noNamespaceSchemaLocation'.
+ id := attr isId.
+ self assert: id.
+ elem := doc getElementById:'Yes'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'acronym' ).
+ elem := doc getElementById:'http://www.usa.com'.
+ elemName := elem tagName.
+ self assert: ( elemName = 'p' ).
+
+!
+
+test_entities01
+ "
+Normalize document with entities set to true, check that
+entity references and unused entity declaration are maintained.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-entities
+ "
+ |
+ doc "Document"
+ pList "NodeList"
+ pElem "Element"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ canSetValidate "Boolean"
+ errorMonitor "DOMErrorMonitor"
+ child "Node"
+ childName "String"
+ entRef "EntityReference"
+ entities "NamedNodeMap"
+ ent2 "Entity"
+ doctype "DocumentType"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'entities' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ entRef := doc createEntityReference:'ent1'.
+ child := pElem appendChild:entRef.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalizeError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ child := pElem lastChild.
+ self assert: child notNil.
+ childName := child nodeName.
+ self assert: ( childName = 'ent1' ).
+ doctype := doc doctype.
+ entities := doctype entities.
+ ent2 := entities getNamedItem:'ent2'.
+ self assert: ent2 notNil.
+
+!
+
+test_entities02
+ "
+Normalize document with entities set to false, check that
+entity references are expanded and unused entity declaration are maintained.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-entities
+ "
+ |
+ doc "Document"
+ pList "NodeList"
+ pElem "Element"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ canSetValidate "Boolean"
+ errorMonitor "DOMErrorMonitor"
+ child "Node"
+ childName "String"
+ entRef "EntityReference"
+ childValue "String"
+ entities "NamedNodeMap"
+ ent2 "Entity"
+ doctype "DocumentType"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'entities' value: false.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ entRef := doc createEntityReference:'ent1'.
+ child := pElem appendChild:entRef.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalizeError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ child := pElem lastChild.
+ self assert: child notNil.
+ childName := child nodeName.
+ self assert: ( childName = '#text' ).
+ childValue := child nodeValue.
+ self assert: ( childValue = 'barfoo' ).
+ doctype := doc doctype.
+ entities := doctype entities.
+ ent2 := entities getNamedItem:'ent2'.
+ self assert: ent2 notNil.
+
+!
+
+test_entities03
+ "
+Normalize document with entities set to false, check that
+unbound entity references are preserved.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-entities
+ "
+ |
+ doc "Document"
+ pList "NodeList"
+ pElem "Element"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ canSetValidate "Boolean"
+ errorMonitor "DOMErrorMonitor"
+ child "Node"
+ childName "String"
+ entRef "EntityReference"
+ childType "SmallInteger"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'entities' value: false.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ entRef := doc createEntityReference:'ent3'.
+ child := pElem appendChild:entRef.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalizeError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ child := pElem lastChild.
+ self assert: child notNil.
+ childType := child nodeType.
+ self assert: ( childType = 5 ).
+ childName := child nodeName.
+ self assert: ( childName = 'ent3' ).
+
+!
+
+test_entities04
+ "
+Normalize document using Node.normalize checking that entities parameter is ignored.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-normalize
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-entities
+ "
+ |
+ doc "Document"
+ pList "NodeList"
+ pElem "Element"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ canSetValidate "Boolean"
+ errorMonitor "DOMErrorMonitor"
+ child "Node"
+ childName "String"
+ entRef "EntityReference"
+ entities "NamedNodeMap"
+ ent2 "Entity"
+ doctype "DocumentType"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'entities' value: false.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ entRef := doc createEntityReference:'ent1'.
+ child := pElem appendChild:entRef.
+ doc normalize.
+ errorMonitor assertLowerSeverityFor: self message:'normalizeError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ child := pElem lastChild.
+ self assert: child notNil.
+ childName := child nodeName.
+ self assert: ( childName = 'ent1' ).
+ doctype := doc doctype.
+ entities := doctype entities.
+ ent2 := entities getNamedItem:'ent2'.
+ self assert: ent2 notNil.
+
+!
+
+test_entitygetinputencoding01
+ "
+ Call the getInputEncoding method on a UTF-8 encoded document and check if the
+ value returned is null for a internal general entity.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Entity3-inputEncoding
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ entity "Entity"
+ encodingName "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ entity := entitiesMap getNamedItem:'alpha'.
+ encodingName := entity inputEncoding.
+ self assert: encodingName isNil.
+
+!
+
+test_entitygetinputencoding02
+ "
+ Call the getInputEncoding method on a UTF-16 encoded document that contains an external
+ unparsed entity and check if the value returned is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Entity3-inputEncoding
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ entity "Entity"
+ encodingName "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_utf16').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ entity := entitiesMap getNamedItem:'ent5'.
+ encodingName := entity inputEncoding.
+ self assert: encodingName isNil.
+
+!
+
+test_entitygetinputencoding03
+ "
+Check the value of Entity.inputEncoding on an UTF-16 external entity
+is either UTF-16 or UTF-16LE
+
+ Creator: IBM
+ Autor Neil Delima
+ Autor Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Entity3-inputEncoding
+ Subject http://lists.w3.org/Archives/Public/www-dom-ts/2003Dec/0045.html
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ entity "Entity"
+ encodingName "String"
+ |
+ ^self. "Validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'external_barfoo').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ entity := entitiesMap getNamedItem:'ent1'.
+ encodingName := entity inputEncoding.
+ "if"
+ ( encodingName asLowercase = 'UTF-16LE' asLowercase ) not ifTrue: [
+ ].
+ encodingName := doc inputEncoding.
+ self assert: ( encodingName asLowercase = 'UTF-8' asLowercase ).
+
+!
+
+test_entitygetinputencoding04
+ "
+Check the value of Entity.inputEncoding on an UTF-8 external entity
+is UTF-8.
+
+ Creator: IBM
+ Autor Neil Delima
+ Autor Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Entity3-inputEncoding
+ Subject http://lists.w3.org/Archives/Public/www-dom-ts/2003Dec/0045.html
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ entity "Entity"
+ encodingName "String"
+ |
+ ^self. "Validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'external_barfoo').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ entity := entitiesMap getNamedItem:'ent2'.
+ encodingName := entity inputEncoding.
+ self assert: ( encodingName asLowercase = 'UTF-8' asLowercase ).
+ encodingName := doc inputEncoding.
+ self assert: ( encodingName asLowercase = 'UTF-8' asLowercase ).
+
+!
+
+test_entitygetxmlencoding01
+ "
+ Call the getXmlEncoding method on a UTF-8 encoded entity of a document that is not an
+ external parsed entity and check if the value returned is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Entity3-encoding
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ entity "Entity"
+ encodingName "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ entity := entitiesMap getNamedItem:'alpha'.
+ encodingName := entity xmlEncoding.
+ self assert: encodingName isNil.
+
+!
+
+test_entitygetxmlencoding02
+ "
+ Call the getencoding method on a document that contains an external
+ unparsed entity and check if the value returned is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Entity3-encoding
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ entity "Entity"
+ encodingName "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'external_barfoo').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ entity := entitiesMap getNamedItem:'ent5'.
+ encodingName := entity xmlEncoding.
+ self assert: encodingName isNil.
+
+!
+
+test_entitygetxmlencoding03
+ "
+Check the value of Entity.xmlEncoding on an external entity with an encoding
+declaration precisely matches the specified value.
+
+ Creator: IBM
+ Autor Neil Delima
+ Autor Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Entity3-encoding
+ Subject http://lists.w3.org/Archives/Public/www-dom-ts/2003Dec/0045.html
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ entity "Entity"
+ encodingName "String"
+ |
+ ^self. "Validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'external_barfoo').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ entity := entitiesMap getNamedItem:'ent1'.
+ encodingName := entity xmlEncoding.
+ self assert: ( encodingName = 'uTf-16' ).
+
+!
+
+test_entitygetxmlencoding04
+ "
+Check the value of Entity.xmlEncoding on an external entity without an encoding
+declaration is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Autor Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Entity3-encoding
+ Subject http://lists.w3.org/Archives/Public/www-dom-ts/2003Dec/0045.html
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ entity "Entity"
+ encodingName "String"
+ |
+ ^self. "Validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'external_barfoo').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ entity := entitiesMap getNamedItem:'ent2'.
+ encodingName := entity xmlEncoding.
+ self assert: encodingName isNil.
+
+!
+
+test_entitygetxmlversion01
+ "
+ Call the getXmlVersion method on entity that is not an external entity and check if
+ the value returned is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Entity3-version
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ entity "Entity"
+ entityVersion "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ entity := entitiesMap getNamedItem:'epsilon'.
+ self assert: entityVersion isNil.
+
+!
+
+test_entitygetxmlversion02
+ "
+ Call the getXmlVersion method on a UTF-16 encoded document that contains an external
+ unparsed entity declaration and check if the value returned is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Entity3-version
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ entity "Entity"
+ entityVersion "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_utf16').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ entity := entitiesMap getNamedItem:'ent5'.
+ self assert: entityVersion isNil.
+
+!
+
+test_entitygetxmlversion03
+ "
+ Check that the value of Entity.xmlVersion on an external entity without
+ a version declaration is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Autor Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Entity3-version
+ Subject http://lists.w3.org/Archives/Public/www-dom-ts/2003Dec/0045.html
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ entity "Entity"
+ entityVersion "String"
+ |
+ ^self. "Validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'external_barfoo').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ entity := entitiesMap getNamedItem:'ent2'.
+ self assert: entityVersion isNil.
+
+!
+
+test_entitygetxmlversion04
+ "
+ Check that the value of Entity.xmlVersion on an external entity with
+ a version declaration is 1.0 .
+
+ Creator: IBM
+ Autor Neil Delima
+ Autor Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Entity3-version
+ Subject http://lists.w3.org/Archives/Public/www-dom-ts/2003Dec/0045.html
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ entity "Entity"
+ entityVersion "String"
+ |
+ ^self. "Validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'external_barfoo').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ entity := entitiesMap getNamedItem:'ent1'.
+ self assert: ( entityVersion = '1.0' ).
+
+!
+
+test_handleerror01
+ "
+Add two CDATASection containing ]]> and call Node.normalize
+with an error handler that stops processing. Only one of the
+CDATASections should be split.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-normalize
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-split-cdata-sections
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ERRORS-DOMErrorHandler-handleError
+ "
+ |
+ doc "Document"
+ elem "Element"
+ domConfig "DOMConfiguration"
+ elemList "NodeList"
+ newChild "CDATASection"
+ oldChild "Node"
+ child "Node"
+ childValue "String"
+ childType "SmallInteger"
+ retval "Node"
+ errors "List"
+ errorHandler "DOMErrorHandler"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ oldChild := elem firstChild.
+ newChild := doc createCDATASection:'this is not ]]> good'.
+ elem replaceChild:oldChild with: newChild.
+ newChild := doc createCDATASection:'this is not ]]> bad'.
+ retval := elem appendChild:newChild.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'split-cdata-sections' value: true.
+ domConfig setParameter: 'error-handler' value: errorHandler.
+ doc normalizeDocument.
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ child := elem lastChild.
+ childValue := child nodeValue.
+ "if"
+ ( childValue = 'this is not ]]> bad' ) ifTrue: [
+ ].
+
+!
+
+test_handleerror02
+ "
+Normalize document with two DOM L1 nodes.
+Use an error handler to continue from errors and check that more than one
+error was reported.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-namespaces
+ Subject http://www.w3.org/TR/2003/WD-charmod-20030822/
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-ERRORS-DOMErrorHandler-handleError
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ domConfig "DOMConfiguration"
+ pList "NodeList"
+ pElem "Element"
+ text "Text"
+ textValue "String"
+ retval "Node"
+ brElem "Element"
+ errors "List"
+ errorHandler "DOMErrorHandler"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'error-handler' value: errorHandler.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ brElem := doc createElement:'br'.
+ retval := pElem appendChild:brElem.
+ brElem := doc createElement:'br'.
+ retval := pElem appendChild:brElem.
+ doc normalizeDocument.
+ self assert: errors size = 2.
+
+!
+
+test_hasFeature01
+ "
+DOMImplementation.hasFeature( XML , 3.0 ) should return true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-5CED94D7
+ "
+ |
+ impl "DOMImplementation"
+ state "Boolean"
+ |
+ impl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ state := impl hasFeature:'xMl' version:'3.0'.
+ self assert: state.
+
+!
+
+test_hasFeature02
+ "
+DOMImplementation.hasFeature( XML , 3.0 ) should return true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-5CED94D7
+ "
+ |
+ impl "DOMImplementation"
+ state "Boolean"
+ |
+ impl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ state := impl hasFeature:'cOrE' version:'3.0'.
+ self assert: state.
+
+!
+
+test_hasFeature03
+ "
+DOMImplementation.hasFeature( XML , 3.0 ) should return true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-5CED94D7
+ "
+ |
+ impl "DOMImplementation"
+ state "Boolean"
+ |
+ impl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ state := impl hasFeature:'+cOrE' version:'3.0'.
+ self assert: state.
+
+!
+
+test_hasFeature04
+ "
+DOMImplementation.hasFeature( XML , 3.0 ) should return true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-5CED94D7
+ "
+ |
+ impl "DOMImplementation"
+ state "Boolean"
+ |
+ impl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ state := impl hasFeature:'+xMl' version:'3.0'.
+ self assert: state.
+
+!
+
+test_infoset01
+ "
+Normalize document with infoset set to true, check that
+entity references are expanded and unused entity declaration are maintained.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-infoset
+ "
+ |
+ doc "Document"
+ pList "NodeList"
+ pElem "Element"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ canSetValidate "Boolean"
+ errorMonitor "DOMErrorMonitor"
+ child "Node"
+ childName "String"
+ entRef "EntityReference"
+ childValue "String"
+ entities "NamedNodeMap"
+ ent2 "Entity"
+ doctype "DocumentType"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'infoset' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ entRef := doc createEntityReference:'ent1'.
+ child := pElem appendChild:entRef.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalizeError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ child := pElem lastChild.
+ self assert: child notNil.
+ childName := child nodeName.
+ self assert: ( childName = '#text' ).
+ childValue := child nodeValue.
+ self assert: ( childValue = 'barfoo' ).
+ doctype := doc doctype.
+ entities := doctype entities.
+ ent2 := entities getNamedItem:'ent2'.
+ self assert: ent2 notNil.
+
+!
+
+test_infoset02
+ "
+Normalize document with infoset set to true, check that
+unbound entity references are preserved.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-infoset
+ "
+ |
+ doc "Document"
+ pList "NodeList"
+ pElem "Element"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ canSetValidate "Boolean"
+ errorMonitor "DOMErrorMonitor"
+ child "Node"
+ childName "String"
+ entRef "EntityReference"
+ childType "SmallInteger"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'infoset' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ entRef := doc createEntityReference:'ent3'.
+ child := pElem appendChild:entRef.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalizeError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ child := pElem lastChild.
+ self assert: child notNil.
+ childType := child nodeType.
+ self assert: ( childType = 5 ).
+ childName := child nodeName.
+ self assert: ( childName = 'ent3' ).
+
+!
+
+test_infoset03
+ "
+Normalize document with infoset set to true,
+check if string values were not normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-infoset
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ element "Element"
+ domConfig "DOMConfiguration"
+ str "String"
+ canSetValidate "Boolean"
+ canSetXMLSchema "Boolean"
+ xsdNS "String"
+ errorMonitor "DOMErrorMonitor"
+ childNode "Node"
+ childValue "String"
+ childLength "SmallInteger"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ xsdNS := 'http://www.w3.org/2001/XMLSchema'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'datatype_normalization2').
+ domConfig := doc domConfig.
+ canSetValidate := domConfig canSetParameter: 'validate' value: true.
+ canSetXMLSchema := domConfig canSetParameter: 'schema-type' value: xsdNS.
+ "if"
+ (canSetValidate) and: [(canSetXMLSchema)] ifTrue: [
+ ].
+
+!
+
+test_infoset04
+ "
+Normalize a document with a created CDATA section with the
+'infoset' to true and check if
+the CDATASection has been coalesced.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=416
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-infoset
+ "
+ |
+ doc "Document"
+ elem "Element"
+ newCdata "CDATASection"
+ cdata "CDATASection"
+ text "Node"
+ nodeName "String"
+ nodeValue "String"
+ appendedChild "Node"
+ domConfig "DOMConfiguration"
+ pList "NodeList"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ pList := doc getElementsByTagName: 'p'.
+ elem := pList item:0.
+ newCdata := doc createCDATASection:'CDATA'.
+ appendedChild := elem appendChild:newCdata.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'infoset' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalization2Error' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ elem := pList item:0.
+ text := elem lastChild.
+ nodeName := text nodeName.
+ self assert: ( nodeName = '#text' ).
+ nodeValue := text nodeValue.
+ self assert: ( nodeValue = 'barCDATA' ).
+
+!
+
+test_infoset05
+ "
+Normalize document with infoset set to true, check that
+namespace declaration attributes are maintained.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-infoset
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ xmlnsAttr "Attr"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'infoset' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalizeError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ docElem := doc documentElement.
+ xmlnsAttr := docElem getAttributeNode:'xmlns'.
+ self assert: xmlnsAttr notNil.
+
+!
+
+test_infoset06
+ "
+Create a document with an XML 1.1 valid but XML 1.0 invalid element and
+normalize document with infoset set to true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-infoset
+ "
+ |
+ domImpl "DOMImplementation"
+ nullString "String"
+ nullDoctype "DocumentType"
+ doc "Document"
+ elem "Element"
+ retval "Node"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ errors "List"
+ error "DOMError"
+ severity "SmallInteger"
+ type "String"
+ locator "DOMLocator"
+ relatedNode "Node"
+ |
+ nullString := nil.
+ nullDoctype := nil.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: nullString qualifiedName: nullString doctype: nullDoctype.
+ "assertDOMException..."
+ self should:[
+ elem := doc createElement:'LegalNameࢎ' ns:'http://www.example.org/domts/wellformed01'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException INVALID_CHARACTER_ERR).
+ "end of assertDOMException..."
+ "try"
+ [
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+ elem := doc createElement:'LegalNameࢎ' ns:'http://www.example.org/domts/wellformed01'.
+ retval := doc appendChild:elem.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'infoset' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ errors := errorMonitor errors.
+errors do: [:error|
+ severity := error severity.
+ self assert: ( severity = 2 ).
+ type := error type.
+ self assert: ( type = 'wf-invalid-character-in-node-name' ).
+ locator := error location.
+ relatedNode := locator relatedNode.
+ self assert: relatedNode == elem.
+].
+ self assert: errors size = 1.
+
+!
+
+test_infoset07
+ "
+Create a document with an XML 1.1 valid but XML 1.0 invalid attribute and
+normalize document with infoset set to true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-infoset
+ "
+ |
+ domImpl "DOMImplementation"
+ nullDoctype "DocumentType"
+ doc "Document"
+ docElem "Element"
+ attr "Attr"
+ retval "Node"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ errors "List"
+ error "DOMError"
+ severity "SmallInteger"
+ type "String"
+ locator "DOMLocator"
+ relatedNode "Node"
+ |
+ nullDoctype := nil.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDoctype.
+ docElem := doc documentElement.
+ "assertDOMException..."
+ self should:[
+ attr := doc createAttribute:'LegalNameࢎ'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException INVALID_CHARACTER_ERR).
+ "end of assertDOMException..."
+ "try"
+ [
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+ docElem setAttribute:'LegalNameࢎ' value:'foo'.
+ attr := docElem getAttributeNode:'LegalNameࢎ'.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'infoset' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ errors := errorMonitor errors.
+errors do: [:error|
+ severity := error severity.
+ self assert: ( severity = 2 ).
+ type := error type.
+ self assert: ( type = 'wf-invalid-character-in-node-name' ).
+ locator := error location.
+ relatedNode := locator relatedNode.
+ self assert: relatedNode == attr.
+].
+ self assert: errors size = 1.
+
+!
+
+test_infoset08
+ "
+Normalize document with infoset and validation set to true, check that
+whitespace in element content is preserved.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-infoset
+ "
+ |
+ doc "Document"
+ bodyList "NodeList"
+ body "Element"
+ domConfig "DOMConfiguration"
+ canSet "Boolean"
+ canSetValidate "Boolean"
+ errorMonitor "DOMErrorMonitor"
+ child "Node"
+ childName "String"
+ text "Text"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'infoset' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ "if"
+ false "no template for element implementationAttribute" ifTrue: [
+ ].
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalizeError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ bodyList := doc getElementsByTagName: 'body'.
+ body := bodyList item:0.
+ child := body firstChild.
+ self assert: child notNil.
+ childName := child nodeName.
+ self assert: ( childName = '#text' ).
+ child := child nextSibling.
+ self assert: child notNil.
+ childName := child nodeName.
+ self assert: ( childName = 'p' ).
+
+!
+
+test_infoset09
+ "
+ Append a Comment node and normalize with infoset set to true.
+
+ Creator: Curt Arnold
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-infoset
+ "
+ |
+ doc "Document"
+ elem "Element"
+ newComment "Comment"
+ lastChild "Node"
+ text "Text"
+ nodeName "String"
+ appendedChild "Node"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ pList "NodeList"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ pList := doc getElementsByTagName: 'p'.
+ elem := pList item:0.
+ newComment := doc createComment:'COMMENT_NODE'.
+ appendedChild := elem appendChild:newComment.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'comments' value: false.
+ domConfig setParameter: 'infoset' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalizationError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ elem := pList item:0.
+ lastChild := elem lastChild.
+ nodeName := lastChild nodeName.
+ self assert: ( nodeName = '#comment' ).
+
+!
+
+test_namespacedeclarations01
+ "
+Normalize document with namespace-declarations set to true, check that
+namespace declaration attributes are maintained.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-namespace-declarations
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ xmlnsAttr "Attr"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'namespace-declarations' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalizeError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ docElem := doc documentElement.
+ xmlnsAttr := docElem getAttributeNode:'xmlns'.
+ self assert: xmlnsAttr notNil.
+
+!
+
+test_namespacedeclarations02
+ "
+Normalize document with namespace-declarations set to true, check that
+namespace declaration attributes are maintained.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-namespace-declarations
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ xmlnsAttr "Attr"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'namespace-declarations' value: false.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalizeError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ docElem := doc documentElement.
+ xmlnsAttr := docElem getAttributeNode:'xmlns'.
+ self assert: xmlnsAttr isNil.
+
+!
+
+test_nodeappendchild01
+ "
+An attempt to add a second doctype node should result in a HIERARCHY_REQUEST_ERR
+or a NOT_SUPPORTED_ERR.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-184E7107
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ docType "DocumentType"
+ nullPubId "String"
+ nullSysId "String"
+ appendedChild "Node"
+ tagName "String"
+ docElem "Element"
+ |
+ nullPubId := nil.
+ nullSysId := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ tagName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ docType := domImpl createDocumentType:tagName publicId:nullPubId systemId:nullSysId.
+ "try"
+ [
+ appendedChild := doc appendChild:docType.
+self assert:false. ] on: DOMException do: [:ex| ].
+ "end of try"
+
+!
+
+test_nodeappendchild02
+ "
+An attempt to add a second document element should result in a HIERARCHY_REQUEST_ERR
+or a NOT_SUPPORTED_ERR.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-184E7107
+ "
+ |
+ doc "Document"
+ newElem "Element"
+ appendedChild "Node"
+ tagName "String"
+ rootNS "String"
+ docElem "Element"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ tagName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ newElem := doc createElement:tagName ns:rootNS.
+ "try"
+ [
+ appendedChild := doc appendChild:newElem.
+self assert:false. ] on: DOMException do: [:ex| ].
+ "end of try"
+
+!
+
+test_nodecomparedocumentposition01
+ "
+
+
+
+ Using compareDocumentPosition to check if a Document node contains and precedes its documentType and
+ node and if the DocumentTypeNode is contained and follows its Document node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ documentPositionDoc "SmallInteger"
+ documentPositionDocType "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ documentPositionDoc := doc compareDocumentPosition:docType.
+ self assert: ( documentPositionDoc = 20 ).
+ documentPositionDocType := docType compareDocumentPosition:doc.
+ self assert: ( documentPositionDocType = 10 ).
+
+!
+
+test_nodecomparedocumentposition02
+ "
+ Using compareDocumentPosition to check if a Document node contains and precedes its new DocumentType and
+ node and if the new DocumentType Node is contained and follows its Document node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ newDocType "DocumentType"
+ docType "DocumentType"
+ documentPositionDoc "SmallInteger"
+ documentPositionDocType "SmallInteger"
+ nullPubId "String"
+ nullSysId "String"
+ replaced "Node"
+ rootName "String"
+ |
+ nullPubId := nil.
+ nullSysId := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ rootName := docType name.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDocType := domImpl createDocumentType:rootName publicId:nullPubId systemId:nullSysId.
+ doc replaceChild:docType with: newDocType.
+ documentPositionDoc := doc compareDocumentPosition:newDocType.
+ self assert: ( documentPositionDoc = 20 ).
+ documentPositionDocType := newDocType compareDocumentPosition:doc.
+ self assert: ( documentPositionDocType = 10 ).
+
+!
+
+test_nodecomparedocumentposition03
+ "
+ Using compareDocumentPosition check if the document position of two Document nodes obtained from the
+ same xml document is disconnected, implementation specific, and that the order of these two documents
+ is reserved.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ docComp "Document"
+ documentPosition1 "SmallInteger"
+ documentPosition2 "SmallInteger"
+ documentPosition3 "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docComp := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ documentPosition1 := doc compareDocumentPosition:docComp.
+ self assert: ( documentPosition1 = 33 ).
+ documentPosition2 := docComp compareDocumentPosition:doc.
+ self assert: (documentPosition2 bitAnd: 2) == (documentPosition1 bitAnd: 2).
+ self assert: (documentPosition2 bitAnd: 4) == (documentPosition1 bitAnd: 4).
+ self assert: ( documentPosition2 = 33 ).
+ documentPosition3 := doc compareDocumentPosition:docComp.
+ self assert: ( documentPosition3 = documentPosition1 ).
+
+!
+
+test_nodecomparedocumentposition04
+ "
+ Using compareDocumentPosition to check that no flags are set in return when the document position of a
+ Document node is compared with itself
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ documentPosition "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ documentPosition := doc compareDocumentPosition:doc.
+ self assert: ( documentPosition = 0 ).
+
+!
+
+test_nodecomparedocumentposition05
+ "
+ Using compareDocumentPosition check if the document position of a Document and a new Document node
+ are disconnected, implementation-specific and preceding/following.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ documentPosition1 "SmallInteger"
+ documentPosition2 "SmallInteger"
+ documentPosition3 "SmallInteger"
+ nullDocType "DocumentType"
+ rootName "String"
+ rootNS "String"
+ docElem "Element"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ documentPosition1 := doc compareDocumentPosition:newDoc.
+ self assert: ( documentPosition1 = 33 ).
+ documentPosition2 := newDoc compareDocumentPosition:doc.
+ self assert: ( documentPosition2 = 33 ).
+ self assert: (documentPosition2 bitAnd: 2) == (documentPosition1 bitAnd: 2).
+ self assert: (documentPosition2 bitAnd: 4) == (documentPosition1 bitAnd: 4).
+ documentPosition3 := doc compareDocumentPosition:newDoc.
+ self assert: ( documentPosition3 = documentPosition1 ).
+
+!
+
+test_nodecomparedocumentposition06
+ "
+
+
+
+ Using compareDocumentPosition check if the document position of a Document node contains and precedes
+ its DocumentElement, and the DocumentElement is contained and follows the Document node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ documentPositionDoc "SmallInteger"
+ documentPositionDocElem "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ documentPositionDoc := doc compareDocumentPosition:docElem.
+ self assert: ( documentPositionDoc = 20 ).
+ documentPositionDocElem := docElem compareDocumentPosition:doc.
+ self assert: ( documentPositionDocElem = 10 ).
+
+!
+
+test_nodecomparedocumentposition07
+ "
+ Using compareDocumentPosition check if the document compared contains and precedes the new
+ newElement, and the newElement is contained and follows the document.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ newElem "Element"
+ documentPosition "SmallInteger"
+ documentElementPosition "SmallInteger"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ newElem := doc createElement:'br' ns:'http://www.w3.org/1999/xhtml'.
+ appendedChild := docElem appendChild:newElem.
+ documentPosition := doc compareDocumentPosition:newElem.
+ self assert: ( documentPosition = 20 ).
+ documentElementPosition := newElem compareDocumentPosition:doc.
+ self assert: ( documentElementPosition = 10 ).
+
+!
+
+test_nodecomparedocumentposition08
+ "
+ Using compareDocumentPosition check if the Document node contains and precedes an Element,
+ and the Element is contained and follows the Document node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ documentPosition "SmallInteger"
+ elementPosition "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:3.
+ documentPosition := doc compareDocumentPosition:elem.
+ self assert: ( documentPosition = 20 ).
+ elementPosition := elem compareDocumentPosition:doc.
+ self assert: ( elementPosition = 10 ).
+
+!
+
+test_nodecomparedocumentposition09
+ "
+ Using compareDocumentPosition check if the Element node is contained and follows the appended Document node, and
+ if the Document node contains and precedes the Element node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ elem "Element"
+ newElem "Element"
+ elemList "NodeList"
+ documentPosition "SmallInteger"
+ documentElementPosition "SmallInteger"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:3.
+ newElem := doc createElement:'br' ns:'http://www.w3.org/1999/xhtml'.
+ appendedChild := elem appendChild:newElem.
+ documentPosition := doc compareDocumentPosition:newElem.
+ self assert: ( documentPosition = 20 ).
+ documentElementPosition := newElem compareDocumentPosition:doc.
+ self assert: ( documentElementPosition = 10 ).
+
+!
+
+test_nodecomparedocumentposition10
+ "
+ Using compareDocumentPosition check if the document node precedes and contains its default Attr node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ elem "Element"
+ dir "Attr"
+ elemList "NodeList"
+ attrPosition "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:3.
+ dir := elem getAttributeNode:'dir'.
+ attrPosition := dir compareDocumentPosition:doc.
+ self assert: ( attrPosition = 10 ).
+
+!
+
+test_nodecomparedocumentposition11
+ "
+ Using compareDocumentPosition check if the Document node precedes and contains the Attr node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ elem "Element"
+ newAttr "Attr"
+ elemList "NodeList"
+ documentPosition "SmallInteger"
+ attrPosition "SmallInteger"
+ replacedAttr "Attr"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:3.
+ newAttr := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ replacedAttr := elem setAttributeNodeNS: newAttr.
+ attrPosition := newAttr compareDocumentPosition:doc.
+ self assert: ( attrPosition = 10 ).
+
+!
+
+test_nodecomparedocumentposition12
+ "
+ Using compareDocumentPosition to check if a new ProcessingInstruction node is contained and follows the
+ Document node, and that the Document node contains and precedes the ProcessingInstruction node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ pi "ProcessingInstruction"
+ documentPosition "SmallInteger"
+ piPosition "SmallInteger"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ pi := doc createProcessingInstruction:'PITarget' data:'PIDATA'.
+ appendedChild := doc appendChild:pi.
+ documentPosition := doc compareDocumentPosition:pi.
+ self assert: ( documentPosition = 20 ).
+ piPosition := pi compareDocumentPosition:doc.
+ self assert: ( piPosition = 10 ).
+
+!
+
+test_nodecomparedocumentposition13
+ "
+ Using compareDocumentPosition check if the Document node contains and precedes the new Comment node,
+ and if the Comment node is contained and follows the Document node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ comment "Comment"
+ elem "Element"
+ elemList "NodeList"
+ documentPosition "SmallInteger"
+ commentPosition "SmallInteger"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ comment := doc createComment:'Another Comment'.
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:3.
+ appendedChild := elem appendChild:comment.
+ documentPosition := doc compareDocumentPosition:comment.
+ self assert: ( documentPosition = 20 ).
+ commentPosition := comment compareDocumentPosition:doc.
+ self assert: ( commentPosition = 10 ).
+
+!
+
+test_nodecomparedocumentposition14
+ "
+ Using compareDocumentPosition check if the DocumentFragment node contains and precedes an Element
+ node appended to it, and that the Element node is contained and follows the DocumentFragment node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ docElem "Element"
+ docFragChild "Node"
+ docFragPosition "SmallInteger"
+ docFragChildPosition "SmallInteger"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ docFrag := doc createDocumentFragment.
+ appendedChild := docFrag appendChild:docElem.
+ docFragChild := docFrag firstChild.
+ docFragPosition := docFrag compareDocumentPosition:docFragChild.
+ self assert: ( docFragPosition = 20 ).
+ docFragChildPosition := docFragChild compareDocumentPosition:docFrag.
+ self assert: ( docFragChildPosition = 10 ).
+
+!
+
+test_nodecomparedocumentposition15
+ "
+ Using compareDocumentPosition check if the Element node precedes and contains its Attr child, and that the Attr child
+ is contained and follows the Element node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ docElem "Element"
+ attr "Attr"
+ docFragChild "Node"
+ attrPosition "SmallInteger"
+ docFragChildPosition "SmallInteger"
+ appendedChild "Node"
+ attrNode "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ docFrag := doc createDocumentFragment.
+ attr := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ attrNode := docElem setAttributeNodeNS: attr.
+ appendedChild := docFrag appendChild:docElem.
+ docFragChild := docFrag firstChild.
+ docFragChildPosition := docFragChild compareDocumentPosition:attr.
+ self assert: ( docFragChildPosition = 20 ).
+ attrPosition := attr compareDocumentPosition:docFragChild.
+ self assert: ( attrPosition = 10 ).
+
+!
+
+test_nodecomparedocumentposition16
+ "
+ Using compareDocumentPosition check if the document position of a DocumentFragment node compared with
+ a cloned Attr node is disconnected and implementation specific, and that the order between these two
+ nodes is preserved.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ attr "Attr"
+ attrCloned "Attr"
+ docFragPosition "SmallInteger"
+ position1 "SmallInteger"
+ position2 "SmallInteger"
+ position3 "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docFrag := doc createDocumentFragment.
+ attr := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ attrCloned := attr cloneNode:true.
+ position1 := docFrag compareDocumentPosition:attrCloned.
+ self assert: ( position1 = 33 ).
+ position2 := attrCloned compareDocumentPosition:docFrag.
+ self assert: (position2 bitAnd: 2) == (position1 bitAnd: 2).
+ self assert: (position2 bitAnd: 4) == (position1 bitAnd: 4).
+ self assert: ( position2 = 33 ).
+ position3 := docFrag compareDocumentPosition:attrCloned.
+ self assert: ( position3 = position1 ).
+
+!
+
+test_nodecomparedocumentposition17
+ "
+ Using compareDocumentPosition check if the document position of the first ProcessingInstruction node compared to
+ this second newly apended ProcessingInstruction node is PRECEDING, and FOLLOWING vice versa.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ pi1 "ProcessingInstruction"
+ pi2 "ProcessingInstruction"
+ pi1Position "SmallInteger"
+ pi2Position "SmallInteger"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ pi1 := doc createProcessingInstruction:'PI1' data:''.
+ pi2 := doc createProcessingInstruction:'PI2' data:''.
+ appendedChild := doc appendChild:pi1.
+ appendedChild := doc appendChild:pi2.
+ pi1Position := pi1 compareDocumentPosition:pi2.
+ self assert: ( pi1Position = 4 ).
+ pi2Position := pi2 compareDocumentPosition:pi1.
+ self assert: ( pi2Position = 2 ).
+
+!
+
+test_nodecomparedocumentposition18
+ "
+ Using compareDocumentPosition check if the document position of the first new Text node compared to the
+ second text node is PRECEDING and is FOLLOWING vice versa.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ txt1 "Text"
+ txt2 "Text"
+ txt1Position "SmallInteger"
+ txt2Position "SmallInteger"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ txt1 := doc createTextNode:'T1'.
+ txt2 := doc createTextNode:'T2'.
+ appendedChild := docElem appendChild:txt1.
+ appendedChild := docElem appendChild:txt2.
+ txt1Position := txt1 compareDocumentPosition:txt2.
+ self assert: ( txt1Position = 4 ).
+ txt2Position := txt2 compareDocumentPosition:txt1.
+ self assert: ( txt2Position = 2 ).
+
+!
+
+test_nodecomparedocumentposition19
+ "
+ The method compareDocumentPosition compares a node with this node with regard to their position in the
+ document and according to the document order.
+
+ Using compareDocumentPosition check if the document position of the first CDATASection node
+ of the second element whose localName is name compared with the second CDATASection node
+ is PRECEDING and is FOLLOWING vice versa.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elemStrong "Element"
+ cdata1 "CDATASection"
+ cdata2 "CDATASection"
+ aNode "Node"
+ cdata1Position "SmallInteger"
+ cdata2Position "SmallInteger"
+ |
+ "implementationAttribute not supported: coalescing"
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong' ns: '*'.
+ elemStrong := elemList item:1.
+ cdata2 := elemStrong lastChild.
+ aNode := cdata2 previousSibling.
+ cdata1 := aNode previousSibling.
+ cdata1Position := cdata1 compareDocumentPosition:cdata2.
+ self assert: ( cdata1Position = 4 ).
+ cdata2Position := cdata2 compareDocumentPosition:cdata1.
+ self assert: ( cdata2Position = 2 ).
+
+!
+
+test_nodecomparedocumentposition20
+ "
+ Using compareDocumentPosition check if the document position of the first Text node
+ of the second element whose localName is name compared with the next CDATASection node
+ is PRECEDING and FOLLOWING vice versa.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elemName "Element"
+ cdata "CDATASection"
+ txt "Text"
+ txtPosition "SmallInteger"
+ cdataPosition "SmallInteger"
+ |
+ "implementationAttribute not supported: coalescing"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ elemName := elemList item:1.
+ txt := elemName firstChild.
+ cdata := elemName lastChild.
+ txtPosition := txt compareDocumentPosition:cdata.
+ self assert: ( txtPosition = 4 ).
+ cdataPosition := cdata compareDocumentPosition:txt.
+ self assert: ( cdataPosition = 2 ).
+
+!
+
+test_nodecomparedocumentposition21
+ "
+ Using compareDocumentPosition check the document position of the text node of the fist and second elements
+ whose localName is name. The first text node should return FOLLOWING and the second text node should
+ return PRECEDING when compareDocumentPosition is invoked with the other node as a parameter.
+
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elemName1 "Element"
+ elemName2 "Element"
+ txt1 "Text"
+ txt2 "Text"
+ txt1Position "SmallInteger"
+ txt2Position "SmallInteger"
+ |
+ "implementationAttribute not supported: coalescing"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ elemName1 := elemList item:0.
+ elemName2 := elemList item:1.
+ txt1 := elemName1 firstChild.
+ txt2 := elemName2 firstChild.
+ txt1Position := txt1 compareDocumentPosition:txt2.
+ self assert: ( txt1Position = 4 ).
+ txt2Position := txt2 compareDocumentPosition:txt1.
+ self assert: ( txt2Position = 2 ).
+
+!
+
+test_nodecomparedocumentposition22
+ "
+ Using compareDocumentPosition check if the Entity node precedes the Notation node and the Notation
+ node follows the Entity node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ notationsMap "NamedNodeMap"
+ entity "Entity"
+ notation "Notation"
+ entityPosition "SmallInteger"
+ notationPosition "SmallInteger"
+ |
+ "implementationAttribute not supported: coalescing"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ notationsMap := docType notations.
+ entity := entitiesMap getNamedItem:'alpha'.
+ notation := notationsMap getNamedItem:'notation1'.
+ entityPosition := entity compareDocumentPosition:notation.
+ self assert: ( entityPosition = 4 ).
+ notationPosition := notation compareDocumentPosition:entity.
+ self assert: ( notationPosition = 2 ).
+
+!
+
+test_nodecomparedocumentposition23
+ "
+ Using compareDocumentPosition check if the document position of an Entity node compared to another
+ Entity node following it in DocumentType is implementation specific.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ entity "Entity"
+ entity2 "Entity"
+ position1 "SmallInteger"
+ position2 "SmallInteger"
+ position3 "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ entity := entitiesMap getNamedItem:'alpha'.
+ entity2 := entitiesMap getNamedItem:'delta'.
+ position1 := entity compareDocumentPosition:entity2.
+ self assert: ( position1 = 32 ).
+ position2 := entity2 compareDocumentPosition:entity.
+ self assert: (position2 bitAnd: 2) == (position1 bitAnd: 2).
+ self assert: (position2 bitAnd: 4) == (position1 bitAnd: 4).
+ self assert: ( position2 = 32 ).
+ position3 := entity compareDocumentPosition:entity2.
+ self assert: ( position3 = position1 ).
+
+!
+
+test_nodecomparedocumentposition24
+ "
+ Using compareDocumentPosition check if the return value of document position of a Notation node compared to another
+ that is the same is not flagged.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ notaionsMap "NamedNodeMap"
+ notation "Notation"
+ notation2 "Notation"
+ notationPosition "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ notaionsMap := docType notations.
+ notation := notaionsMap getNamedItem:'notation1'.
+ notation2 := notaionsMap getNamedItem:'notation1'.
+ notationPosition := notation compareDocumentPosition:notation2.
+ self assert: ( notationPosition = 0 ).
+
+!
+
+test_nodecomparedocumentposition25
+ "
+ Using compareDocumentPosition check if the EntityReference or Text node is contained and follows its
+ parent Element node, and that the Element node contains and precedes the
+ EntityReference or Text node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elemName "Element"
+ entRef "Node"
+ elementPosition "SmallInteger"
+ entRefPosition "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'var'.
+ elemName := elemList item:2.
+ entRef := elemName firstChild.
+ elementPosition := elemName compareDocumentPosition:entRef.
+ self assert: ( elementPosition = 20 ).
+ entRefPosition := entRef compareDocumentPosition:elemName.
+ self assert: ( entRefPosition = 10 ).
+
+!
+
+test_nodecomparedocumentposition26
+ "
+ Using compareDocumentPosition check if the EntityReference node contains and precedes it's first
+ childElement, and that the childElement is contained and follows the EntityReference node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ varList "NodeList"
+ varElem "Element"
+ entRef "EntityReference"
+ entRefChild1 "Element"
+ entRefPosition "SmallInteger"
+ entRefChild1Position "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ "if"
+ false "no template for element implementationAttribute" ifTrue: [
+ ].
+ entRefChild1 := entRef firstChild.
+ self assert: entRefChild1 notNil.
+ entRefPosition := entRef compareDocumentPosition:entRefChild1.
+ self assert: ( entRefPosition = 20 ).
+ entRefChild1Position := entRefChild1 compareDocumentPosition:entRef.
+ self assert: ( entRefChild1Position = 10 ).
+
+!
+
+test_nodecomparedocumentposition27
+ "
+ Using compareDocumentPosition to check if the EntityReference node contains and precedes it's last
+ childElement, and that this childElement is contained and follows the EntityReference node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ varList "NodeList"
+ varElem "Element"
+ entRef "EntityReference"
+ entRefChild1 "ProcessingInstruction"
+ entRefPosition "SmallInteger"
+ entRefChild1Position "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ "if"
+ false "no template for element implementationAttribute" ifTrue: [
+ ].
+ entRefChild1 := entRef lastChild.
+ self assert: entRefChild1 notNil.
+ entRefPosition := entRef compareDocumentPosition:entRefChild1.
+ self assert: ( entRefPosition = 20 ).
+ entRefChild1Position := entRefChild1 compareDocumentPosition:entRef.
+ self assert: ( entRefChild1Position = 10 ).
+
+!
+
+test_nodecomparedocumentposition28
+ "
+ Using compareDocumentPosition check the document position of the EntityReference node ent4's
+ first child and last child. Invoke compareDocumentPositon on first child with last child as a parameter
+ should return FOLLOWING, and should return PRECEDING vice versa.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ varList "NodeList"
+ varElem "Element"
+ entRef "EntityReference"
+ entRefChild1 "Element"
+ entRefChild2 "ProcessingInstruction"
+ entRefChild1Position "SmallInteger"
+ entRefChild2Position "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ "if"
+ false "no template for element implementationAttribute" ifTrue: [
+ ].
+ entRefChild1 := entRef firstChild.
+ self assert: entRefChild1 notNil.
+ entRefChild2 := entRef lastChild.
+ self assert: entRefChild2 notNil.
+ entRefChild1Position := entRefChild1 compareDocumentPosition:entRefChild2.
+ self assert: ( entRefChild1Position = 4 ).
+ entRefChild2Position := entRefChild2 compareDocumentPosition:entRefChild1.
+ self assert: ( entRefChild2Position = 2 ).
+
+!
+
+test_nodecomparedocumentposition29
+ "
+ Create two entity reference nodes. Using compareDocumentPosition to check if the child of the first Entity
+ Ref node precedes the child of the second Entity Ref node, and that the child of the second Entity Ref node
+ follows the child of the first Entity Ref node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ entRef1 "EntityReference"
+ entRef2 "EntityReference"
+ entRefChild1 "Element"
+ entRefChild2 "ProcessingInstruction"
+ entRefChild1Position "SmallInteger"
+ entRefChild2Position "SmallInteger"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ entRef1 := doc createEntityReference:'ent4'.
+ entRef2 := doc createEntityReference:'ent4'.
+ docElem := doc documentElement.
+ appendedChild := docElem appendChild:entRef1.
+ appendedChild := docElem appendChild:entRef2.
+ entRefChild1 := entRef1 firstChild.
+ self assert: entRefChild1 notNil.
+ entRefChild2 := entRef2 lastChild.
+ self assert: entRefChild2 notNil.
+ entRefChild1Position := entRefChild1 compareDocumentPosition:entRefChild2.
+ self assert: ( entRefChild1Position = 4 ).
+ entRefChild2Position := entRefChild2 compareDocumentPosition:entRefChild1.
+ self assert: ( entRefChild2Position = 2 ).
+
+!
+
+test_nodecomparedocumentposition30
+ "
+ Using compareTreePosition check if comparedocumentposition invoked on the first name with
+ the first position node as a parameter returns FOLLOWING.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ nameList "NodeList"
+ positionList "NodeList"
+ strong "Element"
+ code "Element"
+ namePosition "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ nameList := doc getElementsByTagName: 'strong'.
+ strong := nameList item:0.
+ positionList := doc getElementsByTagName: 'code'.
+ code := positionList item:0.
+ namePosition := code compareDocumentPosition:strong.
+ self assert: ( namePosition = 2 ).
+
+!
+
+test_nodecomparedocumentposition31
+ "
+ Using compareDocumentPosition to check if invoking the method on the first name node with
+ a new node appended to the second position node as a parameter is FOLLOWING, and is PRECEDING vice versa
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ nameList "NodeList"
+ positionList "NodeList"
+ strong "Element"
+ code "Element"
+ newElem "Element"
+ namePosition "SmallInteger"
+ elemPosition "SmallInteger"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ nameList := doc getElementsByTagName: 'strong'.
+ strong := nameList item:0.
+ positionList := doc getElementsByTagName: 'code'.
+ code := positionList item:1.
+ newElem := doc createElement:'br' ns:'http://www.w3.org/1999/xhtml'.
+ appendedChild := code appendChild:newElem.
+ namePosition := strong compareDocumentPosition:newElem.
+ self assert: ( namePosition = 4 ).
+ elemPosition := newElem compareDocumentPosition:strong.
+ self assert: ( elemPosition = 2 ).
+
+!
+
+test_nodecomparedocumentposition32
+ "
+ Using compareDocumentPosition to check if the document position returned by comparing the first name with
+ a first position node of another document reference and adopted by the first as a parameter is FOLLOWING.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ doc2 "Document"
+ nameList "NodeList"
+ positionList "NodeList"
+ strong "Element"
+ code "Element"
+ documentPosition "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ self assert:false description:'Method "assign" is not supported yet'.
+ nameList := doc getElementsByTagName: 'strong'.
+ strong := nameList item:0.
+ positionList := doc2 getElementsByTagName: 'code'.
+ code := positionList item:0.
+ documentPosition := strong compareDocumentPosition:code.
+ self assert: ( documentPosition = 4 ).
+
+!
+
+test_nodecomparedocumentposition33
+ "
+ Create a new Element node, add a new atttribute node to it. Compare the position
+ of the Element and the Document. This should return disconnected, implementation specific, and that
+ the order of these two nodes is preserved.
+ Also compare the position of the Element node with respect to the Attr node and this should
+ be PRECEDING and contains, and the Attr node follows and is contained by the Element node
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ elem "Element"
+ attr "Attr"
+ position1 "SmallInteger"
+ position2 "SmallInteger"
+ position3 "SmallInteger"
+ position4 "SmallInteger"
+ position5 "SmallInteger"
+ replacedAttr "Attr"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem := doc createElement:'br' ns:'http://www.w3.org/1999/xhtml'.
+ attr := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ replacedAttr := elem setAttributeNodeNS: attr.
+ position4 := elem compareDocumentPosition:attr.
+ self assert: ( position4 = 20 ).
+ position5 := attr compareDocumentPosition:elem.
+ self assert: ( position5 = 10 ).
+ position1 := doc compareDocumentPosition:elem.
+ self assert: ( position1 = 33 ).
+ position2 := elem compareDocumentPosition:doc.
+ self assert: (position2 bitAnd: 2) == (position1 bitAnd: 2).
+ self assert: (position2 bitAnd: 4) == (position1 bitAnd: 4).
+ self assert: ( position2 = 33 ).
+ position3 := doc compareDocumentPosition:elem.
+ self assert: ( position3 = position1 ).
+
+!
+
+test_nodecomparedocumentposition34
+ "
+ Create a new Element node, add new Text, Element and Processing Instruction nodes to it.
+ Using compareDocumentPosition, compare the position of the Element with respect to the Text
+ and the Text with respect to the Processing Instruction.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ elemMain "Element"
+ elem "Element"
+ txt "Text"
+ pi "ProcessingInstruction"
+ elementToTxtPosition "SmallInteger"
+ txtToPiPosition "SmallInteger"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemMain := doc createElement:'p' ns:'http://www.w3.org/1999/xhtml'.
+ elem := doc createElement:'br' ns:'http://www.w3.org/1999/xhtml'.
+ txt := doc createTextNode:'TEXT'.
+ pi := doc createProcessingInstruction:'PIT' data:'PID'.
+ appendedChild := elemMain appendChild:txt.
+ appendedChild := elemMain appendChild:elem.
+ appendedChild := elemMain appendChild:pi.
+ elementToTxtPosition := txt compareDocumentPosition:elem.
+ self assert: ( elementToTxtPosition = 4 ).
+ txtToPiPosition := pi compareDocumentPosition:txt.
+ self assert: ( txtToPiPosition = 2 ).
+
+!
+
+test_nodecomparedocumentposition35
+ "
+ Using compareDocumentPosition to check if the Element contains and precedes its default attribute
+ and that the attribute follows and iscontained by the Element
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ attr "Attr"
+ elementPosition "SmallInteger"
+ attrPosition "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:3.
+ attr := elem getAttributeNode:'dir'.
+ elementPosition := elem compareDocumentPosition:attr.
+ self assert: ( elementPosition = 20 ).
+ attrPosition := attr compareDocumentPosition:elem.
+ self assert: ( attrPosition = 10 ).
+
+!
+
+test_nodecomparedocumentposition36
+ "
+ Using compareDocumentPosition to check if the document position of an Attribute compared with
+ the element that follows its parent as a parameter is FOLLOWING, and is PRECEDING
+ vice versa.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ elemListFollows "NodeList"
+ elemFollows "Element"
+ attr "Attr"
+ attrPosition "SmallInteger"
+ elemFollowsPosition "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:3.
+ attr := elem getAttributeNode:'dir'.
+ elemListFollows := doc getElementsByTagName: 'strong'.
+ elemFollows := elemListFollows item:3.
+ attrPosition := attr compareDocumentPosition:elemFollows.
+ self assert: ( attrPosition = 4 ).
+ elemFollowsPosition := elemFollows compareDocumentPosition:attr.
+ self assert: ( elemFollowsPosition = 2 ).
+
+!
+
+test_nodecomparedocumentposition37
+ "
+ Using compareDocumentPosition to check if the document position of the first class attribute
+ of the element acronym when compared with the elements text content as a parameter is
+ is FOLLOWING, and is PRECEDING vice versa.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ txt "Text"
+ attr "Attr"
+ attrPosition "SmallInteger"
+ txtPosition "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:3.
+ attr := elem getAttributeNode:'class'.
+ txt := elem firstChild.
+ attrPosition := attr compareDocumentPosition:txt.
+ self assert: ( attrPosition = 4 ).
+ txtPosition := txt compareDocumentPosition:attr.
+ self assert: ( txtPosition = 2 ).
+
+!
+
+test_nodecomparedocumentposition38
+ "
+ Using compareDocumentPosition to check if the class's attribute contains and precedes it's content,
+ and the content node is contained and follows the attribute node.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ txt "Text"
+ attr "Attr"
+ attrPosition "SmallInteger"
+ attrChildPosition "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:3.
+ attr := elem getAttributeNode:'class'.
+ txt := attr firstChild.
+ attrPosition := attr compareDocumentPosition:txt.
+ self assert: ( attrPosition = 20 ).
+ attrChildPosition := txt compareDocumentPosition:attr.
+ self assert: ( attrChildPosition = 10 ).
+
+!
+
+test_nodecomparedocumentposition39
+ "
+ Using compareDocumentPosition to check if the document position of the class's attribute
+ when compared with the local1 attribute node is implementation_specific.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ attr1 "Attr"
+ attr2 "Attr"
+ attrPosition "SmallInteger"
+ swappedPosition "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:3.
+ attr1 := elem getAttributeNode:'class'.
+ attr2 := elem getAttributeNode:'xsi:noNamespaceSchemaLocation'.
+ attrPosition := attr1 compareDocumentPosition:attr2.
+ self assert: ( attrPosition = 32 ).
+ self assert: ( attrPosition = 0 ).
+ self assert: (attrPosition bitAnd: 6) == (0 bitAnd: 6).
+ swappedPosition := attr2 compareDocumentPosition:attr1.
+ self assert: (attrPosition bitAnd: 2) == (swappedPosition bitAnd: 2).
+ self assert: (attrPosition bitAnd: 4) == (swappedPosition bitAnd: 4).
+
+!
+
+test_nodecomparedocumentposition40
+ "
+ Using compareDocumentPosition to check if the document position of the class's attribute
+ when compared with a new attribute node is implementation_specific
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-compareDocumentPosition
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ attr1 "Attr"
+ attr2 "Attr"
+ attrPosition "SmallInteger"
+ swappedPosition "SmallInteger"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:3.
+ attr1 := elem getAttributeNode:'class'.
+ elem setAttribute: 'xml:lang' ns: 'http://www.w3.org/XML/1998/namespace' value: 'FR-fr'.
+ attr2 := elem getAttributeNode:'xml:lang'.
+ attrPosition := attr1 compareDocumentPosition:attr2.
+ self assert: ( attrPosition = 32 ).
+ self assert: ( attrPosition = 0 ).
+ self assert: (attrPosition bitAnd: 6) == (0 bitAnd: 6).
+ swappedPosition := attr2 compareDocumentPosition:attr1.
+ self assert: (attrPosition bitAnd: 2) == (swappedPosition bitAnd: 2).
+ self assert: (attrPosition bitAnd: 4) == (swappedPosition bitAnd: 4).
+
+!
+
+test_nodegetbaseuri01
+ "
+Call Node.getBaseURI() on a test document. Should be not-null and same as Document.getDocumentURI().
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2Document
+ "
+ |
+ doc "Document"
+ baseURI "String"
+ documentURI "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ baseURI := doc baseURI.
+ self assert: baseURI = 'barfoo'.
+ documentURI := doc documentURI.
+ self assert: ( baseURI = documentURI ).
+
+!
+
+test_nodegetbaseuri02
+ "
+ Using getBaseURI check if the baseURI attribute of a new Document node is null
+ and if affected by changes in Document.documentURI.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2Document
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ baseURI "String"
+ rootNS "String"
+ rootName "String"
+ docElem "Element"
+ nullDocType "DocumentType"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ baseURI := newDoc baseURI.
+ self assert: baseURI isNil.
+ newDoc documentURI:'http://www.example.com/sample.xml'.
+ baseURI := newDoc baseURI.
+ self assert: ( baseURI asLowercase = 'http://www.example.com/sample.xml' asLowercase ).
+
+!
+
+test_nodegetbaseuri03
+ "
+Check that Node.baseURI is null for a DocumentType as defined in the Infoset Mapping (Appendix C).
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2DocumentType
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ baseURI "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docType := doc doctype.
+ baseURI := docType baseURI.
+ self assert: baseURI isNil.
+
+!
+
+test_nodegetbaseuri04
+ "
+Node.baseURI for a document element without an xml:base attribute should be same as Document.documentURI.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2Document
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ baseURI "String"
+ documentURI "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ baseURI := docElem baseURI.
+ self assert: baseURI = 'barfoo'.
+ documentURI := doc documentURI.
+ self assert: ( baseURI = documentURI ).
+
+!
+
+test_nodegetbaseuri05
+ "
+ Using getBaseURI check if the baseURI attribute of this DocumentElement is http://www.w3.org/DOM/L3Test.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2Element
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ baseURI "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_base').
+ docElem := doc documentElement.
+ baseURI := docElem baseURI.
+ self assert: ( baseURI = 'http://www.w3.org/DOM/L3Test' ).
+
+!
+
+test_nodegetbaseuri06
+ "
+ TODO Clarification: Create a new Element in this document. Since its baseURI should be the baseURI of
+ the Document Entity which I assume is not null, using getBaseURI check if the baseURI
+ attribute of this Element node is not null.???
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2Element
+ "
+ |
+ doc "Document"
+ newElement "Element"
+ baseURI "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ newElement := doc createElement:'br' ns:'http://www.w3.org/1999/xhtml'.
+ baseURI := doc baseURI.
+ self assert: baseURI notNil.
+
+!
+
+test_nodegetbaseuri07
+ "
+ Append a created element to a document and check that its baseURI
+ is inherited from its parent.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2Element
+ "
+ |
+ doc "Document"
+ newElement "Element"
+ baseURI "String"
+ appended "Node"
+ bodyList "NodeList"
+ bodyElem "Element"
+ htmlNS "String"
+ |
+ htmlNS := 'http://www.w3.org/1999/xhtml'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_base').
+ bodyList := doc getElementsByTagName: 'body'.
+ bodyElem := bodyList item:0.
+ newElement := doc createElement:'meta' ns:htmlNS.
+ newElement setAttribute:'content' value:'text/xml'.
+ appended := bodyElem appendChild:newElement.
+ baseURI := newElement baseURI.
+ self assert: ( baseURI = 'http://www.w3.org/DOM/EmployeeID' ).
+
+!
+
+test_nodegetbaseuri09
+ "
+Get the baseURI value on an element with an explicit xml:base attribute.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2Element
+ "
+ |
+ doc "Document"
+ bodyElem "Element"
+ bodyList "NodeList"
+ baseURI "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_base').
+ bodyList := doc getElementsByTagName: 'body'.
+ bodyElem := bodyList item:0.
+ baseURI := bodyElem baseURI.
+ self assert: ( baseURI = 'http://www.w3.org/DOM/EmployeeID' ).
+
+!
+
+test_nodegetbaseuri10
+ "
+ Append as a child of this documentElement a new Processing Instruction. Using getBaseURI
+ check if the baseURI attribute of the new Processing Instruction node is 'http://www.w3.org/DOM/L3Test .
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2ProcessingInstruction
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ newPI "ProcessingInstruction"
+ baseURI "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_base').
+ docElem := doc documentElement.
+ newPI := doc createProcessingInstruction:'TARGET' data:'DATA'.
+ appendedChild := docElem appendChild:newPI.
+ baseURI := newPI baseURI.
+ self assert: ( baseURI = 'http://www.w3.org/DOM/L3Test' ).
+
+!
+
+test_nodegetbaseuri11
+ "
+ Import a new Processing Instruction of a new Document after the document element. Using getBaseURI
+ check if the baseURI attribute of the new Processing Instruction node is the same as Document.documentURI.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2ProcessingInstruction
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ newPI "ProcessingInstruction"
+ imported "ProcessingInstruction"
+ baseURI "String"
+ docURI "String"
+ appendedChild "Node"
+ nullDocType "DocumentType"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_base').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDocType.
+ newPI := newDoc createProcessingInstruction:'TARGET' data:'DATA'.
+ imported := doc importNode:newPI deep:true.
+ appendedChild := doc appendChild:imported.
+ baseURI := imported baseURI.
+ self assert: baseURI = 'barfoo_base'.
+ docURI := doc documentURI.
+ self assert: ( baseURI = docURI ).
+
+!
+
+test_nodegetbaseuri12
+ "
+ Using getBaseURI verify if the entity epsilon is absolute
+ and matches the URL of the document entity.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2Entity
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ entity "Entity"
+ baseURI "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ entity := entitiesMap getNamedItem:'epsilon'.
+ baseURI := entity baseURI.
+ self assert: baseURI = 'hc_staff'.
+
+!
+
+test_nodegetbaseuri13
+ "
+ Using getBaseURI verify if the notation defined in an internal subset
+ is the base URI of the document.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2Notation
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ notationsMap "NamedNodeMap"
+ notation "Notation"
+ baseURI "String"
+ docURI "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ notationsMap := docType notations.
+ notation := notationsMap getNamedItem:'notation1'.
+ baseURI := notation baseURI.
+ docURI := doc documentURI.
+ self assert: ( baseURI = docURI ).
+ self assert: baseURI = 'hc_staff'.
+
+!
+
+test_nodegetbaseuri14
+ "
+ Using getBaseURI verify if the imported notation notation2 is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2Notation
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ docElem "Element"
+ docElemNS "String"
+ docElemName "String"
+ domImpl "DOMImplementation"
+ docType "DocumentType"
+ notationsMap "NamedNodeMap"
+ notation "Notation"
+ notationImported "Notation"
+ baseURI "String"
+ nullDocType "DocumentType"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ docElemNS := docElem namespaceURI.
+ docElemName := docElem localName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: docElemNS qualifiedName: docElemName doctype: nullDocType.
+ docType := doc doctype.
+ notationsMap := docType notations.
+ notation := notationsMap getNamedItem:'notation2'.
+ notationImported := newDoc importNode:notation deep:true.
+ baseURI := notationImported baseURI.
+ self assert: baseURI isNil.
+
+!
+
+test_nodegetbaseuri15
+ "
+Node.getBaseURI for an Attr is null.
+
+ Creator: Curt Arnold
+ Autor Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2Attr
+ "
+ |
+ doc "Document"
+ baseURI "String"
+ attrNode "Attr"
+ bodyList "NodeList"
+ bodyElem "Element"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_base').
+ bodyList := doc getElementsByTagName: 'body'.
+ bodyElem := bodyList item:0.
+ attrNode := bodyElem getAttributeNode:'id'.
+ baseURI := attrNode baseURI.
+ self assert: baseURI isNil.
+
+!
+
+test_nodegetbaseuri16
+ "
+Node.getBaseURI for an EntityReference to should be the baseURI where the entity declaration occurs.
+
+ Creator: Curt Arnold
+ Autor Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2EntityReference
+ "
+ |
+ doc "Document"
+ baseURI "String"
+ entRef "EntityReference"
+ pList "NodeList"
+ pElem "Element"
+ |
+ "implementationAttribute not supported: expandEntityReferences"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'external_barfoo').
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ entRef := pElem lastChild.
+ baseURI := entRef baseURI.
+ self assert: baseURI = 'external_barfoo'.
+
+!
+
+test_nodegetbaseuri17
+ "
+Node.getBaseURI for an text node is null.
+
+ Creator: Curt Arnold
+ Autor Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2Text
+ "
+ |
+ doc "Document"
+ baseURI "String"
+ textNode "Text"
+ pList "NodeList"
+ pElem "Element"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_base').
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ textNode := pElem firstChild.
+ baseURI := textNode baseURI.
+ self assert: baseURI isNil.
+
+!
+
+test_nodegetbaseuri18
+ "
+Node.getBaseURI for an comment node is null.
+
+ Creator: Curt Arnold
+ Autor Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2Comment
+ "
+ |
+ doc "Document"
+ baseURI "String"
+ comment "Comment"
+ pList "NodeList"
+ pElem "Element"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_base').
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ comment := pElem nextSibling.
+ baseURI := comment baseURI.
+ self assert: baseURI isNil.
+
+!
+
+test_nodegetbaseuri19
+ "
+Checks baseURI for a text node is null.
+
+ Creator: Curt Arnold
+ Autor Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2DocumentType
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2EntityReference
+ "
+ |
+ doc "Document"
+ baseURI "String"
+ entBaseURI "String"
+ entRef "EntityReference"
+ pList "NodeList"
+ pElem "Element"
+ textNode "Text"
+ |
+ ^self. "Validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'external_barfoo').
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ self assert: pElem notNil.
+ "if"
+ false "no template for element implementationAttribute" ifTrue: [
+ ].
+ baseURI := textNode baseURI.
+ self assert: baseURI isNil.
+
+!
+
+test_nodegetbaseuri20
+ "
+baseURI for an element from an entity reference should be the URI of the
+external entity if there is now xml:base attribute.
+
+ Creator: Curt Arnold
+ Autor Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-baseURI
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=419
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/infoset-mapping#Infoset2EntityReference
+ "
+ |
+ doc "Document"
+ baseURI "String"
+ pList "NodeList"
+ pElem "Element"
+ |
+ ^self. "Validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'external_barfoo').
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:2.
+ self assert: pElem notNil.
+ baseURI := pElem baseURI.
+ self assert: baseURI = 'external_widget'.
+
+!
+
+test_nodegetfeature01
+ "
+Check implementation of Node.getFeature on Document.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getFeature
+ "
+ |
+ doc "Document"
+ node "Node"
+ nullVersion "String"
+ featureImpl "Node"
+ isSupported "Boolean"
+ domImpl "DOMImplementation"
+ |
+ nullVersion := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ self assert:false description:'Method "assign" is not supported yet'.
+ featureImpl := node getFeature:'Core' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'+cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'org.w3c.domts.bogus.feature' version:nullVersion.
+ self assert: featureImpl isNil.
+ featureImpl := node getFeature:'cOrE' version:'2.0'.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:'3.0'.
+ self assert: featureImpl == node.
+ isSupported := node isSupported:'XML' version:nullVersion.
+ featureImpl := doc getFeature:'XML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'SVG' version:nullVersion.
+ featureImpl := doc getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'HTML' version:nullVersion.
+ featureImpl := doc getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'Events' version:nullVersion.
+ featureImpl := doc getFeature:'Events' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS' version:nullVersion.
+ featureImpl := doc getFeature:'LS' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS-Async' version:nullVersion.
+ featureImpl := doc getFeature:'LS-Async' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'XPath' version:nullVersion.
+ featureImpl := doc getFeature:'XPath' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+HTML' version:nullVersion.
+ featureImpl := doc getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+SVG' version:nullVersion.
+ featureImpl := doc getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+
+!
+
+test_nodegetfeature02
+ "
+Check implementation of Node.getFeature on DocumentFragment.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getFeature
+ "
+ |
+ doc "Document"
+ node "Node"
+ nullVersion "String"
+ featureImpl "Node"
+ isSupported "Boolean"
+ domImpl "DOMImplementation"
+ |
+ nullVersion := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ node := doc createDocumentFragment.
+ featureImpl := node getFeature:'Core' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'+cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'org.w3c.domts.bogus.feature' version:nullVersion.
+ self assert: featureImpl isNil.
+ featureImpl := node getFeature:'cOrE' version:'2.0'.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:'3.0'.
+ self assert: featureImpl == node.
+ isSupported := node isSupported:'XML' version:nullVersion.
+ featureImpl := node getFeature:'XML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'Events' version:nullVersion.
+ featureImpl := node getFeature:'Events' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS' version:nullVersion.
+ featureImpl := node getFeature:'LS' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS-Async' version:nullVersion.
+ featureImpl := node getFeature:'LS-Async' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'XPath' version:nullVersion.
+ featureImpl := node getFeature:'XPath' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+
+!
+
+test_nodegetfeature03
+ "
+Check implementation of Node.getFeature on DocumentType.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getFeature
+ "
+ |
+ doc "Document"
+ node "Node"
+ nullVersion "String"
+ featureImpl "Node"
+ isSupported "Boolean"
+ domImpl "DOMImplementation"
+ |
+ nullVersion := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ node := doc doctype.
+ featureImpl := node getFeature:'Core' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'+cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'org.w3c.domts.bogus.feature' version:nullVersion.
+ self assert: featureImpl isNil.
+ featureImpl := node getFeature:'cOrE' version:'2.0'.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:'3.0'.
+ self assert: featureImpl == node.
+ isSupported := node isSupported:'XML' version:nullVersion.
+ featureImpl := node getFeature:'XML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'Events' version:nullVersion.
+ featureImpl := node getFeature:'Events' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS' version:nullVersion.
+ featureImpl := node getFeature:'LS' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS-Async' version:nullVersion.
+ featureImpl := node getFeature:'LS-Async' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'XPath' version:nullVersion.
+ featureImpl := node getFeature:'XPath' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+
+!
+
+test_nodegetfeature04
+ "
+Check implementation of Node.getFeature on EntityReference.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getFeature
+ "
+ |
+ doc "Document"
+ node "Node"
+ nullVersion "String"
+ featureImpl "Node"
+ isSupported "Boolean"
+ domImpl "DOMImplementation"
+ |
+ nullVersion := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ node := doc createEntityReference:'ent1'.
+ featureImpl := node getFeature:'Core' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'+cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'org.w3c.domts.bogus.feature' version:nullVersion.
+ self assert: featureImpl isNil.
+ featureImpl := node getFeature:'cOrE' version:'2.0'.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:'3.0'.
+ self assert: featureImpl == node.
+ isSupported := node isSupported:'XML' version:nullVersion.
+ featureImpl := node getFeature:'XML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'Events' version:nullVersion.
+ featureImpl := node getFeature:'Events' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS' version:nullVersion.
+ featureImpl := node getFeature:'LS' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS-Async' version:nullVersion.
+ featureImpl := node getFeature:'LS-Async' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'XPath' version:nullVersion.
+ featureImpl := node getFeature:'XPath' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+
+!
+
+test_nodegetfeature05
+ "
+Check implementation of Node.getFeature on Element.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getFeature
+ "
+ |
+ doc "Document"
+ node "Node"
+ nullVersion "String"
+ featureImpl "Node"
+ isSupported "Boolean"
+ domImpl "DOMImplementation"
+ |
+ nullVersion := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ node := doc documentElement.
+ featureImpl := node getFeature:'Core' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'+cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'org.w3c.domts.bogus.feature' version:nullVersion.
+ self assert: featureImpl isNil.
+ featureImpl := node getFeature:'cOrE' version:'2.0'.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:'3.0'.
+ self assert: featureImpl == node.
+ isSupported := node isSupported:'XML' version:nullVersion.
+ featureImpl := node getFeature:'XML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'Events' version:nullVersion.
+ featureImpl := node getFeature:'Events' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS' version:nullVersion.
+ featureImpl := node getFeature:'LS' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS-Async' version:nullVersion.
+ featureImpl := node getFeature:'LS-Async' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'XPath' version:nullVersion.
+ featureImpl := node getFeature:'XPath' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+
+!
+
+test_nodegetfeature06
+ "
+Check implementation of Node.getFeature on non-namespace attribute.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getFeature
+ "
+ |
+ doc "Document"
+ node "Node"
+ nullVersion "String"
+ featureImpl "Node"
+ isSupported "Boolean"
+ domImpl "DOMImplementation"
+ |
+ nullVersion := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ node := doc createAttribute:'title'.
+ featureImpl := node getFeature:'Core' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'+cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'org.w3c.domts.bogus.feature' version:nullVersion.
+ self assert: featureImpl isNil.
+ featureImpl := node getFeature:'cOrE' version:'2.0'.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:'3.0'.
+ self assert: featureImpl == node.
+ isSupported := node isSupported:'XML' version:nullVersion.
+ featureImpl := node getFeature:'XML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'Events' version:nullVersion.
+ featureImpl := node getFeature:'Events' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS' version:nullVersion.
+ featureImpl := node getFeature:'LS' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS-Async' version:nullVersion.
+ featureImpl := node getFeature:'LS-Async' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'XPath' version:nullVersion.
+ featureImpl := node getFeature:'XPath' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+
+!
+
+test_nodegetfeature07
+ "
+Check implementation of Node.getFeature on namespaced attribute.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getFeature
+ "
+ |
+ doc "Document"
+ node "Node"
+ nullVersion "String"
+ featureImpl "Node"
+ isSupported "Boolean"
+ domImpl "DOMImplementation"
+ |
+ nullVersion := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ node := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ featureImpl := node getFeature:'Core' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'+cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'org.w3c.domts.bogus.feature' version:nullVersion.
+ self assert: featureImpl isNil.
+ featureImpl := node getFeature:'cOrE' version:'2.0'.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:'3.0'.
+ self assert: featureImpl == node.
+ isSupported := node isSupported:'XML' version:nullVersion.
+ featureImpl := node getFeature:'XML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'Events' version:nullVersion.
+ featureImpl := node getFeature:'Events' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS' version:nullVersion.
+ featureImpl := node getFeature:'LS' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS-Async' version:nullVersion.
+ featureImpl := node getFeature:'LS-Async' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'XPath' version:nullVersion.
+ featureImpl := node getFeature:'XPath' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+
+!
+
+test_nodegetfeature08
+ "
+Check implementation of Node.getFeature on ProcessingInstruction.
+
+ Creator: Curt Arnold
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getFeature
+ "
+ |
+ doc "Document"
+ node "Node"
+ nullVersion "String"
+ featureImpl "Node"
+ isSupported "Boolean"
+ domImpl "DOMImplementation"
+ |
+ nullVersion := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ node := doc createProcessingInstruction:'test-pi' data:'foo'.
+ featureImpl := node getFeature:'Core' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'+cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'org.w3c.domts.bogus.feature' version:nullVersion.
+ self assert: featureImpl isNil.
+ featureImpl := node getFeature:'cOrE' version:'2.0'.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:'3.0'.
+ self assert: featureImpl == node.
+ isSupported := node isSupported:'XML' version:nullVersion.
+ featureImpl := node getFeature:'XML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'Events' version:nullVersion.
+ featureImpl := node getFeature:'Events' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS' version:nullVersion.
+ featureImpl := node getFeature:'LS' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS-Async' version:nullVersion.
+ featureImpl := node getFeature:'LS-Async' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'XPath' version:nullVersion.
+ featureImpl := node getFeature:'XPath' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+
+!
+
+test_nodegetfeature09
+ "
+Check implementation of Node.getFeature on Comment.
+
+ Creator: Curt Arnold
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getFeature
+ "
+ |
+ doc "Document"
+ node "Node"
+ nullVersion "String"
+ featureImpl "Node"
+ isSupported "Boolean"
+ domImpl "DOMImplementation"
+ |
+ nullVersion := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ node := doc createComment:'test comment'.
+ featureImpl := node getFeature:'Core' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'+cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'org.w3c.domts.bogus.feature' version:nullVersion.
+ self assert: featureImpl isNil.
+ featureImpl := node getFeature:'cOrE' version:'2.0'.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:'3.0'.
+ self assert: featureImpl == node.
+ isSupported := node isSupported:'XML' version:nullVersion.
+ featureImpl := node getFeature:'XML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'Events' version:nullVersion.
+ featureImpl := node getFeature:'Events' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS' version:nullVersion.
+ featureImpl := node getFeature:'LS' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS-Async' version:nullVersion.
+ featureImpl := node getFeature:'LS-Async' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'XPath' version:nullVersion.
+ featureImpl := node getFeature:'XPath' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+
+!
+
+test_nodegetfeature10
+ "
+Check implementation of Node.getFeature on Text.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getFeature
+ "
+ |
+ doc "Document"
+ node "Node"
+ nullVersion "String"
+ featureImpl "Node"
+ isSupported "Boolean"
+ domImpl "DOMImplementation"
+ nodeList "NodeList"
+ elem "Element"
+ |
+ nullVersion := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ nodeList := doc getElementsByTagName: 'p'.
+ elem := nodeList item:0.
+ node := elem firstChild.
+ featureImpl := node getFeature:'Core' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'+cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'org.w3c.domts.bogus.feature' version:nullVersion.
+ self assert: featureImpl isNil.
+ featureImpl := node getFeature:'cOrE' version:'2.0'.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:'3.0'.
+ self assert: featureImpl == node.
+ isSupported := node isSupported:'XML' version:nullVersion.
+ featureImpl := node getFeature:'XML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'Events' version:nullVersion.
+ featureImpl := node getFeature:'Events' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS' version:nullVersion.
+ featureImpl := node getFeature:'LS' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS-Async' version:nullVersion.
+ featureImpl := node getFeature:'LS-Async' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'XPath' version:nullVersion.
+ featureImpl := node getFeature:'XPath' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+
+!
+
+test_nodegetfeature11
+ "
+Check implementation of Node.getFeature on CDATASection.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getFeature
+ "
+ |
+ doc "Document"
+ node "Node"
+ nullVersion "String"
+ featureImpl "Node"
+ isSupported "Boolean"
+ domImpl "DOMImplementation"
+ |
+ nullVersion := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ node := doc createCDATASection:'some text'.
+ featureImpl := node getFeature:'Core' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'+cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'org.w3c.domts.bogus.feature' version:nullVersion.
+ self assert: featureImpl isNil.
+ featureImpl := node getFeature:'cOrE' version:'2.0'.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:'3.0'.
+ self assert: featureImpl == node.
+ isSupported := node isSupported:'XML' version:nullVersion.
+ featureImpl := node getFeature:'XML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'Events' version:nullVersion.
+ featureImpl := node getFeature:'Events' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS' version:nullVersion.
+ featureImpl := node getFeature:'LS' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS-Async' version:nullVersion.
+ featureImpl := node getFeature:'LS-Async' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'XPath' version:nullVersion.
+ featureImpl := node getFeature:'XPath' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+
+!
+
+test_nodegetfeature12
+ "
+Check implementation of Node.getFeature on Entity.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getFeature
+ "
+ |
+ doc "Document"
+ node "Node"
+ nullVersion "String"
+ featureImpl "Node"
+ isSupported "Boolean"
+ domImpl "DOMImplementation"
+ entities "NamedNodeMap"
+ doctype "DocumentType"
+ |
+ nullVersion := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doctype := doc doctype.
+ entities := doctype entities.
+ node := entities getNamedItem:'ent1'.
+ featureImpl := node getFeature:'Core' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'+cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'org.w3c.domts.bogus.feature' version:nullVersion.
+ self assert: featureImpl isNil.
+ featureImpl := node getFeature:'cOrE' version:'2.0'.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:'3.0'.
+ self assert: featureImpl == node.
+ isSupported := node isSupported:'XML' version:nullVersion.
+ featureImpl := node getFeature:'XML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'Events' version:nullVersion.
+ featureImpl := node getFeature:'Events' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS' version:nullVersion.
+ featureImpl := node getFeature:'LS' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS-Async' version:nullVersion.
+ featureImpl := node getFeature:'LS-Async' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'XPath' version:nullVersion.
+ featureImpl := node getFeature:'XPath' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+
+!
+
+test_nodegetfeature13
+ "
+Check implementation of Node.getFeature on Notation.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getFeature
+ "
+ |
+ doc "Document"
+ node "Node"
+ nullVersion "String"
+ featureImpl "Node"
+ isSupported "Boolean"
+ domImpl "DOMImplementation"
+ notations "NamedNodeMap"
+ doctype "DocumentType"
+ |
+ nullVersion := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doctype := doc doctype.
+ notations := doctype notations.
+ node := notations getNamedItem:'notation1'.
+ featureImpl := node getFeature:'Core' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'+cOrE' version:nullVersion.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'org.w3c.domts.bogus.feature' version:nullVersion.
+ self assert: featureImpl isNil.
+ featureImpl := node getFeature:'cOrE' version:'2.0'.
+ self assert: featureImpl == node.
+ featureImpl := node getFeature:'cOrE' version:'3.0'.
+ self assert: featureImpl == node.
+ isSupported := node isSupported:'XML' version:nullVersion.
+ featureImpl := node getFeature:'XML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'Events' version:nullVersion.
+ featureImpl := node getFeature:'Events' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS' version:nullVersion.
+ featureImpl := node getFeature:'LS' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'LS-Async' version:nullVersion.
+ featureImpl := node getFeature:'LS-Async' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'XPath' version:nullVersion.
+ featureImpl := node getFeature:'XPath' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+HTML' version:nullVersion.
+ featureImpl := node getFeature:'HTML' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+ isSupported := node isSupported:'+SVG' version:nullVersion.
+ featureImpl := node getFeature:'SVG' version:nullVersion.
+ "if"
+ (isSupported) ifTrue: [
+ ].
+
+!
+
+test_nodegettextcontent01
+ "
+
+
+ Using getTextContent on this Document node check if the value returned is Null .
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ textContent "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ textContent := doc textContent.
+ self assert: textContent isNil.
+
+!
+
+test_nodegettextcontent02
+ "
+
+
+ Using getTextContent on a new Document node check if the value returned is Null .
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ textContent "String"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootName "String"
+ rootNS "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ textContent := newDoc textContent.
+ self assert: textContent isNil.
+
+!
+
+test_nodegettextcontent03
+ "
+
+
+ Using getTextContent on this DocumentType node check if the value returned is Null .
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ newDoc "Document"
+ textContent "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ textContent := docType textContent.
+ self assert: textContent isNil.
+
+!
+
+test_nodegettextcontent04
+ "
+
+
+ Using getTextContent on a new DocumentType node check if the value returned is Null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ docType "DocumentType"
+ textContent "String"
+ nullPubId "String"
+ nullSysId "String"
+ oldDocType "DocumentType"
+ rootName "String"
+ |
+ nullPubId := nil.
+ nullSysId := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ oldDocType := doc doctype.
+ rootName := oldDocType name.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ docType := domImpl createDocumentType:rootName publicId:nullPubId systemId:nullSysId.
+ textContent := docType textContent.
+ self assert: textContent isNil.
+
+!
+
+test_nodegettextcontent05
+ "
+
+
+ Using getTextContent on this DocumentType node check if the value returned is Null .
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ notationsMap "NamedNodeMap"
+ notation1 "Notation"
+ textContent "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ notationsMap := docType notations.
+ notation1 := notationsMap getNamedItem:'notation1'.
+ textContent := docType textContent.
+ self assert: textContent isNil.
+
+!
+
+test_nodegettextcontent06
+ "
+
+
+ Invoke the method getTextContent on a default Attr node and check if the value returned
+ is the attributes Value.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ attr "Attr"
+ textContent "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:3.
+ attr := elem getAttributeNode:'dir'.
+ textContent := attr textContent.
+ self assert: ( textContent = 'rtl' ).
+
+!
+
+test_nodegettextcontent07
+ "
+ Invoke the method getTextContent on a new Attr node and check if the value returned
+ is the attributes Value.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ attr "Attr"
+ textContent "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:3.
+ elem setAttribute: 'xml:lang' ns: 'http://www.w3.org/XML/1998/namespace' value: 'en-US'.
+ attr := elem getAttributeNode: 'lang' ns: 'http://www.w3.org/XML/1998/namespace'.
+ textContent := attr textContent.
+ self assert: ( textContent = 'en-US' ).
+
+!
+
+test_nodegettextcontent08
+ "
+ Invoke the method getTextContent on a new Attr node and check if the value returned
+ is the attributes Value.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ att "Attr"
+ attr "Attr"
+ replacedAttr "Attr"
+ textContent "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ elem := doc createElement:'p' ns:'http://www.w3.org/1999/xhtml'.
+ att := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ replacedAttr := elem setAttributeNodeNS: att.
+ attr := elem getAttributeNode: 'lang' ns: 'http://www.w3.org/XML/1998/namespace'.
+ textContent := attr textContent.
+ self assert: ( textContent = '' ).
+
+!
+
+test_nodegettextcontent09
+ "
+ Invoke the method getTextContent on a new Text node and check if the value returned
+ is the text content.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ txt "Text"
+ textContent "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ elem := doc createElement:'p' ns:'http://www.w3.org/1999/xhtml'.
+ txt := doc createTextNode:'Replacement Text'.
+ appendedChild := elem appendChild:txt.
+ textContent := txt textContent.
+ self assert: ( textContent = 'Replacement Text' ).
+
+!
+
+test_nodegettextcontent10
+ "
+
+
+ Invoke the method getTextContent on an existing Text node and check if the value returned
+ is the elements Text content.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ txt "Text"
+ textContent "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ txt := elem firstChild.
+ textContent := txt textContent.
+ self assert: ( textContent = 'EMP0001' ).
+
+!
+
+test_nodegettextcontent11
+ "
+
+
+ Invoke the method getTextContent on an existing CDATASection node and check if the value returned
+ is the CDATASections content.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ cdata "CDATASection"
+ textContent "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ elem := elemList item:1.
+ cdata := elem lastChild.
+ textContent := cdata textContent.
+ self assert: ( textContent = 'This is an adjacent CDATASection with a reference to a tab &tab;' ).
+
+!
+
+test_nodegettextcontent12
+ "
+ Invoke the method getTextContent on a new Comment node and check if the value returned
+ is the Comments data.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ comment "Comment"
+ textContent "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ elem := doc createElement:'body' ns:'http://www.w3.org/1999/xhtml'.
+ comment := doc createComment:'Comment'.
+ appendedChild := elem appendChild:comment.
+ textContent := comment textContent.
+ self assert: ( textContent = 'Comment' ).
+
+!
+
+test_nodegettextcontent13
+ "
+
+
+ Invoke the method getTextContent on an existing Element node with Text and CDATA
+ content and check if the value returned is a single concatenated String with its content.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ textContent "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ elem := elemList item:1.
+ textContent := elem textContent.
+ self assert: ( textContent = 'Martha Raynolds\nThis is a CDATASection with EntityReference number 2 &ent2;\nThis is an adjacent CDATASection with a reference to a tab &tab;' ).
+
+!
+
+test_nodegettextcontent14
+ "
+ Invoke the method getTextContent on an existing Element node with Child Element, Text
+ EntityReferences and Attributes and check if the value returned is a single
+ concatenated String with its content.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ textContent "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:2.
+ textContent := elem textContent.
+ self assert: ( textContent = '\n EMP0003\n Roger\n Jones\n Department Manager\n 100,000\n Element data\n PO Box 27 Irving, texas 98553\n ' ).
+
+!
+
+test_nodegettextcontent15
+ "
+ The method getTextContent returns the text content of this node and its descendants.
+
+ Invoke the method getTextContent on a new Element node with new Text, EntityReferences
+ CDATASection, PI and Comment nodes and check if the value returned is a single
+ concatenated String with its content.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ elem "Element"
+ txt "Text"
+ comment "Comment"
+ entRef "EntityReference"
+ cdata "CDATASection"
+ pi "ProcessingInstruction"
+ textContent "String"
+ appendedChild "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ ^self. "Validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem := doc createElement:'dom3:elem' ns:'http://www.w3.org/DOM/Test'.
+ txt := doc createTextNode:'Text '.
+ comment := doc createComment:'Comment '.
+ entRef := doc createEntityReference:'beta'.
+ pi := doc createProcessingInstruction:'PIT' data:'PIData '.
+ cdata := doc createCDATASection:'CData'.
+ appendedChild := elem appendChild:txt.
+ appendedChild := elem appendChild:comment.
+ appendedChild := elem appendChild:entRef.
+ appendedChild := elem appendChild:pi.
+ appendedChild := elem appendChild:cdata.
+ textContent := elem textContent.
+ doc normalizeDocument.
+ self assert: ( textContent = 'Text βCData' ).
+
+!
+
+test_nodegettextcontent16
+ "
+ The method getTextContent returns the text content of this node and its descendants.
+
+ Invoke the method getTextContent on a new DocumentFragment node with new Text, EntityReferences
+ CDATASection, PI and Comment nodes and check if the value returned is a single
+ concatenated String with its content.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ elem "Element"
+ elemChild "Element"
+ txt "Text"
+ comment "Comment"
+ entRef "EntityReference"
+ cdata "CDATASection"
+ pi "ProcessingInstruction"
+ textContent "String"
+ appendedChild "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ ^self. "Validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docFrag := doc createDocumentFragment.
+ elem := doc createElement:'dom3:elem' ns:'http://www.w3.org/DOM/Test'.
+ txt := doc createTextNode:'Text '.
+ comment := doc createComment:'Comment '.
+ entRef := doc createEntityReference:'beta'.
+ pi := doc createProcessingInstruction:'PIT' data:'PIData '.
+ cdata := doc createCDATASection:'CData'.
+ appendedChild := elem appendChild:txt.
+ appendedChild := elem appendChild:comment.
+ appendedChild := elem appendChild:entRef.
+ appendedChild := elem appendChild:pi.
+ appendedChild := elem appendChild:cdata.
+ appendedChild := docFrag appendChild:elem.
+ doc normalizeDocument.
+ textContent := docFrag textContent.
+ self assert: ( textContent = 'Text βCData' ).
+
+!
+
+test_nodegettextcontent17
+ "
+ Invoke the method getTextContent on a new EntityReference node and check if the
+ value returned is the EntityReference's content.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ elem "Element"
+ entRef "EntityReference"
+ textContent "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem := doc documentElement.
+ entRef := doc createEntityReference:'beta'.
+ appendedChild := elem appendChild:entRef.
+ textContent := entRef textContent.
+ self assert: ( textContent = 'β' ).
+
+!
+
+test_nodegettextcontent18
+ "
+ Invoke the method getTextContent on an Entity node and check if the value returned
+ is its replacement text.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entity "Entity"
+ entitymap "NamedNodeMap"
+ textContent "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitymap := docType entities.
+ entity := entitymap getNamedItem:'delta'.
+ textContent := entity textContent.
+ self assert: ( textContent = 'δ' ).
+
+!
+
+test_nodegettextcontent19
+ "
+Checks that element content whitespace is not added to textContent. Determination
+of element content whitespace is only assured if validating.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=538
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ textContent "String"
+ |
+ "implementationAttribute not supported: ignoringElementContentWhitespace"
+ ^self. "Validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ elemList := doc getElementsByTagName: 'body'.
+ elem := elemList item:0.
+ textContent := elem textContent.
+ self assert: ( textContent = 'bar' ).
+
+!
+
+test_nodegetuserdata01
+ "
+
+
+ Using getUserData with a junk value for the key attempt to retreive the UserData object
+ of this Document node without setting it and verify if null is returned.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getUserData
+ "
+ |
+ doc "Document"
+ userData "DOMUserData"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ userData := doc getUserDataForKey:'key1'.
+ self assert: userData isNil.
+
+!
+
+test_nodegetuserdata02
+ "
+
+
+ Using getUserData with a junk value for the key attempt to retreive the UserData object
+ of this Document node without setting it and verify if null is returned.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getUserData
+ "
+ |
+ doc "Document"
+ userData "DOMUserData"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ userData := doc getUserDataForKey:'key1'.
+ self assert: userData isNil.
+
+!
+
+test_nodegetuserdata03
+ "
+
+
+ Invoke setUserData on this Document to set this Documents UserData to a new
+ Element node and using getUserData and isEqualNode check if the returned
+ UserData object is the same as the object that was set.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getUserData
+ "
+ |
+ doc "Document"
+ userData "DOMUserData"
+ retUserData "DOMUserData"
+ success "Boolean"
+ elem "Element"
+ returnedUserData "DOMUserData"
+ nullHandler "UserDataHandler"
+ |
+ nullHandler := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ elem := doc createElement:'body' ns:'http://www.w3.org/1999/xhtml'.
+ returnedUserData := doc setUserData:elem handler: nullHandler forKey:'something'.
+ retUserData := doc getUserDataForKey:'something'.
+ success := retUserData isEqualNode:elem.
+ self assert: success.
+
+!
+
+test_nodegetuserdata04
+ "
+
+
+ Invoke setUserData on this DocumentType to set this its UserData to a this
+ Document node and using getUserData and isEqualNode check if the returned
+ UserData object is the same as the object that was set.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getUserData
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ userData "DOMUserData"
+ retUserData "DOMUserData"
+ success "Boolean"
+ nullHandler "UserDataHandler"
+ prevUserData "DOMUserData"
+ |
+ nullHandler := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ prevUserData := docType setUserData:doc handler: nullHandler forKey:'KeyDoc'.
+ retUserData := docType getUserDataForKey:'KeyDoc'.
+ success := retUserData isEqualNode:doc.
+ self assert: success.
+
+!
+
+test_nodegetuserdata05
+ "
+ Invoke setUserData on this Entity node to set this its UserData to a new
+ Attr node and using getUserData with an invalid Key check if the returned
+ UserData object is Null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getUserData
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entities "NamedNodeMap"
+ entity "Entity"
+ attr "Attr"
+ userData "DOMUserData"
+ retUserData "DOMUserData"
+ nullHandler "UserDataHandler"
+ prevUserData "DOMUserData"
+ |
+ nullHandler := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entities := docType entities.
+ entity := entities getNamedItem:'delta'.
+ attr := doc createAttribute:'lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ prevUserData := entity setUserData:attr handler: nullHandler forKey:'key'.
+ retUserData := entity getUserDataForKey:'Key'.
+ self assert: retUserData isNil.
+
+!
+
+test_nodegetuserdata06
+ "
+
+
+ Invoke getUserData on a new Text node with an ampty Key check if the returned
+ UserData object is Null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getUserData
+ "
+ |
+ doc "Document"
+ txt "Text"
+ retUserData "DOMUserData"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ txt := doc createTextNode:'TEXT'.
+ retUserData := txt getUserDataForKey:''.
+ self assert: retUserData isNil.
+
+!
+
+test_nodegetuserdata07
+ "
+
+
+ Invoke setUserData on a new PI node to set this its UserData to itself
+ and using getUserData with an valid Key and isEqualsNode check if the
+ returned UserData object is the same as that was set.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-getUserData
+ "
+ |
+ doc "Document"
+ pi "ProcessingInstruction"
+ userData "DOMUserData"
+ retUserData "DOMUserData"
+ success "Boolean"
+ nullHandler "UserDataHandler"
+ prevUserData "DOMUserData"
+ |
+ nullHandler := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ pi := doc createProcessingInstruction:'PITARGET' data:'PIDATA'.
+ prevUserData := pi setUserData:pi handler: nullHandler forKey:'key'.
+ retUserData := pi getUserDataForKey:'key'.
+ success := retUserData isEqualNode:pi.
+ self assert: success.
+
+!
+
+test_nodeinsertbefore01
+ "
+
+
+
+ Using insertBefore on this Document node attempt to insert a new Comment node before
+ this DocumentElement node and verify the name of the inserted Comment node. Now
+ attempt to insert a new Processing Instruction node before the new Comment and
+ verify the target of the inserted ProcessingInstruction.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ newComment "Comment"
+ insertedComment "Comment"
+ data "String"
+ newPI "ProcessingInstruction"
+ insertedPI "ProcessingInstruction"
+ target "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ newComment := doc createComment:'Comment'.
+ newPI := doc createProcessingInstruction:'PITarget' data:'PIData'.
+ doc insert:newComment before: docElem.
+ data := insertedComment data.
+ self assert: ( data = 'Comment' ).
+ doc insert:newPI before: newComment.
+ target := insertedPI target.
+ self assert: ( target = 'PITarget' ).
+
+!
+
+test_nodeinsertbefore02
+ "
+ Using insertBefore on a new Document node attempt to insert a new Comment node before
+ this DocumentType node and verify the name of the inserted Comment node. Now
+ attempt to insert a new Processing Instruction node before the new Comment and
+ verify the target of the inserted ProcessingInstruction.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ newDocType "DocumentType"
+ newComment "Comment"
+ insertedComment "Comment"
+ data "String"
+ newPI "ProcessingInstruction"
+ insertedPI "ProcessingInstruction"
+ target "String"
+ nullPubId "String"
+ nullSysId "String"
+ rootNS "String"
+ rootName "String"
+ docElem "Element"
+ |
+ nullPubId := nil.
+ nullSysId := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDocType := domImpl createDocumentType:rootName publicId:nullPubId systemId:nullSysId.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: newDocType.
+ newComment := newDoc createComment:'Comment'.
+ newPI := newDoc createProcessingInstruction:'PITarget' data:'PIData'.
+ newDoc insert:newComment before: newDocType.
+ data := insertedComment data.
+ self assert: ( data = 'Comment' ).
+ newDoc insert:newPI before: newComment.
+ target := insertedPI target.
+ self assert: ( target = 'PITarget' ).
+
+!
+
+test_nodeinsertbefore03
+ "
+ Using insertBefore on this Document node attempt to insert a new Attr node before
+ this DocumentType node and verify if a HIERARCHY_REQUEST_ERR is raised.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ newAttr "Attr"
+ inserted "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ newAttr := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ "assertDOMException..."
+ self should:[
+ doc insert:newAttr before: docType.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException HIERARCHY_REQUEST_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodeinsertbefore04
+ "
+ Using insertBefore on this Document node attempt to insert this Document node before
+ this DocumentType node and verify if a HIERARCHY_REQUEST_ERR is raised.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ inserted "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ "assertDOMException..."
+ self should:[
+ doc insert:doc before: docType.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException HIERARCHY_REQUEST_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodeinsertbefore05
+ "
+ Attempt to insert a second DocumentType node in a document using Node.insertBefore,
+ should raise either DOMException with either a HIERARCHY_REQUEST_ERR
+ or NOT_SUPPORTED_ERR code.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ domImpl "DOMImplementation"
+ newDocType "DocumentType"
+ inserted "Node"
+ nullPubId "String"
+ nullSysId "String"
+ rootName "String"
+ |
+ nullPubId := nil.
+ nullSysId := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ rootName := docType name.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDocType := domImpl createDocumentType:rootName publicId:nullPubId systemId:nullSysId.
+ "try"
+ [
+ doc insert:newDocType before: docType.
+self assert:false. ] on: DOMException do: [:ex| ].
+ "end of try"
+
+!
+
+test_nodeinsertbefore06
+ "
+ Using insertBefore on this Document node attempt to insert an Element node before
+ the existing element node and verify if a HIERARCHY_REQUEST_ERR or NOT_SUPPORTED_ERR is raised.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=415
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ newElem "Element"
+ inserted "Node"
+ rootNS "String"
+ rootTagname "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootTagname := docElem tagName.
+ newElem := doc createElement:rootTagname ns:rootNS.
+ "try"
+ [
+ doc insert:newElem before: docElem.
+self assert:false. ] on: DOMException do: [:ex| ].
+ "end of try"
+
+!
+
+test_nodeinsertbefore07
+ "
+
+
+
+ Using insertBefore on this Document node attempt to insert a Comment node created by
+ another Document before this DocumentElement node and verify if a WRONG_DOCUMENT_ERR
+ is raised.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ docAlt "Document"
+ docElem "Element"
+ newComment "Comment"
+ inserted "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docAlt := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ newComment := docAlt createComment:'Comment'.
+ "assertDOMException..."
+ self should:[
+ doc insert:newComment before: docElem.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException WRONG_DOCUMENT_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodeinsertbefore08
+ "
+
+
+
+ Using insertBefore on this Document node attempt to insert a Comment node created by
+ this Document before another Document's DocumentElement node and verify if a
+ NOT_FOUND_ERR is raised.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ docAlt "Document"
+ docElem "Element"
+ newComment "Comment"
+ inserted "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docAlt := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := docAlt documentElement.
+ newComment := doc createComment:'Comment'.
+ "assertDOMException..."
+ self should:[
+ doc insert:newComment before: docElem.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodeinsertbefore09
+ "
+ The method insertBefore inserts the node newChild before the existing child node refChild.
+ If refChild is null, insert newChild at the end of the list of children.
+ If newChild is a DocumentFragment object, all of its children are inserted, in the same
+ order, before refChild.
+
+ Using insertBefore on this Document node attempt to insert a new DocumentFragment node
+ before a Comment node and verify the contents of the Comment node that is a child
+ of the DocumentFragment.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ newComment "Comment"
+ insertComment "Comment"
+ comment "Comment"
+ inserted "DocumentFragment"
+ data "String"
+ appendedChild "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ newComment := doc createComment:'Comment'.
+ appendedChild := doc appendChild:newComment.
+ docFrag := doc createDocumentFragment.
+ insertComment := doc createComment:'insertComment'.
+ appendedChild := docFrag appendChild:insertComment.
+ doc insert:docFrag before: newComment.
+ comment := newComment previousSibling.
+ data := comment data.
+ self assert: ( data = 'insertComment' ).
+
+!
+
+test_nodeinsertbefore10
+ "
+ Using insertBefore on this Document node attempt to insert a new Element node before
+ another Element node and verify a DOMException with a
+ HIERARCHY_REQUEST_ERR, NOT_FOUND_ERR or NOT_SUPPORTED_ERR is raised.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=415
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ newElem "Element"
+ inserted "Node"
+ docElem "Element"
+ rootNS "String"
+ rootTagname "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootTagname := docElem tagName.
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:1.
+ newElem := doc createElement:rootTagname ns:rootNS.
+ "try"
+ [
+ doc insert:newElem before: elem.
+self assert:false. ] on: DOMException do: [:ex| ].
+ "end of try"
+
+!
+
+test_nodeinsertbefore11
+ "
+
+
+
+ Using insertBefore on a DocumentFragment node attempt to insert a child nodes before
+ other permissible nodes and verify the contents/name of each inserted node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ elem "Element"
+ pi "ProcessingInstruction"
+ comment "Comment"
+ txt "Text"
+ cdata "CDATASection"
+ eRef "EntityReference"
+ inserted "Node"
+ insertedVal "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docFrag := doc createDocumentFragment.
+ elem := doc createElement:'body' ns:'http://www.w3.org/1999/xhtml'.
+ pi := doc createProcessingInstruction:'PITarget' data:'PIData'.
+ comment := doc createComment:'Comment'.
+ txt := doc createTextNode:'Text'.
+ cdata := doc createCDATASection:'CDATA'.
+ eRef := doc createEntityReference:'alpha'.
+ appendedChild := docFrag appendChild:elem.
+ appendedChild := docFrag appendChild:pi.
+ appendedChild := docFrag appendChild:comment.
+ appendedChild := docFrag appendChild:txt.
+ appendedChild := docFrag appendChild:cdata.
+ appendedChild := docFrag appendChild:eRef.
+ docFrag insert:comment before: pi.
+ insertedVal := inserted data.
+ self assert: ( insertedVal = 'Comment' ).
+ docFrag insert:txt before: comment.
+ insertedVal := inserted data.
+ self assert: ( insertedVal = 'Text' ).
+ docFrag insert:cdata before: txt.
+ insertedVal := inserted data.
+ self assert: ( insertedVal = 'CDATA' ).
+ docFrag insert:eRef before: cdata.
+ insertedVal := inserted nodeName.
+ self assert: ( insertedVal = 'alpha' ).
+
+!
+
+test_nodeinsertbefore12
+ "
+ The method insertBefore inserts the node newChild before the existing child node refChild.
+ If refChild is null, insert newChild at the end of the list of children.
+
+ Using insertBefore on a DocumentFragment node attempt to insert a new DocumentFragment node
+ before this DocumentFragment's Element node and verify the last child is still the only child
+ appended to docFrag.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ docFragNew "DocumentFragment"
+ elem "Element"
+ inserted "Node"
+ appendedChild "Node"
+ last "Node"
+ name "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docFrag := doc createDocumentFragment.
+ docFragNew := doc createDocumentFragment.
+ elem := doc createElement:'dom3:elem' ns:'http://www.w3.org/DOM/Test'.
+ appendedChild := docFrag appendChild:elem.
+ docFrag insert:docFragNew before: elem.
+ last := docFrag lastChild.
+ name := last nodeName.
+ self assert: ( name = 'dom3:elem' ).
+
+!
+
+test_nodeinsertbefore13
+ "
+
+
+
+ Using insertBefore on a DocumentFragment node attempt to insert a new Element node
+ created by another Document, before this DocumentFragment's Element node and
+ verify if a WRONG_DOCUMENT_ERR is raised.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ docAlt "Document"
+ docFrag "DocumentFragment"
+ elemAlt "Element"
+ elem "Element"
+ appendedChild "Node"
+ inserted "Node"
+ docElem "Element"
+ rootNS "String"
+ rootTagname "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootTagname := docElem tagName.
+ docAlt := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docFrag := doc createDocumentFragment.
+ elem := doc createElement:rootTagname ns:rootNS.
+ elemAlt := docAlt createElement:rootTagname ns:rootNS.
+ appendedChild := docFrag appendChild:elem.
+ "assertDOMException..."
+ self should:[
+ docFrag insert:elemAlt before: elem.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException WRONG_DOCUMENT_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodeinsertbefore14
+ "
+ The method insertBefore inserts the node newChild before the existing child node refChild.
+ If refChild is null, insert newChild at the end of the list of children.
+ A NO_MODIFICATION_ALLOWED_ERR is raised if the node is read-only.
+
+ Using insertBefore on this Document node attempt to insert a new Attr node before
+ this DocumentType node and verfiy if a NO_MODIFICATION_ALLOWED_ERR is raised.
+ (This can also raise a HIERARCHY_REQUEST_ERR and NOT_FOUND_ERR)
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ newAttr "Attr"
+ inserted "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ newAttr := doc createAttribute:'dom3:attr' ns:'http://www.w3.org/DOM/Test'.
+ "assertDOMException..."
+ self should:[
+ docType insert:newAttr before: docType.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodeinsertbefore15
+ "
+ A NO_MODIFICATION_ALLOWED_ERR is raised if the node is read-only.
+
+ Using insertBefore on a new EntityReference node attempt to insert Element, Text,
+ Comment, ProcessingInstruction and CDATASection nodes before an element child
+ and verify if a NO_MODIFICATION_ALLOWED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ entRef "EntityReference"
+ elemChild "Node"
+ txt "Text"
+ elem "Element"
+ comment "Comment"
+ pi "ProcessingInstruction"
+ cdata "CDATASection"
+ inserted "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ entRef := doc createEntityReference:'delta'.
+ elemChild := entRef firstChild.
+ cdata := doc createCDATASection:'CDATASection'.
+ "assertDOMException..."
+ self should:[
+ entRef insert:cdata before: elemChild.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+ pi := doc createProcessingInstruction:'target' data:'data'.
+ "assertDOMException..."
+ self should:[
+ entRef insert:pi before: elemChild.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+ comment := doc createComment:'Comment'.
+ "assertDOMException..."
+ self should:[
+ entRef insert:comment before: elemChild.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+ txt := doc createTextNode:'Text'.
+ "assertDOMException..."
+ self should:[
+ entRef insert:txt before: elemChild.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+ elem := doc createElement:'body' ns:'http://www.w3.org/1999/xhtml'.
+ "assertDOMException..."
+ self should:[
+ entRef insert:elem before: elemChild.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodeinsertbefore16
+ "
+ Using insertBefore on an Element node attempt to insert a new Element, node before its
+ first element child and verify the name of the new first child node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ element "Element"
+ newElem "Element"
+ refElem "Element"
+ firstChild "Node"
+ insertedElem "Element"
+ childList "NodeList"
+ nodeName "String"
+ inserted "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'p'.
+ element := childList item:0.
+ firstChild := element firstChild.
+ refElem := firstChild nextSibling.
+ newElem := doc createElement:'xhtml:br' ns:'http://www.w3.org/1999/xhtml'.
+ element insert:newElem before: refElem.
+ childList := doc getElementsByTagName: 'p'.
+ element := childList item:0.
+ firstChild := element firstChild.
+ insertedElem := firstChild nextSibling.
+ nodeName := insertedElem nodeName.
+ self assert: ( nodeName = 'xhtml:br' ).
+
+!
+
+test_nodeinsertbefore17
+ "
+ The method insertBefore inserts the node newChild before the existing child node refChild.
+ If refChild is null, insert newChild at the end of the list of children.
+
+ Using insertBefore on an Element node attempt to insert a text node before its
+ first element child and verify the name of the new first child node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ element "Element"
+ newText "Text"
+ refNode "Node"
+ firstChild "Node"
+ insertedText "Text"
+ childList "NodeList"
+ nodeName "String"
+ inserted "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ "implementationAttribute not supported: expandEntityReferences"
+ "implementationAttribute not supported: coalescing"
+ ^self. "ignoringElementContentWhitespace supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'p' ns: '*'.
+ element := childList item:1.
+ refNode := element firstChild.
+ newText := doc createTextNode:'newText'.
+ element insert:newText before: refNode.
+ insertedText := element firstChild.
+ nodeName := insertedText nodeName.
+ self assert: ( nodeName = '#text' ).
+
+!
+
+test_nodeinsertbefore18
+ "
+ The method insertBefore inserts the node newChild before the existing child node refChild.
+ If refChild is null, insert newChild at the end of the list of children.
+
+ Using insertBefore on an Element node attempt to insert new Comment/PI and CDATA nodes
+ before each other and verify the names of the newly inserted nodes.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ element "Element"
+ newElem "Element"
+ newComment "Comment"
+ newPI "ProcessingInstruction"
+ newCDATA "CDATASection"
+ insertedNode "Comment"
+ data "String"
+ target "String"
+ appendedChild "Node"
+ inserted "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ "implementationAttribute not supported: expandEntityReferences"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ element := doc createElement:'element'.
+ newElem := doc createElement:'dom3:elem' ns:'http://www.w3.org/DOM'.
+ newComment := doc createComment:'Comment'.
+ newCDATA := doc createCDATASection:'CDATASection'.
+ newPI := doc createProcessingInstruction:'target' data:'data'.
+ appendedChild := element appendChild:newElem.
+ appendedChild := element appendChild:newComment.
+ appendedChild := element appendChild:newPI.
+ appendedChild := element appendChild:newCDATA.
+ element insert:newComment before: newElem.
+ insertedNode := element firstChild.
+ data := insertedNode data.
+ self assert: ( data = 'Comment' ).
+
+!
+
+test_nodeinsertbefore19
+ "
+ Using insertBefore on an Element node attempt to insert an EntityReference node, before
+ another new EntityReference node and verify the name of the new first child node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ refNode "Node"
+ newNode "EntityReference"
+ inserted "EntityReference"
+ childList "NodeList"
+ nodeName "String"
+ element "Element"
+ |
+ "implementationAttribute not supported: expandEntityReferences"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'var'.
+ element := childList item:2.
+ refNode := element firstChild.
+ newNode := doc createEntityReference:'alpha'.
+ element insert:newNode before: refNode.
+ nodeName := inserted nodeName.
+ self assert: ( nodeName = 'alpha' ).
+
+!
+
+test_nodeinsertbefore20
+ "
+ Using insertBefore on an Element node attempt to insert a new Attr node, before
+ an EntityReference child and verify if a HIERARCHY_REQUEST_ERR is raised.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ element "Element"
+ refNode "Node"
+ newNode "Attr"
+ childList "NodeList"
+ inserted "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'var'.
+ element := childList item:2.
+ refNode := element firstChild.
+ newNode := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ "assertDOMException..."
+ self should:[
+ element insert:newNode before: refNode.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException HIERARCHY_REQUEST_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodeinsertbefore21
+ "
+ Using insertBefore on an Element node attempt to insert the parent Element node, before
+ an EntityReference or Text child and verify if a HIERARCHY_REQUEST_ERR is raised.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ element "Element"
+ refNode "Node"
+ newNode "Element"
+ childList "NodeList"
+ inserted "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'var'.
+ element := childList item:2.
+ refNode := element firstChild.
+ newNode := element parentNode.
+ "assertDOMException..."
+ self should:[
+ element insert:newNode before: refNode.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException HIERARCHY_REQUEST_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodeinsertbefore22
+ "
+ Using insertBefore on an Element node attempt to insert the ancestor of an Element node
+ before its child and verify if a HIERARCHY_REQUEST_ERR is raised.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ element "Element"
+ refNode "Element"
+ ancestor "Element"
+ childList "NodeList"
+ appendedChild "Node"
+ inserted "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ element := doc createElement:'xhtml:body' ns:'http://www.w3.org/1999/xhtml'.
+ refNode := doc createElement:'xhtml:a' ns:'http://www.w3.org/1999/xhtml'.
+ ancestor := doc createElement:'xhtml:p' ns:'http://www.w3.org/1999/xhtml'.
+ appendedChild := element appendChild:refNode.
+ appendedChild := ancestor appendChild:element.
+ "assertDOMException..."
+ self should:[
+ element insert:ancestor before: refNode.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException HIERARCHY_REQUEST_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodeinsertbefore23
+ "
+ Using insertBefore on an Element node attempt to insert a Text node created by a different
+ Document before an Element child and verify if a WRONG_DOCUMENT_ERR is raised.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ doc2 "Document"
+ element "Element"
+ refNode "Element"
+ newNode "Text"
+ childList "NodeList"
+ appendedChild "Node"
+ inserted "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ doc2 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ element := doc createElement:'xhtml:body' ns:'http://www.w3.org/1999/xhtml'.
+ refNode := doc createElement:'xhtml:p' ns:'http://www.w3.org/1999/xhtml'.
+ newNode := doc2 createTextNode:'TextNode'.
+ appendedChild := element appendChild:refNode.
+ "assertDOMException..."
+ self should:[
+ element insert:newNode before: refNode.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException WRONG_DOCUMENT_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodeinsertbefore24
+ "
+ Using insertBefore on an Element node attempt to insert a Comment node before
+ a CDATASection node that is not a child and verify if a NOT_FOUND_ERR is raised.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ element "Element"
+ refNode "CDATASection"
+ newNode "Comment"
+ childList "NodeList"
+ inserted "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ element := doc createElement:'xhtml:p' ns:'http://www.w3.org/1999/xhtml'.
+ refNode := doc createCDATASection:'CDATASection'.
+ newNode := doc createComment:'Comment'.
+ "assertDOMException..."
+ self should:[
+ element insert:newNode before: refNode.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodeinsertbefore25
+ "
+ Using insertBefore on a child Element of an EntityReference node attempt to insert
+ a new Element node, before a Text node child of an Entity Node's replacement
+ text and verify if a NO_MODIFICATION_ALLOWED_ERR is raised.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-952280727
+ "
+ |
+ doc "Document"
+ element "Element"
+ eRef "EntityReference"
+ span "Element"
+ spanText "Text"
+ newNode "Element"
+ childList "NodeList"
+ inserted "Node"
+ |
+ "implementationAttribute not supported: expandEntityReferences"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'var'.
+ element := childList item:2.
+ eRef := element firstChild.
+ span := eRef firstChild.
+ self assert: span notNil.
+ spanText := span firstChild.
+ self assert: spanText notNil.
+ newNode := doc createElement:'span' ns:'http://www.w3.org/1999/xhtml'.
+ "assertDOMException..."
+ self should:[
+ span insert:newNode before: spanText.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodeisdefaultnamespace01
+ "
+ Using isDefaultNamespace on this Document node with the
+ namespace of the document element check if the value returned is true.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isDefaultNamespace
+ "
+ |
+ doc "Document"
+ isDefault "Boolean"
+ docElem "Element"
+ docElemNS "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ docElemNS := docElem namespaceURI.
+ isDefault := doc isDefaultNamespace: docElemNS.
+ self assert: isDefault.
+
+!
+
+test_nodeisdefaultnamespace02
+ "
+ Using isDefaultNamespace on on a new Document node with the value of the namespaceURI
+ parameter equal to the namespaceURI of the newly created Document and check if the
+ value returned is false.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isDefaultNamespace
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ isDefault "Boolean"
+ nullDocType "DocumentType"
+ nullNSURI "String"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullDocType := nil.
+ nullNSURI := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem localName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ isDefault := newDoc isDefaultNamespace: rootNS.
+ self assert: isDefault.
+ isDefault := newDoc isDefaultNamespace: nullNSURI.
+ self deny: isDefault.
+
+!
+
+test_nodeisdefaultnamespace03
+ "
+
+
+
+ Using isDefaultNamespace on this DocumentType node with the value of the namespaceURI parameter
+ as null check if the value returned is false.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isDefaultNamespace
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ isDefault "Boolean"
+ nullNSURI "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullNSURI := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ isDefault := docType isDefaultNamespace: nullNSURI.
+ self deny: isDefault.
+
+!
+
+test_nodeisdefaultnamespace04
+ "
+
+
+
+ Using isDefaultNamespace on a Notation and Entity node with the value of the namespaceURI parameter
+ as null check if the value returned is false.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isDefaultNamespace
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entity "Entity"
+ notation "Notation"
+ entitiesMap "NamedNodeMap"
+ notationsMap "NamedNodeMap"
+ isDefault "Boolean"
+ nullNSURI "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullNSURI := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ notationsMap := docType notations.
+ entity := entitiesMap getNamedItem:'alpha'.
+ notation := notationsMap getNamedItem:'notation1'.
+ isDefault := entity isDefaultNamespace.
+ self deny: isDefault.
+ isDefault := notation isDefaultNamespace.
+ self deny: isDefault.
+
+!
+
+test_nodeisdefaultnamespace05
+ "
+ Using isDefaultNamespace on a DocumentElement of a new Document node with the value of the
+ namespaceURI parameter equal to the namespaceURI of the newly created Document and check if the
+ value returned is false.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isDefaultNamespace
+ "
+ |
+ doc "Document"
+ elem "Element"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ isDefault "Boolean"
+ nullDocType "DocumentType"
+ nullNSURI "String"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullDocType := nil.
+ nullNSURI := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem localName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ elem := newDoc documentElement.
+ isDefault := elem isDefaultNamespace: rootNS.
+ self assert: isDefault.
+ isDefault := elem isDefaultNamespace: nullNSURI.
+ self deny: isDefault.
+
+!
+
+test_nodeisdefaultnamespace06
+ "
+ Using isDefaultNamespace on an Element node with no prefix, which has a namespace
+ attribute declaration with and without a namespace prefix and check if isDefaultNamespace
+ returns true with the namespaceURI that does not have a prefix as its parameter.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isDefaultNamespace
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ isDefault "Boolean"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ isDefault := elem isDefaultNamespace: 'http://www.w3.org/1999/xhtml'.
+ self assert: isDefault.
+ isDefault := elem isDefaultNamespace: 'http://www.usa.com'.
+ self deny: isDefault.
+
+!
+
+test_nodeisdefaultnamespace07
+ "
+ Using isDefaultNamespace on the child of an Element node with no prefix, which has a
+ namespace attribute declaration with and without a namespace prefix and check if isDefaultNamespace
+ returns true with the namespaceURI that does not have a prefix as its parameter.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isDefaultNamespace
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ isDefault "Boolean"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:0.
+ isDefault := elem isDefaultNamespace: 'http://www.w3.org/1999/xhtml'.
+ self assert: isDefault.
+ isDefault := elem isDefaultNamespace: 'http://www.usa.com'.
+ self deny: isDefault.
+
+!
+
+test_nodeisdefaultnamespace08
+ "
+
+
+
+ Using isDefaultNamespace on an Element node with a prefix, which has a namespace
+ attribute declaration with a namespace prefix and check if isDefaultNamespace
+ returns false with this namespaceURI as its parameter.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isDefaultNamespace
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ isDefault "Boolean"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ elem := elemList item:3.
+ isDefault := elem isDefaultNamespace: 'http://www.altavista.com'.
+ self deny: isDefault.
+
+!
+
+test_nodeisdefaultnamespace09
+ "
+ Using isDefaultNamespace on a new Child of a new Element node with a namespace URI
+ and prefix and using the parents namespace URI as an argument, verify if the
+ value returned is false.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isDefaultNamespace
+ "
+ |
+ doc "Document"
+ parent "Element"
+ child "Element"
+ isDefault "Boolean"
+ appendedChild "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parent := doc createElement:'xhtml:body' ns:'http://www.w3.org/1999/xhtml'.
+ child := doc createElement:'xhtml:p'.
+ appendedChild := parent appendChild:child.
+ isDefault := parent isDefaultNamespace: 'http://www.w3.org/1999/xhtml'.
+ self deny: isDefault.
+ isDefault := child isDefaultNamespace: 'http://www.w3.org/1999/xhtml'.
+ self deny: isDefault.
+
+!
+
+test_nodeisdefaultnamespace10
+ "
+ Using isDefaultNamespace on a new Child of a new Element node with a namespace URI
+ and prefix and using the childs namespace URI as an argument, verify if the
+ value returned is true.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isDefaultNamespace
+ "
+ |
+ doc "Document"
+ parent "Element"
+ child "Element"
+ isDefault "Boolean"
+ appendedChild "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parent := doc createElement:'xhtml:body' ns:'http://www.w3.org/1999/xhtml'.
+ child := doc createElement:'p' ns:'http://www.w3.org/1999/xhtml'.
+ appendedChild := parent appendChild:child.
+ isDefault := child isDefaultNamespace: 'http://www.w3.org/1999/xhtml'.
+ self assert: isDefault.
+ isDefault := parent isDefaultNamespace: 'http://www.w3.org/1999/xhtml'.
+ self deny: isDefault.
+
+!
+
+test_nodeisdefaultnamespace11
+ "
+ Using isDefaultNamespace on an imported new Element node with a namespace URI and prefix
+ in a new Document and using the parent's namespace URI as an argument, verify if the
+ value returned is true.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isDefaultNamespace
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ elem "Element"
+ importedNode "Element"
+ isDefault "Boolean"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ elem := doc createElement:'p' ns:'http://www.w3.org/1999/xhtml'.
+ importedNode := newDoc importNode:elem deep:true.
+ isDefault := importedNode isDefaultNamespace: 'http://www.w3.org/1999/xhtml'.
+ self assert: isDefault.
+
+!
+
+test_nodeisdefaultnamespace13
+ "
+ Using isDefaultNamespace on a Element's new Text node, which has a namespace attribute
+ declaration without a namespace prefix in its parent Element node and verify if the
+ value returned is true.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isDefaultNamespace
+ "
+ |
+ doc "Document"
+ bodyElem "Element"
+ elem "Element"
+ txt "Text"
+ isDefault "Boolean"
+ appendedChild "Node"
+ bodyList "NodeList"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ bodyList := doc getElementsByTagName: 'body'.
+ bodyElem := bodyList item:0.
+ elem := doc createElement:'p' ns:'http://www.w3.org/1999/xhtml'.
+ txt := doc createTextNode:'Text'.
+ appendedChild := elem appendChild:txt.
+ appendedChild := bodyElem appendChild:elem.
+ isDefault := txt isDefaultNamespace: 'http://www.w3.org/1999/xhtml'.
+ self assert: isDefault.
+
+!
+
+test_nodeisdefaultnamespace14
+ "
+ Using isDefaultNamespace on a Element's new CDATASection node, which has a namespace attribute
+ declaration without a namespace prefix in its parent Element node and verify if the
+ value returned is true.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isDefaultNamespace
+ "
+ |
+ doc "Document"
+ elem "Element"
+ cdata "CDATASection"
+ isDefault "Boolean"
+ appendedChild "Node"
+ bodyList "NodeList"
+ bodyElem "Element"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ bodyList := doc getElementsByTagName: 'body'.
+ bodyElem := bodyList item:0.
+ elem := doc createElement:'p' ns:'http://www.w3.org/1999/xhtml'.
+ cdata := doc createCDATASection:'CDATASection'.
+ appendedChild := elem appendChild:cdata.
+ appendedChild := bodyElem appendChild:elem.
+ isDefault := cdata isDefaultNamespace: 'http://www.w3.org/1999/xhtml'.
+ self assert: isDefault.
+
+!
+
+test_nodeisdefaultnamespace15
+ "
+ Using isDefaultNamespace on a Element's new cloned Comment node, which has a namespace attribute
+ declaration without a namespace prefix in its parent Element node and verify if the
+ value returned is true.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isDefaultNamespace
+ "
+ |
+ doc "Document"
+ bodyElem "Element"
+ elem "Element"
+ comment "Comment"
+ clonedComment "Comment"
+ isDefault "Boolean"
+ appendedChild "Node"
+ bodyList "NodeList"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ bodyList := doc getElementsByTagName: 'body'.
+ bodyElem := bodyList item:0.
+ elem := doc createElement:'p' ns:'http://www.w3.org/1999/xhtml'.
+ comment := doc createComment:'Text'.
+ clonedComment := comment cloneNode:true.
+ appendedChild := elem appendChild:clonedComment.
+ appendedChild := bodyElem appendChild:elem.
+ isDefault := clonedComment isDefaultNamespace: 'http://www.w3.org/1999/xhtml'.
+ self assert: isDefault.
+
+!
+
+test_nodeisdefaultnamespace16
+ "
+ Using isDefaultNamespace on a new Attribute node with with a namespace URI
+ and no prefix and verify if the value returned is false since default namespaces
+ do not apply directly to attributes.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isDefaultNamespace
+ "
+ |
+ doc "Document"
+ attr "Attr"
+ isDefault "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ attr := doc createAttribute:'lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ isDefault := attr isDefaultNamespace: 'http://www.w3.org/1999/xhtml'.
+ self deny: isDefault.
+
+!
+
+test_nodeisequalnode01
+ "
+
+
+ Using isEqualNode check if 2 Document nodes created by parsing the same xml document
+ are equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc1 "Document"
+ doc2 "Document"
+ isEqual "Boolean"
+ |
+ doc1 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ doc2 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ isEqual := doc1 isEqualNode:doc2.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode02
+ "
+ Using isEqualNode check if 2 newly created Document nodes having the same namespaceURI
+ and qualifiedName are equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ doc1 "Document"
+ doc2 "Document"
+ isEqual "Boolean"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc1 := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ doc2 := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ isEqual := doc1 isEqualNode:doc2.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode03
+ "
+ Using isEqualNode check if 2 Document nodes created by parsing
+ documents only differing in declared encoding return false for isEqualNode on
+ the document and true on the document element.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=528
+ "
+ |
+ doc1 "Document"
+ doc2 "Document"
+ docElem1 "Element"
+ docElem2 "Element"
+ isEqual "Boolean"
+ |
+ doc1 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_utf8').
+ doc2 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_utf16').
+ isEqual := doc1 isEqualNode:doc2.
+ self assert: isEqual.
+ docElem1 := doc1 documentElement.
+ docElem2 := doc2 documentElement.
+ isEqual := docElem1 isEqualNode:docElem2.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode04
+ "
+ Create a new Element node in this Document. return its ownerDocument and check if the
+ the ownerDocument is equal to this Document using isEqualNode.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ ownerDoc "Document"
+ elem "Element"
+ isEqual "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ elem := doc createElement:'xhtml:p' ns:'http://www.w3.org/1999/xhtml'.
+ ownerDoc := elem ownerDocument.
+ isEqual := doc isEqualNode:ownerDoc.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode05
+ "
+ Using isEqualNode check if 2 Document nodes created by parsing different xml document
+ are equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc1 "Document"
+ doc2 "Document"
+ isEqual "Boolean"
+ |
+ doc1 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_standalone_yes').
+ doc2 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ isEqual := doc1 isEqualNode:doc2.
+ self deny: isEqual.
+
+!
+
+test_nodeisequalnode06
+ "
+
+
+ Using isEqualNode check if 2 Element nodes having the same nodeName and namespaceURI attribute
+ are equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ elem1 "Element"
+ elem2 "Element"
+ isEqual "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem1 := doc createElement:'xhtml:html' ns:'http://www.w3.org/1999/xhtml'.
+ elem2 := doc createElement:'xhtml:html' ns:'http://www.w3.org/1999/xhtml'.
+ isEqual := elem1 isEqualNode:elem2.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode07
+ "
+ Using isEqualNode check if 2 Element nodes having the same nodeName and namespaceURI attribute
+ created by two different Document objects obtained by parsing the same xml document are equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc1 "Document"
+ doc2 "Document"
+ elem1 "Element"
+ elem2 "Element"
+ isEqual "Boolean"
+ |
+ doc1 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ doc2 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem1 := doc1 createElement:'xhtml:html' ns:'http://www.w3.org/1999/xhtml'.
+ elem2 := doc2 createElement:'xhtml:html' ns:'http://www.w3.org/1999/xhtml'.
+ isEqual := elem1 isEqualNode:elem2.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode08
+ "
+
+
+ Retreive an element node of this Document having nodeName as employeeId and
+ namespaceURI as http://www.nist.gov. Create a new Element node having the same attributes
+ in this Document and using isEqualNode check if 2 Element nodes are equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ elem1 "Element"
+ elem2 "Element"
+ employeeList "NodeList"
+ text "Text"
+ isEqual "Boolean"
+ appendedChild "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ ^self. "ignoringElementContentWhitespace supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ employeeList := doc getElementsByTagName: 'em'.
+ elem1 := employeeList item:0.
+ elem2 := doc createElement:'em' ns:'http://www.w3.org/1999/xhtml'.
+ text := doc createTextNode:'EMP0001'.
+ appendedChild := elem2 appendChild:text.
+ isEqual := elem1 isEqualNode:elem2.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode09
+ "
+Get the first em node, construct an equivalent in a new document and see if isEqualNode
+returns true.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ elem1 "Element"
+ elem2 "Element"
+ employeeList "NodeList"
+ text "Text"
+ isEqual "Boolean"
+ nullDocType "DocumentType"
+ appendedChild "Node"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ ^self. "ignoringElementContentWhitespace supported"
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem localName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ employeeList := doc getElementsByTagName: 'em'.
+ elem1 := employeeList item:0.
+ elem2 := newDoc createElement:'em' ns:'http://www.w3.org/1999/xhtml'.
+ text := newDoc createTextNode:'EMP0001'.
+ appendedChild := elem2 appendChild:text.
+ isEqual := elem1 isEqualNode:elem2.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode10
+ "
+ Retreive 2 different em nodes of this Document Use isEqualNode
+ check if nodes are not equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ elem1 "Element"
+ elem2 "Element"
+ employeeList "NodeList"
+ isEqual "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ employeeList := doc getElementsByTagName: 'em'.
+ elem1 := employeeList item:0.
+ elem2 := employeeList item:1.
+ isEqual := elem1 isEqualNode:elem2.
+ self deny: isEqual.
+
+!
+
+test_nodeisequalnode11
+ "
+ Retreive the first element node whose localName is p . Import it into a new
+ Document with deep=false. Using isEqualNode check if the original and the imported
+ Element Node are not equal the child nodes are different.
+ Import with deep and the should still be unequal if
+ validating since the
+ new document does not provide the same default attributes.
+ Import it into another instance of the source document
+ and then the imported node and the source should be equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=529
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ employeeList "NodeList"
+ newDoc "Document"
+ dupDoc "Document"
+ elem1 "Element"
+ elem2 "Element"
+ elem3 "Element"
+ elem4 "Element"
+ isEqual "Boolean"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ employeeList := doc getElementsByTagName: 'p'.
+ elem1 := employeeList item:0.
+ elem2 := newDoc importNode:elem1 deep:false.
+ isEqual := elem1 isEqualNode:elem2.
+ self deny: isEqual.
+ elem3 := newDoc importNode:elem1 deep:true.
+ isEqual := elem1 isEqualNode:elem3.
+ "if"
+ false "no template for element implementationAttribute" ifTrue: [
+ ].
+ dupDoc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem4 := dupDoc importNode:elem1 deep:true.
+ isEqual := elem1 isEqualNode:elem4.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode12
+ "
+
+
+ Using isEqual verify if the 2 documentElement nodes of different documents created
+ by parsing the same xml document are equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ elem1 "Element"
+ elem2 "Element"
+ isEqual "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem1 := doc documentElement.
+ elem2 := doc documentElement.
+ isEqual := elem1 isEqualNode:elem2.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode13
+ "
+ Retreive the first element node whose localName is p . Import it into a new
+ Document with deep=false. Using isEqualNode check if the original and the imported
+ Element Node are not equal. Now import it once more with deep=true and using isEqual
+ verify if they are now equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ employeeList "NodeList"
+ elem1 "Element"
+ elem2 "Element"
+ elem3 "Element"
+ isEqual "Boolean"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ employeeList := doc getElementsByTagName: 'p'.
+ elem1 := employeeList item:0.
+ elem2 := elem1 cloneNode:false.
+ isEqual := elem1 isEqualNode:elem2.
+ self deny: isEqual.
+ elem3 := elem1 cloneNode:true.
+ isEqual := elem1 isEqualNode:elem3.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode14
+ "
+
+
+ Using isEqualNode check if 2 Attr nodes having the same nodeName and a null namespaceURI
+ attribute, one created using createAttribute and the other createAttributeNS, are not equal.
+ Note the localName for an Attr created with DOM Level 1 methods is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ attr1 "Attr"
+ attr2 "Attr"
+ isEqual "Boolean"
+ nullNSURI "String"
+ |
+ nullNSURI := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ attr1 := doc createAttribute:'root'.
+ attr2 := doc createAttribute:'root' ns:nullNSURI.
+ isEqual := attr1 isEqualNode:attr2.
+ self deny: isEqual.
+
+!
+
+test_nodeisequalnode15
+ "
+ Using isEqualNode check if 2 Attr nodes having the same nodeName and a null namespaceURI
+ attribute, one created using createAttributeNS and the other retreived from this document
+ are equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ attr1 "Attr"
+ attr2 "Attr"
+ addrElement "Element"
+ elementList "NodeList"
+ isEqual "Boolean"
+ nullNS "String"
+ |
+ nullNS := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elementList := doc getElementsByTagName: 'acronym'.
+ addrElement := elementList item:3.
+ attr1 := addrElement getAttributeNode: 'title' ns: nullNS.
+ "if"
+ false "no template for element implementationAttribute" ifTrue: [
+ ].
+ attr2 value:'Yes'.
+ isEqual := attr1 isEqualNode:attr2.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode16
+ "
+
+
+ Using isEqualNode check if a default attribute node and a cloned default attribute
+ node are equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ attr1 "Attr"
+ attr2 "Attr"
+ addrElement "Element"
+ elementList "NodeList"
+ isEqual "Boolean"
+ nullNSURI "String"
+ |
+ nullNSURI := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elementList := doc getElementsByTagName: 'p'.
+ addrElement := elementList item:3.
+ attr1 := addrElement getAttributeNode: 'dir' ns: nullNSURI.
+ attr2 := attr1 cloneNode:true.
+ isEqual := attr1 isEqualNode:attr2.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode17
+ "
+ Using isEqualNode check if a new Attr node created in this Document is equal to
+ the imported node returned when it is imported into a new Document.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ attr1 "Attr"
+ attr2 "Attr"
+ isEqual "Boolean"
+ nullDocType "DocumentType"
+ nullNSURI "String"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ nullNSURI := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ attr1 := doc createAttribute:'root' ns:nullNSURI.
+ attr2 := newDoc importNode:attr1 deep:true.
+ isEqual := attr1 isEqualNode:attr2.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode18
+ "
+ Using isEqualNode check if a new Attr node created in this Document is equal to
+ the attr node adopted by a new document.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ attr1 "Attr"
+ attr2 "Attr"
+ isEqual "Boolean"
+ nullDocType "DocumentType"
+ nullNSURI "String"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ nullNSURI := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ attr1 := doc createAttribute:'title' ns:nullNSURI.
+ attr2 := newDoc adoptNode: attr1.
+ "if"
+ ( attr2 notNil ) ifTrue: [
+ ].
+
+!
+
+test_nodeisequalnode19
+ "
+
+
+ Using isEqualNode check if 2 Attr nodes having the same nodeName but different namespaceURIs
+ are not equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ attr1 "Attr"
+ attr2 "Attr"
+ isEqual "Boolean"
+ nullNSURI "String"
+ |
+ nullNSURI := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ attr1 := doc createAttribute:'lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ attr2 := doc createAttribute:'lang' ns:nullNSURI.
+ isEqual := attr1 isEqualNode:attr2.
+ self deny: isEqual.
+
+!
+
+test_nodeisequalnode20
+ "
+ Using isEqualNode check if an Element and an Attr nodes having the same nodeName
+ and namsepaceURI are not equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ attr1 "Attr"
+ elem1 "Element"
+ isEqual "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem1 := doc createElement:'xhtml:html' ns:'http://www.w3.org/1999/xhtml'.
+ attr1 := doc createAttribute:'xhtml:html' ns:'http://www.w3.org/1999/xhtml'.
+ isEqual := attr1 isEqualNode:elem1.
+ self deny: isEqual.
+
+!
+
+test_nodeisequalnode21
+ "
+
+
+ Using isEqualNode check if 2 DocumentType nodes returned by parsing the same xml document
+ are equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc1 "Document"
+ doc2 "Document"
+ docType1 "DocumentType"
+ docType2 "DocumentType"
+ isEqual "Boolean"
+ |
+ doc1 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ doc2 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType1 := doc1 doctype.
+ docType2 := doc2 doctype.
+ isEqual := docType1 isEqualNode:docType2.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode22
+ "
+
+
+ Using isEqualNode check if 2 new DocumentType having null public and system ids
+ are equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc1 "Document"
+ doc2 "Document"
+ domImpl1 "DOMImplementation"
+ domImpl2 "DOMImplementation"
+ docType1 "DocumentType"
+ docType2 "DocumentType"
+ isEqual "Boolean"
+ nullPubId "String"
+ nullSysId "String"
+ oldDocType "DocumentType"
+ rootName "String"
+ |
+ nullPubId := nil.
+ nullSysId := nil.
+ doc1 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ oldDocType := doc1 doctype.
+ rootName := oldDocType name.
+ doc2 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domImpl1 := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ domImpl2 := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ docType1 := domImpl1 createDocumentType:rootName publicId:nullPubId systemId:nullSysId.
+ docType2 := domImpl2 createDocumentType:rootName publicId:nullPubId systemId:nullSysId.
+ isEqual := docType1 isEqualNode:docType2.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode25
+ "
+
+
+ Using isEqualNode check if 2 EntityNode having the same name of two DocumentType nodes
+ returned by parsing the same xml document are equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc1 "Document"
+ doc2 "Document"
+ docType1 "DocumentType"
+ docType2 "DocumentType"
+ entitiesMap1 "NamedNodeMap"
+ entitiesMap2 "NamedNodeMap"
+ alpha "Entity"
+ beta "Entity"
+ isEqual "Boolean"
+ |
+ doc1 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ doc2 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType1 := doc1 doctype.
+ docType2 := doc2 doctype.
+ entitiesMap1 := docType1 entities.
+ entitiesMap2 := docType2 entities.
+ alpha := entitiesMap1 getNamedItem:'delta'.
+ beta := entitiesMap2 getNamedItem:'delta'.
+ isEqual := alpha isEqualNode:beta.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode26
+ "
+
+
+ Using isEqualNode check if 2 NotationNode having the same name of two DocumnotationType nodes
+ returned by parsing the same xml documnotation are equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc1 "Document"
+ doc2 "Document"
+ docType1 "DocumentType"
+ docType2 "DocumentType"
+ notationsMap1 "NamedNodeMap"
+ notationsMap2 "NamedNodeMap"
+ notation1 "Notation"
+ notation2 "Notation"
+ isEqual "Boolean"
+ |
+ doc1 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ doc2 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType1 := doc1 doctype.
+ docType2 := doc2 doctype.
+ notationsMap1 := docType1 notations.
+ notationsMap2 := docType2 notations.
+ notation1 := notationsMap1 getNamedItem:'notation1'.
+ notation2 := notationsMap2 getNamedItem:'notation1'.
+ isEqual := notation1 isEqualNode:notation2.
+ self assert: isEqual.
+
+!
+
+test_nodeisequalnode27
+ "
+
+
+ Using isEqualNode check if 2 EntityNode having the same name of two DocumentType nodes
+ returned by parsing the same xml document are equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ notationsMap "NamedNodeMap"
+ alpha "Entity"
+ notation1 "Notation"
+ isEqual "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ notationsMap := docType notations.
+ alpha := entitiesMap getNamedItem:'alpha'.
+ notation1 := notationsMap getNamedItem:'notation1'.
+ isEqual := notation1 isEqualNode:alpha.
+ self deny: isEqual.
+
+!
+
+test_nodeisequalnode28
+ "
+
+
+ Using isEqualNode check if 2 new Text nodes having null text are equal and two others
+ having different data are not equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ text1 "Text"
+ text2 "Text"
+ text3 "Text"
+ isEqual "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ text1 := doc createTextNode:''.
+ text2 := doc createTextNode:''.
+ text3 := doc createTextNode:'#Text'.
+ isEqual := text1 isEqualNode:text2.
+ self assert: isEqual.
+ isEqual := text1 isEqualNode:text3.
+ self deny: isEqual.
+
+!
+
+test_nodeisequalnode29
+ "
+
+
+ Using isEqualNode check if 2 new Comment nodes having the same data are equal and two others
+ having different data are not equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ comment1 "Comment"
+ comment2 "Comment"
+ comment3 "Comment"
+ isEqual "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ comment1 := doc createComment:'comment'.
+ comment2 := doc createComment:'comment'.
+ comment3 := doc createComment:'#Comment'.
+ isEqual := comment1 isEqualNode:comment2.
+ self assert: isEqual.
+ isEqual := comment1 isEqualNode:comment3.
+ self deny: isEqual.
+
+!
+
+test_nodeisequalnode31
+ "
+
+
+ Using isEqualNode check if 2 new CDATASection nodes having the same data are equal and two others
+ having different data are not equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ cdata1 "CDATASection"
+ cdata2 "CDATASection"
+ cdata3 "CDATASection"
+ isEqual "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ cdata1 := doc createCDATASection:'cdata'.
+ cdata2 := doc createCDATASection:'cdata'.
+ cdata3 := doc createCDATASection:'#CDATASection'.
+ isEqual := cdata1 isEqualNode:cdata2.
+ self assert: isEqual.
+ isEqual := cdata1 isEqualNode:cdata3.
+ self deny: isEqual.
+
+!
+
+test_nodeisequalnode32
+ "
+
+
+ Using isEqualNode check if 2 new ProcessingInstruction nodes having the same data are equal and two others
+ having different data are not equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isEqualNode
+ "
+ |
+ doc "Document"
+ pi1 "ProcessingInstruction"
+ pi2 "ProcessingInstruction"
+ pi3 "ProcessingInstruction"
+ isEqual "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ pi1 := doc createProcessingInstruction:'Target1' data:'pi'.
+ pi2 := doc createProcessingInstruction:'Target1' data:'pi'.
+ pi3 := doc createProcessingInstruction:'Target1' data:'#ProcessingInstruction'.
+ isEqual := pi1 isEqualNode:pi2.
+ self assert: isEqual.
+ isEqual := pi1 isEqualNode:pi3.
+ self deny: isEqual.
+
+!
+
+test_nodeissamenode01
+ "
+
+
+ Using isSameNode to check if 2 Document nodes that are equal but do not reference the
+ same object are not the same
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isSameNode
+ "
+ |
+ doc1 "Document"
+ doc2 "Document"
+ isSame "Boolean"
+ |
+ doc1 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ doc2 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ isSame := doc1 isSameNode: doc2.
+ self deny: isSame.
+
+!
+
+test_nodeissamenode02
+ "
+
+
+ Using isSameNode check if 2 DocumentType nodes that reference the same object are
+ the same.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isSameNode
+ "
+ |
+ doc "Document"
+ docType1 "DocumentType"
+ docType2 "DocumentType"
+ isSame "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType1 := doc doctype.
+ docType2 := doc doctype.
+ isSame := docType1 isSameNode: docType2.
+ self assert: isSame.
+
+!
+
+test_nodeissamenode03
+ "
+ Using isSameNode check if 2 Element nodes that reference the same object are
+ the same.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isSameNode
+ "
+ |
+ doc "Document"
+ element1 "Element"
+ element2 "Element"
+ childList "NodeList"
+ isSame "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'p'.
+ element1 := childList item:0.
+ element2 := childList item:0.
+ isSame := element2 isSameNode: element1.
+ self assert: isSame.
+
+!
+
+test_nodeissamenode04
+ "
+ Using isSameNode check if 2 Element nodes that are equal but do not reference the
+ same object are not the same.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isSameNode
+ "
+ |
+ doc "Document"
+ element1 "Element"
+ element2 "Element"
+ isSame "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ element1 := doc createElement:'xhtml:br' ns:'http://www.w3.org/1999/xhtml'.
+ element2 := doc createElement:'xhtml:br' ns:'http://www.w3.org/1999/xhtml'.
+ isSame := element2 isSameNode: element1.
+ self deny: isSame.
+
+!
+
+test_nodeissamenode05
+ "
+
+
+ Using isSameNode check if 2 Document Element nodes that reference the same object are
+ the same.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isSameNode
+ "
+ |
+ doc "Document"
+ element1 "Element"
+ element2 "Element"
+ isSame "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ element1 := doc documentElement.
+ element2 := doc documentElement.
+ isSame := element2 isSameNode: element1.
+ self assert: isSame.
+
+!
+
+test_nodeissamenode06
+ "
+ Using isSameNode check if 2 Document Element nodes that reference the same object are
+ the same.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isSameNode
+ "
+ |
+ doc "Document"
+ element "Element"
+ element1 "Element"
+ attr1 "Attr"
+ attr2 "Attr"
+ childList "NodeList"
+ isSame "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'acronym'.
+ element := childList item:2.
+ element1 := childList item:2.
+ attr1 := element getAttributeNode:'class'.
+ attr2 := element1 getAttributeNode:'class'.
+ isSame := attr1 isSameNode: attr2.
+ self assert: isSame.
+
+!
+
+test_nodeissamenode07
+ "
+
+
+ Using isSameNode check if 2 Entity nodes that reference the same object are
+ the same.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isSameNode
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ entity1 "Entity"
+ entity2 "Entity"
+ isSame "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ entity1 := entitiesMap getNamedItem:'delta'.
+ entity2 := entitiesMap getNamedItem:'delta'.
+ isSame := entity1 isSameNode: entity2.
+ self assert: isSame.
+
+!
+
+test_nodeissamenode08
+ "
+
+
+ Using isSameNode check if 2 Notation nodes that reference the same object are
+ the same.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isSameNode
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ notation1 "Notation"
+ notation2 "Notation"
+ isSame "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType notations.
+ notation1 := entitiesMap getNamedItem:'notation1'.
+ notation2 := entitiesMap getNamedItem:'notation1'.
+ isSame := notation1 isSameNode: notation2.
+ self assert: isSame.
+
+!
+
+test_nodeissamenode09
+ "
+
+
+ Using isSameNode check if an Entity and its docType nodes are not the same.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isSameNode
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ entity "Entity"
+ isSame "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ entity := entitiesMap getNamedItem:'alpha'.
+ isSame := docType isSameNode: entity.
+ self deny: isSame.
+
+!
+
+test_nodeissamenode10
+ "
+ Using isSameNode check if an new Document and a new Element node are not the same.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-isSameNode
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ element "Element"
+ isSame "Boolean"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ element := newDoc createElement:rootName ns:rootNS.
+ isSame := newDoc isSameNode: element.
+ self deny: isSame.
+
+!
+
+test_nodelookupnamespaceuri01
+ "
+Return value from lookupNamespaceURI(null) on a Document node with no default namespace should be null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ namespaceURI "String"
+ nullPrefix "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullPrefix := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_nodefaultns').
+ namespaceURI := doc lookupNamespaceURI:nullPrefix.
+ self assert: namespaceURI isNil.
+
+!
+
+test_nodelookupnamespaceuri02
+ "
+ Using lookupNamespaceURI on a new Document node with a namespaceURI and prefix
+ and check if the value returned is the same namespaceURI.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ namespaceURI "String"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ qname "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ self assert:false description:'Method "plus" is not supported yet'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: qname doctype: nullDocType.
+ namespaceURI := newDoc lookupNamespaceURI:'dom3'.
+ self assert: ( namespaceURI = rootNS ).
+
+!
+
+test_nodelookupnamespaceuri03
+ "
+
+
+
+ Using lookupNamespaceURI on this DocumentType node check if the value returned is Null .
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ namespaceURI "String"
+ nullPrefix "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullPrefix := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ namespaceURI := docType lookupNamespaceURI:nullPrefix.
+ self assert: namespaceURI isNil.
+
+!
+
+test_nodelookupnamespaceuri04
+ "
+
+
+
+ Using lookupNamespaceURI on an Entity and Notation node and check if the value returned is Null .
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entity "Entity"
+ notation "Notation"
+ entitiesMap "NamedNodeMap"
+ notationsMap "NamedNodeMap"
+ namespaceURI "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ notationsMap := docType notations.
+ entity := entitiesMap getNamedItem:'alpha'.
+ notation := notationsMap getNamedItem:'notation1'.
+ namespaceURI := entity lookupNamespaceURI:''.
+ self assert: namespaceURI isNil.
+
+!
+
+test_nodelookupnamespaceuri05
+ "
+ Using lookupNamespaceURI on the DocumentElement node of a new document with a
+ namespaceURI and prefix and check if the namespaceURI value returned is valid.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ elem "Element"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ namespaceURI "String"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ qname "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ self assert:false description:'Method "plus" is not supported yet'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: qname doctype: nullDocType.
+ elem := newDoc documentElement.
+ namespaceURI := elem lookupNamespaceURI:'dom3'.
+ self assert: ( namespaceURI = rootNS ).
+
+!
+
+test_nodelookupnamespaceuri06
+ "
+ Invoke lookupNamespaceURI on an Element node with no prefix, which has a namespace
+ attribute declaration with a namespace prefix and check if the value of the namespaceURI
+ returned by using its prefix as a parameter is valid.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ namespaceURI "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:2.
+ namespaceURI := elem lookupNamespaceURI:'dmstc'.
+ self assert: ( namespaceURI = 'http://www.netzero.com' ).
+
+!
+
+test_nodelookupnamespaceuri07
+ "
+ Invoke lookupNamespaceURI on an Element node with no prefix, which has a namespace
+ attribute declaration with a namespace prefix in its parent Element node and check if
+ the value of the namespaceURI returned by using its prefix as a parameter is valid.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ namespaceURI "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:2.
+ namespaceURI := elem lookupNamespaceURI:'dmstc'.
+ self assert: ( namespaceURI = 'http://www.netzero.com' ).
+
+!
+
+test_nodelookupnamespaceuri08
+ "
+ Invoke lookupNamespaceURI on an Element node with no prefix, which has 2 namespace
+ attribute declarations with and without namespace prefixes and check if the value of the prefix
+ returned by using a valid prefix and an empty prefix as a parameter is a valid
+ namespaceURI or null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ namespaceURI "String"
+ namespaceURIEmpty "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ namespaceURI := elem lookupNamespaceURI:'dmstc'.
+ self assert: ( namespaceURI = 'http://www.usa.com' ).
+ namespaceURIEmpty := elem lookupNamespaceURI:''.
+ self assert: namespaceURIEmpty isNil.
+
+!
+
+test_nodelookupnamespaceuri09
+ "
+ Invoke lookupNamespaceURI on an Element node with no prefix, whose parent has no prefix and
+ 2 namespace attribute declarations with and without namespace prefixes and check if the value of
+ the namespaceURI returned by using each prefix as a parameter is valid.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ namespaceURI "String"
+ namespaceURIEmpty "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ namespaceURI := elem lookupNamespaceURI:'dmstc'.
+ self assert: ( namespaceURI = 'http://www.usa.com' ).
+ namespaceURIEmpty := elem lookupNamespaceURI:''.
+ self assert: namespaceURIEmpty isNil.
+
+!
+
+test_nodelookupnamespaceuri10
+ "
+ Invoke lookupNamespaceURI on a new Child of a new Element node with a namespace URI
+ and prefix and using the parents prefix as an argument, verify if the namespaceURI
+ returned is a valid namespaceURI for the parent.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ parent "Element"
+ child "Element"
+ namespaceURI "String"
+ appendedChild "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parent := doc createElement:'xhtml:body' ns:'http://www.w3.org/1999/xhtml'.
+ child := doc createElement:'p'.
+ appendedChild := parent appendChild:child.
+ namespaceURI := child lookupNamespaceURI:'xhtml'.
+ self assert: ( namespaceURI = 'http://www.w3.org/1999/xhtml' ).
+
+!
+
+test_nodelookupnamespaceuri11
+ "
+ Invoke lookupNamespaceURI on an imported new Element node with a namespace URI and prefix
+ in a new Document and using the parents prefix as an argument, verify if the namespaceURI
+ returned is a valid namespaceURI of the parent.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ elem "Element"
+ importedNode "Element"
+ namespaceURI "String"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ elem := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ importedNode := newDoc importNode:elem deep:true.
+ namespaceURI := importedNode lookupNamespaceURI:'dom3'.
+ self assert: ( namespaceURI = 'http://www.w3.org/1999/xhtml' ).
+
+!
+
+test_nodelookupnamespaceuri13
+ "
+ Invoke lookupNamespaceURI on a Element's new Text node, which has a namespace attribute declaration
+ with a namespace prefix in its parent Element node and check if the value of the namespaceURI
+ returned by using its prefix as a parameter is valid.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ elem "Element"
+ txt "Text"
+ namespaceURI "String"
+ appendedChild "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ elem := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ txt := doc createTextNode:'Text'.
+ appendedChild := elem appendChild:txt.
+ appendedChild := docElem appendChild:elem.
+ namespaceURI := txt lookupNamespaceURI:'dom3'.
+ self assert: ( namespaceURI = 'http://www.w3.org/1999/xhtml' ).
+
+!
+
+test_nodelookupnamespaceuri14
+ "
+ Invoke lookupNamespaceURI on a Element's new Text node, which has a namespace attribute declaration
+ with a namespace prefix in its parent Element node and check if the value of the namespaceURI
+ returned by using its prefix as a parameter is valid.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ elem "Element"
+ cdata "CDATASection"
+ lookupNamespaceURI "String"
+ appendedChild "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ elem := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ cdata := doc createCDATASection:'Text'.
+ appendedChild := elem appendChild:cdata.
+ appendedChild := docElem appendChild:elem.
+ lookupNamespaceURI := cdata lookupNamespaceURI:'dom3'.
+ self assert: ( lookupNamespaceURI = 'http://www.w3.org/1999/xhtml' ).
+
+!
+
+test_nodelookupnamespaceuri15
+ "
+ Invoke lookupNamespaceURI on a Element's new Comment node, which has a namespace attribute declaration
+ with a namespace prefix in its parent Element node and check if the value of the namespaceURI
+ returned by using its prefix as a parameter is valid.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ elem "Element"
+ comment "Comment"
+ clonedComment "Comment"
+ namespaceURI "String"
+ appendedChild "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ elem := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ comment := doc createComment:'Text'.
+ clonedComment := comment cloneNode:true.
+ appendedChild := elem appendChild:clonedComment.
+ appendedChild := docElem appendChild:elem.
+ namespaceURI := clonedComment lookupNamespaceURI:'dom3'.
+ self assert: ( namespaceURI = 'http://www.w3.org/1999/xhtml' ).
+
+!
+
+test_nodelookupnamespaceuri16
+ "
+ Invoke lookupNamespaceURI on a new Attribute node with with a namespace URI
+ and prefix and verify if the namespaceURI returned is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ elem "Element"
+ attr "Attr"
+ attNode "Attr"
+ namespaceURI "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ attr := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ attNode := elem setAttributeNodeNS: attr.
+ namespaceURI := attr lookupNamespaceURI:'xml'.
+ self assert: namespaceURI isNil.
+
+!
+
+test_nodelookupnamespaceuri17
+ "
+ Invoke lookupNamespaceURI on the title attribute node of the acronym node with
+ a namespaceURI and a node prefix and check if the value of the namespaceURI returned by
+ using its prefix as a parameter is valid.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ namespaceURI "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:2.
+ attributesMap := elem attributes.
+ attr := attributesMap getNamedItem:'xsi:noNamespaceSchemaLocation'.
+ namespaceURI := attr lookupNamespaceURI:'dmstc'.
+ self assert: ( namespaceURI = 'http://www.netzero.com' ).
+
+!
+
+test_nodelookupnamespaceuri18
+ "
+ Invoke lookupNamespaceURI on the default attribute node of the p node with
+ a namespaceURI and a node prefix and check if the value of the namespaceURI returned by
+ using its prefix as a parameter is valid.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ namespaceURI "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:3.
+ attributesMap := elem attributes.
+ attr := attributesMap getNamedItem:'dir'.
+ namespaceURI := attr lookupNamespaceURI:'nm'.
+ self assert: ( namespaceURI = 'http://www.altavista.com' ).
+
+!
+
+test_nodelookupnamespaceuri19
+ "
+ Invoke lookupNamespaceURI on the an attribute node without a namespace prefix of
+ an Element node that has a namespaceURI and prefix, and check if the value of the namespaceURI
+ returned by using the Elements prefix as a parameter is valid.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ namespaceURI "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:3.
+ attributesMap := elem attributes.
+ attr := attributesMap getNamedItem:'class'.
+ namespaceURI := attr lookupNamespaceURI:'xsi'.
+ self assert: ( namespaceURI = 'http://www.w3.org/2001/XMLSchema-instance' ).
+
+!
+
+test_nodelookupnamespaceuri20
+ "
+
+
+
+ Invoke lookupNamespaceURI on the an attribute node without a namespace prefix of
+ an Element node that has a namespaceURI and prefix, and check if the value of the namespaceURI
+ returned by using the Elements prefix as a parameter is valid.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespaceURI
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ namespaceURI "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:3.
+ attributesMap := elem attributes.
+ attr := attributesMap getNamedItem:'xmlns:nm'.
+ namespaceURI := attr lookupNamespaceURI:'nm'.
+ self assert: ( namespaceURI = 'http://www.altavista.com' ).
+
+!
+
+test_nodelookupprefix01
+ "
+
+
+
+ Using lookupPrefix on this Document node check if the value returned is Null .
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ prefix "String"
+ nullNSURI "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullNSURI := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ prefix := doc lookupPrefix.
+ self assert: prefix isNil.
+
+!
+
+test_nodelookupprefix02
+ "
+ Using lookupPrefix on a new Document node with a namespaceURI and prefix
+ and check if the value returned is the same prefix.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ prefix "String"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ qname "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ self assert:false description:'Method "plus" is not supported yet'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: qname doctype: nullDocType.
+ prefix := newDoc lookupPrefix.
+ self assert: ( prefix = 'dom3' ).
+
+!
+
+test_nodelookupprefix03
+ "
+
+
+
+ Using lookupPrefix on this DocumentType node check if the value returned is Null .
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ prefix "String"
+ nullNSURI "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullNSURI := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ prefix := docType lookupPrefix.
+ self assert: prefix isNil.
+
+!
+
+test_nodelookupprefix04
+ "
+
+
+
+ Using lookupPrefix on an Entity and Notation node and check if the value returned is Null .
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entity "Entity"
+ notation "Notation"
+ entitiesMap "NamedNodeMap"
+ notationsMap "NamedNodeMap"
+ prefix "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ notationsMap := docType notations.
+ entity := entitiesMap getNamedItem:'alpha'.
+ notation := notationsMap getNamedItem:'notation1'.
+ prefix := entity lookupPrefix.
+ self assert: prefix isNil.
+ prefix := notation lookupPrefix.
+ self assert: prefix isNil.
+
+!
+
+test_nodelookupprefix05
+ "
+ Using lookupPrefix on the DocumentElement node of a new document with a
+ namespaceURI and prefix and check if the prefix value returned is valid.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ elem "Element"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ prefix "String"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ qname "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ self assert:false description:'Method "plus" is not supported yet'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: qname doctype: nullDocType.
+ elem := newDoc documentElement.
+ prefix := elem lookupPrefix.
+ self assert: ( prefix = 'dom3' ).
+
+!
+
+test_nodelookupprefix06
+ "
+ Invoke lookupPrefix on an Element node with no prefix, which has a namespace
+ attribute declaration with a namespace prefix and check if the value of the prefix
+ returned by using its namespaceURI as a parameter is valid.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ prefix "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:2.
+ prefix := elem lookupPrefix.
+ self assert: ( prefix = 'dmstc' ).
+
+!
+
+test_nodelookupprefix07
+ "
+ Invoke lookupPrefix on an Element node with no prefix, which has a namespace
+ attribute declaration with a namespace prefix in its parent Element node and check if the value of the prefix
+ returned by using its namespaceURI as a parameter is valid.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ prefix "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:2.
+ prefix := elem lookupPrefix.
+ self assert: ( prefix = 'dmstc' ).
+
+!
+
+test_nodelookupprefix08
+ "
+ Invoke lookupPrefix on an Element node with no prefix, which has 2 namespace
+ attribute declarations with and without namespace prefixes and check if the value of the prefix
+ returned by using each namespaceURI as a parameter is valid.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ prefix "String"
+ prefixEmpty "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ prefix := elem lookupPrefix.
+ self assert: ( prefix = 'dmstc' ).
+ prefixEmpty := elem lookupPrefix.
+ self assert: prefixEmpty isNil.
+
+!
+
+test_nodelookupprefix09
+ "
+
+
+
+ Invoke lookupPrefix on an Element node with no prefix, whose parent has no prefix and
+ 2 namespace attribute declarations with and without namespace prefixes and check if the value of
+ the prefix returned by using each namespaceURI as a parameter is valid.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ prefix "String"
+ prefixEmpty "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ prefix := elem lookupPrefix.
+ self assert: ( prefix = 'dmstc' ).
+ prefixEmpty := elem lookupPrefix.
+ self assert: prefixEmpty isNil.
+
+!
+
+test_nodelookupprefix10
+ "
+ Invoke lookupPrefix on a new Child of a new Element node with a namespace URI
+ and prefix and using the parents namespace URI as an argument, verify if the prefix
+ returned is a valid prefix of the parent.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ parent "Element"
+ child "Element"
+ prefix "String"
+ appendedChild "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parent := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ child := doc createElement:'br'.
+ appendedChild := parent appendChild:child.
+ prefix := child lookupPrefix.
+ self assert: ( prefix = 'dom3' ).
+
+!
+
+test_nodelookupprefix11
+ "
+ Invoke lookupPrefix on an imported new Element node with a namespace URI
+ and prefix in a new Document and using the parents namespace URI as an argument, verify if the prefix
+ returned is a valid prefix of the parent.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ elem "Element"
+ importedNode "Element"
+ prefix "String"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ qname "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ self assert:false description:'Method "plus" is not supported yet'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: qname doctype: nullDocType.
+ elem := doc createElement:'dom3:br' ns:'http://www.w3.org/1999/xhtml'.
+ importedNode := newDoc importNode:elem deep:true.
+ prefix := importedNode lookupPrefix.
+ self assert: ( prefix = 'dom3' ).
+
+!
+
+test_nodelookupprefix12
+ "
+ Invoke lookupPrefix on an renamed new Element node with a namespace URI
+ and prefix in a new Document and using the parents namespace URI as an argument, verify if the prefix
+ returned is a valid prefix of the parent.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ elem "Element"
+ renamedNode "Element"
+ prefix "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ elem := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ renamedNode := doc renameNode:elem namespaceUri:'http://www.w3.org/1999/xhtml' qualifiedName:'ren:br'.
+ prefix := renamedNode lookupPrefix.
+ self assert: ( prefix = 'ren' ).
+
+!
+
+test_nodelookupprefix13
+ "
+ Invoke lookupPrefix on a Element's new Text node, which has a namespace attribute declaration
+ with a namespace prefix in its parent Element node and check if the value of the prefix
+ returned by using its namespaceURI as a parameter is valid.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ bodyElem "Element"
+ elem "Element"
+ txt "Text"
+ prefix "String"
+ appendedChild "Node"
+ bodyList "NodeList"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ bodyList := doc getElementsByTagName: 'body'.
+ bodyElem := bodyList item:0.
+ elem := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ txt := doc createTextNode:'Text'.
+ appendedChild := elem appendChild:txt.
+ appendedChild := bodyElem appendChild:elem.
+ prefix := txt lookupPrefix.
+ self assert: ( prefix = 'dom3' ).
+
+!
+
+test_nodelookupprefix14
+ "
+ Invoke lookupPrefix on a Element's new CDATA node, which has a namespace attribute declaration
+ with a namespace prefix in its parent Element node and check if the value of the prefix
+ returned by using its namespaceURI as a parameter is valid.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ bodyElem "Element"
+ elem "Element"
+ cdata "CDATASection"
+ prefix "String"
+ appendedChild "Node"
+ bodyList "NodeList"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ bodyList := doc getElementsByTagName: 'body'.
+ bodyElem := bodyList item:0.
+ elem := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ cdata := doc createCDATASection:'Text'.
+ appendedChild := elem appendChild:cdata.
+ appendedChild := bodyElem appendChild:elem.
+ prefix := cdata lookupPrefix.
+ self assert: ( prefix = 'dom3' ).
+
+!
+
+test_nodelookupprefix15
+ "
+ Invoke lookupPrefix on a Element's new Comment node, which has a namespace attribute declaration
+ with a namespace prefix in its parent Element node and check if the value of the prefix
+ returned by using its namespaceURI as a parameter is valid.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ bodyElem "Element"
+ elem "Element"
+ comment "Comment"
+ clonedComment "Comment"
+ prefix "String"
+ appendedChild "Node"
+ bodyList "NodeList"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ bodyList := doc getElementsByTagName: 'body'.
+ bodyElem := bodyList item:0.
+ elem := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ comment := doc createComment:'Text'.
+ clonedComment := comment cloneNode:true.
+ appendedChild := elem appendChild:clonedComment.
+ appendedChild := bodyElem appendChild:elem.
+ prefix := clonedComment lookupPrefix.
+ self assert: ( prefix = 'dom3' ).
+
+!
+
+test_nodelookupprefix16
+ "
+ Invoke lookupPrefix on a new Attribute node with with a namespace URI
+ and prefix and verify if the prefix returned is null.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ elem "Element"
+ attr "Attr"
+ prefix "String"
+ attNode "Attr"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ elem := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ attr := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ attNode := elem setAttributeNodeNS: attr.
+ prefix := attr lookupPrefix.
+ self assert: prefix isNil.
+
+!
+
+test_nodelookupprefix17
+ "
+ Invoke lookupPrefix on the title attribute node of the acronym node with
+ a namespaceURI and a node prefix and check if the value of the prefix returned by
+ using its namespaceURI as a parameter is valid.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ prefix "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:2.
+ attributesMap := elem attributes.
+ attr := attributesMap getNamedItem:'xsi:noNamespaceSchemaLocation'.
+ prefix := attr lookupPrefix.
+ self assert: ( prefix = 'dmstc' ).
+
+!
+
+test_nodelookupprefix18
+ "
+ Invoke lookupPrefix on the default attribute node of the p node with
+ a namespaceURI and a node prefix and check if the value of the prefix returned by
+ using its namespaceURI as a parameter is valid.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ prefix "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:3.
+ attributesMap := elem attributes.
+ attr := attributesMap getNamedItem:'dir'.
+ prefix := attr lookupPrefix.
+ self assert: prefix isNil.
+ prefix := attr lookupPrefix.
+ self assert: ( prefix = 'nm' ).
+
+!
+
+test_nodelookupprefix19
+ "
+ Invoke lookupPrefix on the an attribute node without a namespace prefix of
+ an Element node that has a namespaceURI and prefix, and check if the value of the prefix
+ returned by using the Elements namespaceURI as a parameter is valid.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ prefix "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo_nodefaultns').
+ elemList := doc getElementsByTagName: 'html:p'.
+ elem := elemList item:0.
+ attributesMap := elem attributes.
+ attr := attributesMap getNamedItem:'class'.
+ prefix := attr lookupPrefix.
+ self assert: ( prefix = 'html' ).
+
+!
+
+test_nodelookupprefix20
+ "
+
+
+
+ Invoke lookupPrefix on the an attribute node without a namespace prefix of
+ an Element node that has a namespaceURI and prefix, and check if the value of the prefix
+ returned by using the Elements namespaceURI as a parameter is valid.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-lookupNamespacePrefix
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemList "NodeList"
+ attributesMap "NamedNodeMap"
+ attr "Attr"
+ prefix "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:3.
+ attributesMap := elem attributes.
+ attr := attributesMap getNamedItem:'xmlns:nm'.
+ prefix := attr lookupPrefix.
+ self assert: ( prefix = 'nm' ).
+
+!
+
+test_noderemovechild01
+ "
+
+
+
+ Using removeChild on this Document node attempt to remove this Document node and
+ verify if a NOT_FOUND_ERR error is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ removed "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ "assertDOMException..."
+ self should:[
+ removed := doc removeChild:doc.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild02
+ "
+ Using removeChild on this Document node attempt to remove a new Document node and
+ vice versa and verify if a NOT_FOUND_ERR error is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ removed "Node"
+ nullDocType "DocumentType"
+ docElem "Element"
+ rootNS "String"
+ rootName "String"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ "assertDOMException..."
+ self should:[
+ removed := doc removeChild:newDoc.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+ "assertDOMException..."
+ self should:[
+ removed := newDoc removeChild:doc.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild03
+ "
+ Using removeChild on this DocumentElement node attempt to remove this Document node and
+ verify if the DocumentElement is null. Now try the reverse and a NOT_FOUND_ERR should be
+ thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ removedChild "Element"
+ removed "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ removed := doc removeChild:docElem.
+ removedChild := doc documentElement.
+ self assert: removedChild isNil.
+ "assertDOMException..."
+ self should:[
+ removed := docElem removeChild:doc.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild04
+ "
+
+
+
+ Using removeChild on this Document node attempt to remove DocumentType node and
+ verify if the DocumentType node is null. Now try the reverse and a NOT_FOUND_ERR should be
+ thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ removedDocType "DocumentType"
+ removed "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ removed := doc removeChild:docType.
+ removedDocType := doc doctype.
+ self assert: removedDocType isNil.
+ "assertDOMException..."
+ self should:[
+ removed := docType removeChild:doc.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild05
+ "
+ Using removeChild on this Document node attempt to remove a new DocumentType node and
+ verify if the DocumentType node is null. Attempting to remove the DocumentType
+ a second type should result in a NOT_FOUND_ERR.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=417
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ docType "DocumentType"
+ removedDocType "DocumentType"
+ nullPubId "String"
+ nullSysId "String"
+ appendedChild "Node"
+ removedChild "Node"
+ |
+ nullPubId := nil.
+ nullSysId := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docType := doc doctype.
+ "try"
+ [
+ removedChild := doc removeChild:docType.
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+ self assert: removedChild notNil.
+ removedDocType := doc doctype.
+ self assert: removedDocType isNil.
+ "assertDOMException..."
+ self should:[
+ removedChild := docType removeChild:doc.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild07
+ "
+Attempts to remove a notation from a Document node. Since notations are children of
+DocumentType, not Document the operation should fail with a NOT_FOUND_ERR. Attempting
+to remove Document from a Notation should also fail either with a NOT_FOUND_ERR
+or a NO_MODIFICATION_ALLOWED_ERR.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=418
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ notations "NamedNodeMap"
+ notation "Notation"
+ removedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ notations := docType notations.
+ notation := notations getNamedItem:'notation1'.
+ "assertDOMException..."
+ self should:[
+ removedChild := doc removeChild:notation.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+ "try"
+ [
+ removedChild := notation removeChild:doc.
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+
+!
+
+test_noderemovechild08
+ "
+
+
+
+ Using removeChild on this Document node attempt to remove a new Comment node and
+ verify the data of the removed comment node..
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ comment "Comment"
+ removedCmt "Comment"
+ data "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ comment := doc createComment:'Comment'.
+ appendedChild := doc appendChild:comment.
+ removedCmt := doc removeChild:comment.
+ data := removedCmt data.
+ self assert: ( data = 'Comment' ).
+
+!
+
+test_noderemovechild09
+ "
+
+
+
+ Using removeChild on this Document node attempt to remove a new ProcessingInstruction node and
+ verify the target of the removed ProcessingInstruction node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ pi "ProcessingInstruction"
+ removedPi "ProcessingInstruction"
+ target "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ pi := doc createProcessingInstruction:'PIT' data:'PID'.
+ appendedChild := doc appendChild:pi.
+ removedPi := doc removeChild:pi.
+ target := removedPi target.
+ self assert: ( target = 'PIT' ).
+
+!
+
+test_noderemovechild10
+ "
+ Using removeChild on a new DocumentFragment node attempt to remove a new Element node and
+ verify the name of the removed Element node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ elem "Element"
+ removedElem "Element"
+ elemName "String"
+ appendedChild "Node"
+ removedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docFrag := doc createDocumentFragment.
+ elem := doc createElement:'dom3:br' ns:'http://www.w3.org/1999/xhtml'.
+ appendedChild := docFrag appendChild:elem.
+ removedElem := docFrag removeChild:elem.
+ elemName := removedElem nodeName.
+ self assert: ( elemName = 'dom3:br' ).
+
+!
+
+test_noderemovechild11
+ "
+
+
+
+ Using removeChild on a new DocumentFragment node attempt to remove a new Text node and
+ verify the name of the removed Element node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ txt "Text"
+ removedTxt "Text"
+ appendedChild "Node"
+ removedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docFrag := doc createDocumentFragment.
+ txt := doc createTextNode:'TEXT'.
+ appendedChild := docFrag appendChild:txt.
+ removedChild := docFrag removeChild:txt.
+ removedTxt := docFrag firstChild.
+ self assert: removedTxt isNil.
+
+!
+
+test_noderemovechild12
+ "
+ The method removeChild removes the child node indicated by oldChild from the list
+ of children, and returns it.
+
+ Using removeChild on a new DocumentFragment node attempt to remove a new EntityReference node.
+ Also attempt to remove the document fragment node from the EntityReference. Verify that a
+ NO_MODIFICATION_ALLOWED_ERR (EntityReference node is read-only) or a NOT_FOUND_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ eRef "EntityReference"
+ removedERef "EntityReference"
+ appendedChild "Node"
+ removedChild "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docFrag := doc createDocumentFragment.
+ eRef := doc createEntityReference:'ent1'.
+ appendedChild := docFrag appendChild:eRef.
+ removedChild := docFrag removeChild:eRef.
+ removedERef := docFrag firstChild.
+ self assert: removedERef isNil.
+ "try"
+ [
+ removedChild := eRef removeChild:docFrag.
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+
+!
+
+test_noderemovechild13
+ "
+ Using removeChild on a new EntityReference node attempt to remove the first child
+ of this node and verify if a NO_MODIFICATION_ALLOWED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ txt "Text"
+ eRef "EntityReference"
+ removed "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ eRef := doc createEntityReference:'alpha'.
+ txt := eRef firstChild.
+ self assert: txt notNil.
+ "assertDOMException..."
+ self should:[
+ removed := eRef removeChild:txt.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild14
+ "
+ Using removeChild on a new EntityReference node attempt to remove its last ProcessingInstruction
+ child node and verify if a NO_MODIFICATION_ALLOWED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ removed "Node"
+ eRef "EntityReference"
+ pi "ProcessingInstruction"
+ entName "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ eRef := doc createEntityReference:'ent4'.
+ pi := eRef lastChild.
+ self assert: pi notNil.
+ "assertDOMException..."
+ self should:[
+ removed := eRef removeChild:pi.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild15
+ "
+ Using removeChild on a new EntityReference node attempt to remove an Element child
+ and verify if a NO_MODIFICATION_ALLOWED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ eRef "EntityReference"
+ elem "Element"
+ entName "String"
+ removed "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ eRef := doc createEntityReference:'ent4'.
+ elem := eRef firstChild.
+ self assert: elem notNil.
+ "assertDOMException..."
+ self should:[
+ removed := eRef removeChild:elem.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild16
+ "
+ Using removeChild on the first 'p' Element node attempt to remove its 'em'
+ Element child and verify the name of the returned node that was removed. Now attempt
+ the reverse and verify if a NOT_FOUND_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ parentList "NodeList"
+ childList "NodeList"
+ parent "Element"
+ child "Element"
+ removed "Element"
+ removedName "String"
+ removedNode "Node"
+ |
+ ^self. "ignoringElementContentWhitespace supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parentList := doc getElementsByTagName: 'em'.
+ child := parentList item:0.
+ parent := child parentNode.
+ removed := parent removeChild:child.
+ removedName := removed nodeName.
+ self assert: ( removedName = 'em' ).
+ "assertDOMException..."
+ self should:[
+ removedNode := child removeChild:parent.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild17
+ "
+ Using removeChild on the first 'p' Element node attempt to remove a Text
+ node child and verify the contents of the returned node that was removed. Now attempt
+ the reverse and verify if a NOT_FOUND_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ parentList "NodeList"
+ parent "Element"
+ child "Text"
+ removed "Text"
+ removedValue "String"
+ removedNode "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parentList := doc getElementsByTagName: 'em'.
+ parent := parentList item:0.
+ child := parent firstChild.
+ removed := parent removeChild:child.
+ removedValue := removed nodeValue.
+ self assert: ( removedValue = 'EMP0001' ).
+ "assertDOMException..."
+ self should:[
+ removedNode := child removeChild:parent.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild18
+ "
+
+
+
+ Using removeChild on the first 'p' Element node attempt to remove a CDATASection
+ node child and verify the contents of the returned node that was removed. Now attempt
+ the reverse and verify if a NOT_FOUND_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ parentList "NodeList"
+ parent "Element"
+ child "CDATASection"
+ removed "CDATASection"
+ removedValue "String"
+ removedNode "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parentList := doc getElementsByTagName: 'strong'.
+ parent := parentList item:1.
+ child := parent lastChild.
+ removed := parent removeChild:child.
+ removedValue := removed nodeValue.
+ self assert: ( removedValue = 'This is an adjacent CDATASection with a reference to a tab &tab;' ).
+ "assertDOMException..."
+ self should:[
+ removedNode := child removeChild:parent.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild19
+ "
+ Using removeChild on the first 'p' Element node attempt to remove a EntityReference
+ node child and verify the nodeName of the returned node that was removed. Attempt
+ to remove a non-child from an entity reference and expect either a NOT_FOUND_ERR or
+ a NO_MODIFICATION_ALLOWED_ERR. Renove a child from an entity reference and expect
+ a NO_MODIFICATION_ALLOWED_ERR.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ parentList "NodeList"
+ parent "Element"
+ child "EntityReference"
+ removed "EntityReference"
+ removedName "String"
+ removedNode "Node"
+ entRefChild "Node"
+ |
+ "implementationAttribute not supported: expandEntityReferences"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parentList := doc getElementsByTagName: 'acronym'.
+ parent := parentList item:1.
+ child := parent firstChild.
+ removed := parent removeChild:child.
+ removedName := removed nodeName.
+ self assert: ( removedName = 'beta' ).
+ "try"
+ [
+ removedNode := child removeChild:parent.
+self assert:false. ] on: DOMException do: [:ex| ].
+ "end of try"
+ entRefChild := child firstChild.
+ "if"
+ ( entRefChild notNil ) ifTrue: [
+ self assert:false description:'Method "NO_MODIFICATION_ALLOWED_ERR" is not supported yet'.
+ ].
+
+!
+
+test_noderemovechild20
+ "
+ Using removeChild on the first 'p' Element node attempt to remove a new
+ Element child and verify the name of the returned node that was removed. Now attempt
+ to do the same on a cloned child and verify if a NOT_FOUND_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ parentList "NodeList"
+ childList "NodeList"
+ parent "Element"
+ child "Element"
+ clonedChild "Element"
+ removed "Element"
+ removedName "String"
+ appendedChild "Node"
+ removedNode "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parentList := doc getElementsByTagName: 'p'.
+ parent := parentList item:0.
+ child := doc createElement:'dom3:br' ns:'http://www.w3.org/1999/xhtml'.
+ appendedChild := parent appendChild:child.
+ removed := parent removeChild:child.
+ removedName := removed nodeName.
+ self assert: ( removedName = 'dom3:br' ).
+ clonedChild := child cloneNode:true.
+ "assertDOMException..."
+ self should:[
+ removedNode := parent removeChild:clonedChild.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild21
+ "
+ Using removeChild on a new Element node attempt to remove a new Element child
+ and verify the name of the returned node that was removed. Now append the parent
+ to the documentElement and attempt to remove the child using removeChild on the
+ documentElement and verify if a NOT_FOUND_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ parent "Element"
+ child "Element"
+ removed "Element"
+ removedName "String"
+ removedNode "Node"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ parent := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ child := doc createElement:'dom3:br' ns:'http://www.w3.org/1999/xhtml'.
+ appendedChild := parent appendChild:child.
+ appendedChild := docElem appendChild:parent.
+ removed := parent removeChild:child.
+ removedName := removed nodeName.
+ self assert: ( removedName = 'dom3:br' ).
+ "assertDOMException..."
+ self should:[
+ removedNode := docElem removeChild:child.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild22
+ "
+ Using removeChild on a new Element node attempt to remove a new Comment child
+ and verify the name of the rturned node that was removed. Now to remove the child
+ using removeChild on the parent and verify if a NOT_FOUND_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ parent "Element"
+ child "Comment"
+ removed "Comment"
+ removedName "String"
+ removedNode "Node"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parent := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ child := doc createComment:'DATA'.
+ appendedChild := parent appendChild:child.
+ removed := parent removeChild:child.
+ removedName := removed nodeValue.
+ self assert: ( removedName = 'DATA' ).
+ "assertDOMException..."
+ self should:[
+ removedNode := parent removeChild:child.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild23
+ "
+ Using removeChild on a new Element node attempt to remove a new ProcessingInstruction child
+ and verify the name of the returned node that was removed. Now to remove the child
+ using removeChild on the parent and verify if a NOT_FOUND_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ parent "Element"
+ child "ProcessingInstruction"
+ removed "ProcessingInstruction"
+ removedName "String"
+ removedNode "Node"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parent := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ child := doc createProcessingInstruction:'TARGET' data:'DATA'.
+ appendedChild := parent appendChild:child.
+ removed := parent removeChild:child.
+ removedName := removed target.
+ self assert: ( removedName = 'TARGET' ).
+ "assertDOMException..."
+ self should:[
+ removedNode := parent removeChild:child.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild24
+ "
+ Using removeChild on an Entity node attempt to remove a Text child
+ and verify if a NO_MODIFICATION_ALLOWED_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ alphaEntity "Entity"
+ alphaText "Text"
+ removed "Text"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ alphaEntity := entitiesMap getNamedItem:'alpha'.
+ self assert: alphaEntity notNil.
+ alphaText := alphaEntity firstChild.
+ self assert: alphaText notNil.
+ "assertDOMException..."
+ self should:[
+ removed := alphaEntity removeChild:alphaText.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild25
+ "
+ Using removeChild on an Entity node attempt to remove an Element child
+ and verify if a NO_MODIFICATION_ALLOWED_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ ent4 "Entity"
+ span "Element"
+ removed "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ ent4 := entitiesMap getNamedItem:'ent4'.
+ self assert: ent4 notNil.
+ span := ent4 firstChild.
+ self assert: span notNil.
+ "assertDOMException..."
+ self should:[
+ removed := ent4 removeChild:span.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild26
+ "
+ Using removeChild on an Entity node attempt to remove a ProcessingInstruction child
+ and verify if a NO_MODIFICATION_ALLOWED_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ ent4 "Entity"
+ pi "ProcessingInstruction"
+ removed "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ ent4 := entitiesMap getNamedItem:'ent4'.
+ self assert: ent4 notNil.
+ pi := ent4 lastChild.
+ self assert: pi notNil.
+ "assertDOMException..."
+ self should:[
+ removed := ent4 removeChild:pi.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild27
+ "
+ The method removeChild removes the child node indicated by oldChild from the list
+ of children, and returns it.
+
+ Using removeChild on a Notation node attempt to remove an Entity node
+ and verify if a NO_MODIFICATION_ALLOWED_ERR or a NOT_FOUND_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ notationsMap "NamedNodeMap"
+ child "Entity"
+ parent "Notation"
+ removed "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ notationsMap := docType notations.
+ child := entitiesMap getNamedItem:'ent1'.
+ parent := notationsMap getNamedItem:'notation1'.
+ "try"
+ [
+ removed := parent removeChild:child.
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+
+!
+
+test_noderemovechild28
+ "
+ Using removeChild on an Attribute node attempt to remove its Text child node and
+ and verify the name of the returned node that was removed. Now attempt the reverse
+ and verify if a NOT_FOUND_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ parentList "NodeList"
+ attrsMap "NamedNodeMap"
+ parent "Attr"
+ child "Text"
+ elem "Element"
+ removed "Text"
+ removedName "String"
+ removedNode "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parentList := doc getElementsByTagName: 'acronym'.
+ elem := parentList item:0.
+ attrsMap := elem attributes.
+ parent := attrsMap getNamedItem:'xsi:noNamespaceSchemaLocation'.
+ child := parent firstChild.
+ removed := parent removeChild:child.
+ removedName := removed nodeValue.
+ self assert: ( removedName = 'Yes' ).
+ "assertDOMException..."
+ self should:[
+ removedNode := child removeChild:parent.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild29
+ "
+ Using removeChild on a namespace Attribute node attempt to remove its Text child node and
+ and verify the name of the returned node that was removed. Now attempt the reverse
+ and verify if a NOT_FOUND_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ parentList "NodeList"
+ attrsMap "NamedNodeMap"
+ parent "Attr"
+ child "Text"
+ elem "Element"
+ removed "Text"
+ removedName "String"
+ removedNode "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parentList := doc getElementsByTagName: 'p'.
+ elem := parentList item:0.
+ attrsMap := elem attributes.
+ parent := attrsMap getNamedItem:'xmlns:dmstc'.
+ child := parent firstChild.
+ removed := parent removeChild:child.
+ removedName := removed nodeValue.
+ self assert: ( removedName = 'http://www.usa.com' ).
+ "assertDOMException..."
+ self should:[
+ removedNode := child removeChild:parent.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild30
+ "
+
+
+
+ Using removeChild on a default Attribute node attempt to remove its Text child node and
+ and verify the name of the returned node that was removed. Now attempt the reverse
+ and verify if a NOT_FOUND_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ parentList "NodeList"
+ attrsMap "NamedNodeMap"
+ parent "Attr"
+ child "Text"
+ elem "Element"
+ removed "Text"
+ removedNode "Node"
+ removedName "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parentList := doc getElementsByTagName: 'p'.
+ elem := parentList item:3.
+ attrsMap := elem attributes.
+ parent := attrsMap getNamedItem:'dir'.
+ child := parent firstChild.
+ removed := parent removeChild:child.
+ removedName := removed nodeValue.
+ self assert: ( removedName = 'rtl' ).
+ "assertDOMException..."
+ self should:[
+ removedNode := child removeChild:parent.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_noderemovechild31
+ "
+ Using removeChild on a default Attribute node attempt to remove its EntityReference child node and
+ and verify the name of the returned node that was removed. Now attempt the reverse
+ and verify if a NO_MODIFICATION_ALLOWED_ERR or NOT_FOUND_ERR is thrown.
+ Then remove an child of the entity reference and expect a NO_MODIFICATION_ALLOWED_ERR.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-1734834066
+ "
+ |
+ doc "Document"
+ parentList "NodeList"
+ attrsMap "NamedNodeMap"
+ parent "Attr"
+ child "EntityReference"
+ entRef "EntityReference"
+ elem "Element"
+ removed "EntityReference"
+ removedNode "Node"
+ removedName "String"
+ appendedChild "Node"
+ entRefChild "Node"
+ |
+ "implementationAttribute not supported: expandEntityReferences"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parentList := doc getElementsByTagName: 'acronym'.
+ elem := parentList item:3.
+ attrsMap := elem attributes.
+ parent := attrsMap getNamedItem:'class'.
+ entRef := doc createEntityReference:'delta'.
+ appendedChild := parent appendChild:entRef.
+ child := parent lastChild.
+ removed := parent removeChild:child.
+ removedName := removed nodeName.
+ self assert: ( removedName = 'delta' ).
+ "try"
+ [
+ removedNode := child removeChild:parent.
+self assert:false. ] on: DOMException do: [:ex| ].
+ "end of try"
+ entRefChild := child firstChild.
+ "if"
+ ( entRefChild notNil ) ifTrue: [
+ self assert:false description:'Method "NO_MODIFICATION_ALLOWED_ERR" is not supported yet'.
+ ].
+
+!
+
+test_nodereplacechild01
+ "
+ The method replaceChild replaces the child node oldChild with newChild in the list of
+ children, and returns the oldChild node.
+
+
+ Using replaceChild on this Document node attempt to replace this Document node with itself
+ and verify if a HIERARCHY_REQUEST_ERR error or a NOT_FOUND_ERR (since oldChild
+ is not a child of this node) is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ replaced "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ "try"
+ [
+ doc replaceChild:doc with: doc.
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+
+!
+
+test_nodereplacechild02
+ "
+ The method replaceChild replaces the child node oldChild with newChild in the list of
+ children, and returns the oldChild node.
+
+ Using replaceChild on this Document node attempt to replace this DocumentType node with
+ its DocumentType (replacing node with itself -- implementation dependent)
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ replaced "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ doc replaceChild:docType with: docType.
+
+!
+
+test_nodereplacechild03
+ "
+ The method replaceChild replaces the child node oldChild with newChild in the list of
+ children, and returns the oldChild node.
+
+ Using replaceChild on this Document node attempt to replace this Document node with
+ a new DocumentNode and verify if a HIERARCHY_REQUEST_ERR, WRONG_DOCUMENT_ERR
+ or NOT_FOUND_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ domImpl "DOMImplementation"
+ nullDocType "DocumentType"
+ replaced "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: 'http://www.w3.org/DOM' qualifiedName: 'dom3:doc' doctype: nullDocType.
+ "try"
+ [
+ doc replaceChild:doc with: newDoc.
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+
+!
+
+test_nodereplacechild04
+ "
+ The method replaceChild replaces the child node oldChild with newChild in the list of
+ children, and returns the oldChild node.
+
+ Using replaceChild on this Document node attempt to replace this DocumentElement node with
+ this Document Node and verify if a HIERARCHY_REQUEST_ERR or a NOT_FOUND_ERR error is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ replaced "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ "try"
+ [
+ doc replaceChild:docElem with: doc.
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+
+!
+
+test_nodereplacechild06
+ "
+ Using replaceChild on this Document node attempt to replace this DocumentElement node
+ with one of its child elements and verify if the name of the replaced documentElement Node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ replaced "Element"
+ elem "Element"
+ childList "NodeList"
+ nodeName "String"
+ replacedNode "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ childList := doc getElementsByTagName: 'p'.
+ elem := childList item:0.
+ "try"
+ [
+ doc replaceChild:docElem with: elem.
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+ replaced := doc documentElement.
+ nodeName := replaced nodeName.
+ self assert: ( nodeName = 'p' ).
+
+!
+
+test_nodereplacechild07
+ "
+ Using replaceChild on this Document node attempt to replace this DocumentElement node
+ with a new element and verify if the name of the replaced documentElement Node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ replaced "Element"
+ elem "Element"
+ nodeName "String"
+ replacedNode "Node"
+ rootNS "String"
+ rootName "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ elem := doc createElement:rootName ns:rootNS.
+ "try"
+ [
+ doc replaceChild:docElem with: elem.
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+ replaced := doc documentElement.
+ nodeName := replaced nodeName.
+ self assert: ( nodeName = rootName ).
+
+!
+
+test_nodereplacechild08
+ "
+ Using replaceChild on this Document node attempt to replace this DocumentElement node
+ with a new element that was created in another document and verify if a
+ WRONG_DOCUMENT_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ doc2 "Document"
+ docElem "Element"
+ elem "Element"
+ nodeName "String"
+ replaced "Node"
+ rootNS "String"
+ rootName "String"
+ domImpl "DOMImplementation"
+ nullDocType "DocumentType"
+ |
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc2 := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: nullDocType.
+ elem := doc2 createElement:rootName ns:rootNS.
+ "try"
+ [
+ doc replaceChild:docElem with: elem.
+self assert:false. ] on: DOMException do: [:ex| ].
+ "end of try"
+
+!
+
+test_nodereplacechild10
+ "
+ The method replaceChild replaces the child node oldChild with newChild in the list of
+ children, and returns the oldChild node.
+
+ Using replaceChild on this Document node attempt to replace an Entity node with
+ a notation node of retieved from the DTD of another document and verify if a
+ NOT_FOUND_ERR or WRONG_DOCUMENT_ERR or HIERARCHY_REQUEST err is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ ent "Entity"
+ doc1 "Document"
+ docType1 "DocumentType"
+ notationsMap "NamedNodeMap"
+ notation "Notation"
+ replaced "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ ent := entitiesMap getNamedItem:'alpha'.
+ doc1 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType1 := doc1 doctype.
+ notationsMap := docType1 notations.
+ notation := notationsMap getNamedItem:'notation1'.
+ "try"
+ [
+ doc replaceChild:ent with: notation.
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+
+!
+
+test_nodereplacechild12
+ "
+ Using replaceChild on this Document node, attempt to replace a new ProcessingInstruction
+ node with new Comment node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=416
+ "
+ |
+ doc "Document"
+ pi "ProcessingInstruction"
+ replaced "Node"
+ comment "Comment"
+ lastChild "Node"
+ nodeName "String"
+ replacedNode "Node"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ comment := doc createComment:'dom3:doc'.
+ pi := doc createProcessingInstruction:'PITarget' data:'PIData'.
+ appendedChild := doc appendChild:comment.
+ appendedChild := doc appendChild:pi.
+ doc replaceChild:pi with: comment.
+ self assert: replacedNode notNil.
+ nodeName := replacedNode nodeName.
+ self assert: ( nodeName = 'PITarget' ).
+ lastChild := doc lastChild.
+ self assert: lastChild notNil.
+ nodeName := lastChild nodeName.
+ self assert: ( nodeName = '#comment' ).
+
+!
+
+test_nodereplacechild13
+ "
+ Using replaceChild on this Document node attempt to replace this DocumentType node with
+ a new DocumentType and verify the name of the replaced DocumentType node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ newDocType "DocumentType"
+ replaced "DocumentType"
+ domImpl "DOMImplementation"
+ nodeName "String"
+ nullPubId "String"
+ nullSysId "String"
+ docElem "Element"
+ docElemName "String"
+ docElemNS "String"
+ |
+ nullPubId := nil.
+ nullSysId := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ docElemName := docElem tagName.
+ docElemNS := docElem namespaceURI.
+ docType := doc doctype.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDocType := domImpl createDocumentType:docElemName publicId:nullPubId systemId:nullSysId.
+ "try"
+ [
+ doc replaceChild:docType with: newDocType.
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+ nodeName := replaced nodeName.
+ self assert: ( nodeName = docElemName ).
+
+!
+
+test_nodereplacechild14
+ "
+ The method replaceChild replaces the child node oldChild with newChild in the list of
+ children, and returns the oldChild node.
+
+ Using replaceChild on the documentElement of a newly created Document node, attempt to replace an
+ element child of this documentElement node with a child that was imported from another document.
+ Verify the nodeName of the replaced element node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ newDoc "Document"
+ docElem "Element"
+ elem "Element"
+ elem2 "Element"
+ imported "Node"
+ replaced "Element"
+ domImpl "DOMImplementation"
+ nodeName "String"
+ appendedChild "Node"
+ nullDocType "DocumentType"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem := doc createElement:'dom3:doc1elem' ns:'http://www.w3.org/DOM/Test'.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: 'http://www.w3.org/DOM/test' qualifiedName: 'dom3:doc' doctype: nullDocType.
+ elem2 := newDoc createElement:'dom3:doc2elem' ns:'http://www.w3.org/DOM/Test'.
+ imported := newDoc importNode:elem deep:true.
+ docElem := newDoc documentElement.
+ appendedChild := docElem appendChild:imported.
+ appendedChild := docElem appendChild:elem2.
+ docElem replaceChild:elem2 with: imported.
+ nodeName := replaced nodeName.
+ self assert: ( nodeName = 'dom3:doc2elem' ).
+
+!
+
+test_nodereplacechild15
+ "
+ Using replaceChild on a DocumentFragment node attempt to replace an Element node with
+ another Element and the replaced element.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ elem "Element"
+ elem2 "Element"
+ replaced "Element"
+ domImpl "DOMImplementation"
+ title "String"
+ appendedChild "Node"
+ docElem "Element"
+ rootName "String"
+ rootNS "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ elem := doc createElement:rootName ns:rootNS.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ docFrag := doc createDocumentFragment.
+ elem2 := doc createElement:rootName ns:rootNS.
+ elem2 setAttribute:'title' value:'new element'.
+ appendedChild := docFrag appendChild:elem2.
+ docFrag replaceChild:elem2 with: elem.
+ title := replaced getAttribute:'title'.
+ self assert: ( title = 'new element' ).
+
+!
+
+test_nodereplacechild16
+ "
+ Using replaceChild on a DocumentFragment node attempt to replace an Element node with
+ another Element and verify the name of the replaced Element node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ elem "Element"
+ txt "Text"
+ replaced "Element"
+ nodeName "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ docFrag := doc createDocumentFragment.
+ txt := doc createTextNode:'Comment'.
+ appendedChild := docFrag appendChild:txt.
+ appendedChild := docFrag appendChild:elem.
+ docFrag replaceChild:elem with: txt.
+ nodeName := replaced nodeName.
+ self assert: ( nodeName = 'dom3:p' ).
+
+!
+
+test_nodereplacechild17
+ "
+
+
+
+ Using replaceChild on a DocumentFragment node attempt to replace a Comment node with
+ a ProcessingInstruction and vice versa verify the data of the replaced nodes.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ pi "ProcessingInstruction"
+ cmt "Comment"
+ replacedCmt "Comment"
+ replacedPi "ProcessingInstruction"
+ data "String"
+ target "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docFrag := doc createDocumentFragment.
+ cmt := doc createComment:'Comment'.
+ pi := doc createProcessingInstruction:'target' data:'Comment'.
+ appendedChild := docFrag appendChild:pi.
+ appendedChild := docFrag appendChild:cmt.
+ docFrag replaceChild:cmt with: pi.
+ data := replacedCmt data.
+ self assert: ( data = 'Comment' ).
+ docFrag replaceChild:pi with: cmt.
+ target := replacedPi target.
+ self assert: ( target = 'target' ).
+
+!
+
+test_nodereplacechild18
+ "
+ Using replaceChild on a DocumentFragment node attempt to replace a CDATASection node with
+ a EntityReference and vice versa verify the data of the replaced nodes.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ entRef "EntityReference"
+ cdata "CDATASection"
+ replacedCData "CDATASection"
+ replacedEref "EntityReference"
+ cdataName "String"
+ erefName "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docFrag := doc createDocumentFragment.
+ cdata := doc createCDATASection:'CDATASection'.
+ entRef := doc createEntityReference:'alpha'.
+ appendedChild := docFrag appendChild:entRef.
+ appendedChild := docFrag appendChild:cdata.
+ docFrag replaceChild:cdata with: entRef.
+ cdataName := replacedCData nodeValue.
+ self assert: ( cdataName = 'CDATASection' ).
+ docFrag replaceChild:entRef with: cdata.
+ erefName := replacedEref nodeName.
+ self assert: ( erefName = 'alpha' ).
+
+!
+
+test_nodereplacechild19
+ "
+ Using replaceChild on a DocumentFragment node attempt to replace an Element node with
+ its EntityReference child verify the nodeName of the replaced node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ entRef "EntityReference"
+ elem "Element"
+ replaced "Element"
+ nodeName "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docFrag := doc createDocumentFragment.
+ elem := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ entRef := doc createEntityReference:'alpha'.
+ appendedChild := elem appendChild:entRef.
+ appendedChild := docFrag appendChild:elem.
+ docFrag replaceChild:elem with: entRef.
+ nodeName := replaced nodeName.
+ self assert: ( nodeName = 'dom3:p' ).
+
+!
+
+test_nodereplacechild20
+ "
+ Using replaceChild on a DocumentFragment node attempt to replace an Element node with
+ an Attr Node and verify if a HIERARCHY_REQUEST_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ attr "Attr"
+ elem "Element"
+ replaced "Element"
+ nodeName "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docFrag := doc createDocumentFragment.
+ elem := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ attr := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ appendedChild := docFrag appendChild:elem.
+ "assertDOMException..."
+ self should:[
+ docFrag replaceChild:elem with: attr.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException HIERARCHY_REQUEST_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodereplacechild21
+ "
+ The method replaceChild replaces the child node oldChild with newChild in the list of
+ children, and returns the oldChild node.
+
+ Using replaceChild on this DocumentType node attempt to replace an Entity node with
+ a notation node of retieved from the DTD of another document and verify if a
+ NO_MODIFICATION_ALLOWED_ERR is thrown since DocumentType node is read-only.
+ Also try replacing the docType with an entity node and see if the same exception gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ ent "Entity"
+ doc1 "Document"
+ docType1 "DocumentType"
+ notationsMap "NamedNodeMap"
+ notation "Notation"
+ replacedChild "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ ent := entitiesMap getNamedItem:'alpha'.
+ doc1 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType1 := doc1 doctype.
+ notationsMap := docType1 notations.
+ notation := notationsMap getNamedItem:'notation1'.
+ "assertDOMException..."
+ self should:[
+ docType replaceChild:ent with: notation.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+ "assertDOMException..."
+ self should:[
+ docType replaceChild:docType with: ent.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodereplacechild22
+ "
+ Using replaceChild on a new EntityReference node attempt to replace an EntityReference node with
+ its Element parent, with itself and vice versa verify if a NO_MODIFICATION_ALLOWED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ entRefMain "EntityReference"
+ entRef "EntityReference"
+ elem "Element"
+ appendedChild "Node"
+ replacedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ entRefMain := doc createEntityReference:'delta'.
+ entRef := doc createEntityReference:'beta'.
+ appendedChild := elem appendChild:entRef.
+ "assertDOMException..."
+ self should:[
+ entRefMain replaceChild:entRef with: elem.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+ "assertDOMException..."
+ self should:[
+ entRefMain replaceChild:elem with: entRef.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+ "assertDOMException..."
+ self should:[
+ entRefMain replaceChild:entRef with: entRefMain.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodereplacechild23
+ "
+ Using replaceChild on a new EntityReference node attempt to replace an Element, Text,
+ Comment, ProcessingInstruction and CDATASection nodes with each other and in each case
+ verify if a NO_MODIFICATION_ALLOWED_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ entRef "EntityReference"
+ txt "Text"
+ elem "Element"
+ comment "Comment"
+ pi "ProcessingInstruction"
+ cdata "CDATASection"
+ replaced "Node"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem := doc createElement:'dom3:p' ns:'http://www.w3.org/1999/xhtml'.
+ entRef := doc createEntityReference:'delta'.
+ txt := doc createTextNode:'Text'.
+ comment := doc createComment:'Comment'.
+ cdata := doc createCDATASection:'CDATASection'.
+ pi := doc createProcessingInstruction:'target' data:'data'.
+ appendedChild := elem appendChild:entRef.
+ appendedChild := elem appendChild:txt.
+ appendedChild := elem appendChild:comment.
+ appendedChild := elem appendChild:pi.
+ appendedChild := elem appendChild:cdata.
+ "assertDOMException..."
+ self should:[
+ entRef replaceChild:elem with: cdata.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+ "assertDOMException..."
+ self should:[
+ entRef replaceChild:cdata with: pi.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+ "assertDOMException..."
+ self should:[
+ entRef replaceChild:pi with: comment.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+ "assertDOMException..."
+ self should:[
+ entRef replaceChild:comment with: txt.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+ "assertDOMException..."
+ self should:[
+ entRef replaceChild:txt with: elem.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodereplacechild24
+ "
+ Using replaceChild on an EntityReference node attempt to replace an Element node with
+ an EntityReference node verify if a NO_MODIFICATION_ALLOWED_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ childList "NodeList"
+ entRef "EntityReference"
+ elem "Element"
+ replaced "Element"
+ nodeName "String"
+ |
+ "implementationAttribute not supported: expandEntityReferences"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'acronym'.
+ elem := childList item:1.
+ entRef := elem firstChild.
+ "assertDOMException..."
+ self should:[
+ entRef replaceChild:elem with: entRef.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodereplacechild25
+ "
+ Using replaceChild on an Element node attempt to replace an
+ EntityReference or Text child node
+ with an Entity node and with itself and verify if a HIERARCHY_REQUEST_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entities "NamedNodeMap"
+ entity "Entity"
+ childList "NodeList"
+ entRef "Node"
+ elem "Element"
+ replaced "Element"
+ nodeName "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entities := docType entities.
+ entity := entities getNamedItem:'alpha'.
+ childList := doc getElementsByTagName: 'acronym'.
+ elem := childList item:1.
+ entRef := elem firstChild.
+ "assertDOMException..."
+ self should:[
+ elem replaceChild:entRef with: entity.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException HIERARCHY_REQUEST_ERR).
+ "end of assertDOMException..."
+ "assertDOMException..."
+ self should:[
+ elem replaceChild:entRef with: elem.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException HIERARCHY_REQUEST_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodereplacechild26
+ "
+ Using replaceChild on an Element node attempt to replace a Text child node with an Element
+ node that is an ancestor of this Element node and verify if a HIERARCHY_REQUEST_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ childList "NodeList"
+ docElem "Element"
+ elem "Element"
+ firstChild "Node"
+ nodeName "String"
+ replaced "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ childList := doc getElementsByTagName: 'p'.
+ elem := childList item:0.
+ firstChild := elem firstChild.
+ "assertDOMException..."
+ self should:[
+ elem replaceChild:firstChild with: docElem.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException HIERARCHY_REQUEST_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodereplacechild27
+ "
+ The method replaceChild replaces the child node oldChild with newChild in the list of
+ children, and returns the oldChild node.
+
+ Using replaceChild on an Element node attempt to replace an Element node with another
+ Element from another document and verify if a WRONG_DOCUMENT_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ doc2 "Document"
+ childList "NodeList"
+ childList2 "NodeList"
+ elem2 "Element"
+ elem "Element"
+ firstChild "Node"
+ nodeName "String"
+ replaced "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ "implementationAttribute not supported: expandEntityReferences"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'p' ns: '*'.
+ elem := childList item:0.
+ firstChild := elem firstChild.
+ doc2 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList2 := doc2 getElementsByTagName: 'p' ns: '*'.
+ elem2 := childList2 item:0.
+ "assertDOMException..."
+ self should:[
+ elem replaceChild:firstChild with: elem2.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException WRONG_DOCUMENT_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodereplacechild28
+ "
+Attempt to replace a text node with a text node from an
+entity reference. Since the replacing text node should be removed
+from its current location first, a NO_MODIFICATION_ALLOWED_ERR should
+be thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ childList "NodeList"
+ acronym "Element"
+ betaRef "EntityReference"
+ dallas "Text"
+ betaText "Node"
+ appendedChild "Node"
+ replacedChild "Node"
+ |
+ "implementationAttribute not supported: expandEntityReferences"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'acronym'.
+ acronym := childList item:1.
+ betaRef := acronym firstChild.
+ self assert: betaRef notNil.
+ betaText := betaRef firstChild.
+ self assert: betaText notNil.
+ dallas := betaRef nextSibling.
+ self assert: dallas notNil.
+ "assertDOMException..."
+ self should:[
+ acronym replaceChild:dallas with: betaText.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodereplacechild29
+ "
+ Using replaceChild on an Element node attempt to replace a new Element node with
+ another new Element node and verify if a NOT_FOUND_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ childList "NodeList"
+ elem "Element"
+ oldChild "Element"
+ newChild "Element"
+ replaced "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'p'.
+ elem := childList item:0.
+ oldChild := doc createElement:'dom3:br' ns:'http://www.w3.org/1999/xhtml'.
+ newChild := doc createElement:'dom3:span' ns:'http://www.w3.org/1999/xhtml'.
+ "assertDOMException..."
+ self should:[
+ elem replaceChild:oldChild with: newChild.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodereplacechild30
+ "
+
+
+
+ Using replaceChild on an Element node attempt to replace a new Element child node with
+ new child nodes and vice versa and in each case verify the name of the replaced node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ parent "Element"
+ oldChild "Element"
+ newElement "Element"
+ newText "Text"
+ newComment "Comment"
+ newPI "ProcessingInstruction"
+ newCdata "CDATASection"
+ newERef "EntityReference"
+ replaced "Node"
+ nodeName "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parent := doc createElement:'xhtml:html' ns:'http://www.w3.org/1999/xhtml'.
+ oldChild := doc createElement:'xhtml:head' ns:'http://www.w3.org/1999/xhtml'.
+ newElement := doc createElement:'xhtml:body' ns:'http://www.w3.org/1999/xhtml'.
+ appendedChild := parent appendChild:oldChild.
+ appendedChild := parent appendChild:newElement.
+ newText := doc createTextNode:'Text'.
+ appendedChild := parent appendChild:newText.
+ newComment := doc createComment:'Comment'.
+ appendedChild := parent appendChild:newComment.
+ newPI := doc createProcessingInstruction:'target' data:'data'.
+ appendedChild := parent appendChild:newPI.
+ newCdata := doc createCDATASection:'Cdata'.
+ appendedChild := parent appendChild:newCdata.
+ newERef := doc createEntityReference:'delta'.
+ appendedChild := parent appendChild:newERef.
+ parent replaceChild:oldChild with: newElement.
+ nodeName := replaced nodeName.
+ self assert: ( nodeName = 'xhtml:head' ).
+ parent replaceChild:newElement with: oldChild.
+ nodeName := replaced nodeName.
+ self assert: ( nodeName = 'xhtml:body' ).
+ parent replaceChild:oldChild with: newText.
+ nodeName := replaced nodeName.
+ self assert: ( nodeName = 'xhtml:head' ).
+ parent replaceChild:newText with: oldChild.
+ nodeName := replaced nodeName.
+ self assert: ( nodeName = '#text' ).
+ parent replaceChild:oldChild with: newComment.
+ nodeName := replaced nodeName.
+ self assert: ( nodeName = 'xhtml:head' ).
+ parent replaceChild:newComment with: oldChild.
+ nodeName := replaced nodeName.
+ self assert: ( nodeName = '#comment' ).
+ parent replaceChild:newPI with: oldChild.
+ nodeName := replaced nodeName.
+ self assert: ( nodeName = 'target' ).
+ parent replaceChild:newCdata with: oldChild.
+ nodeName := replaced nodeName.
+ self assert: ( nodeName = '#cdata-section' ).
+ parent replaceChild:newERef with: oldChild.
+ nodeName := replaced nodeName.
+ self assert: ( nodeName = 'delta' ).
+
+!
+
+test_nodereplacechild31
+ "
+ Using replaceChild on an Element node that is the replacement Text of an EntityReference
+ node, attempt to replace its Text child node with a new Element node and verify if
+ a NO_MODIFICATION_ALLOWED_ERR gets thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ childList "NodeList"
+ elem "Element"
+ span "Element"
+ ent4Ref "EntityReference"
+ spanText "Text"
+ newChild "Element"
+ replaced "Node"
+ |
+ "implementationAttribute not supported: expandEntityReferences"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ childList := doc getElementsByTagName: 'var'.
+ elem := childList item:2.
+ ent4Ref := elem firstChild.
+ span := ent4Ref firstChild.
+ self assert: span notNil.
+ spanText := span firstChild.
+ self assert: spanText notNil.
+ newChild := doc createElement:'xhtml:p' ns:'http://www.w3.org/1999/xhtml'.
+ "assertDOMException..."
+ self should:[
+ span replaceChild:spanText with: newChild.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodereplacechild32
+ "
+ The method replaceChild replaces the child node oldChild with newChild in the list of
+ children, and returns the oldChild node.
+
+ Using replaceChild on an Attr node to replace its EntityReference Child with a
+ new Text Node and verify the name of the replaced child.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ childList "NodeList"
+ elem "Element"
+ parent "Attr"
+ oldChild "Node"
+ newChild "Text"
+ replaced "Node"
+ nodeName "String"
+ nodeType "SmallInteger"
+ enRef "EntityReference"
+ enRefChild "EntityReference"
+ reference "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ "implementationAttribute not supported: expandEntityReferences"
+ reference := 'entity1'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ newChild := doc createTextNode:'Text'.
+ childList := doc getElementsByTagName: 'acronym' ns: '*'.
+ elem := childList item:3.
+ parent := elem getAttributeNode:'class'.
+ enRef := doc createEntityReference:reference.
+ enRefChild := parent appendChild:enRef.
+ parent replaceChild:enRefChild with: newChild.
+ nodeName := replaced nodeName.
+ self assert: ( nodeName = 'entity1' ).
+
+!
+
+test_nodereplacechild33
+ "
+ Using replaceChild on a default Attr node to replace its Text Child with a
+ new EntityReference Node and verify the value of the replaced child.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ childList "NodeList"
+ elem "Element"
+ parent "Attr"
+ oldChild "Node"
+ newChild "EntityReference"
+ replaced "Node"
+ nodeValue "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ newChild := doc createEntityReference:'delta'.
+ childList := doc getElementsByTagName: 'p'.
+ elem := childList item:3.
+ parent := elem getAttributeNode:'dir'.
+ oldChild := parent lastChild.
+ parent replaceChild:oldChild with: newChild.
+ nodeValue := replaced nodeValue.
+ self assert: ( nodeValue = 'rtl' ).
+
+!
+
+test_nodereplacechild34
+ "
+ Using replaceChild on a new Attr node, replace its new EntityReference Child with a
+ new Text Node and verify the value of the new child.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ parent "Attr"
+ oldChild "EntityReference"
+ newChild "Text"
+ nodeValue "String"
+ appendedChild "Node"
+ replaced "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parent := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ oldChild := doc createEntityReference:'delta'.
+ appendedChild := parent appendChild:oldChild.
+ newChild := doc createTextNode:'Text'.
+ parent replaceChild:oldChild with: newChild.
+ nodeValue := parent value.
+ self assert: ( nodeValue = 'Text' ).
+
+!
+
+test_nodereplacechild35
+ "
+ Using replaceChild on a new Attr node, replace its new EntityRefernece Child with a
+ new Attr Node and verify if a HIERARCHY_REQUEST_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ parent "Attr"
+ oldChild "EntityReference"
+ newChild "Attr"
+ nodeValue "String"
+ appendedChild "Node"
+ replaced "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parent := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ oldChild := doc createEntityReference:'delta'.
+ appendedChild := parent appendChild:oldChild.
+ newChild := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ "assertDOMException..."
+ self should:[
+ parent replaceChild:oldChild with: newChild.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException HIERARCHY_REQUEST_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodereplacechild36
+ "
+ Using replaceChild on a new Attr node, replace its new EntityRefernece node with a
+ new Text Node and verify if a NOT_FOUND_ERR is thrown.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ parent "Attr"
+ oldChild "EntityReference"
+ newChild "Text"
+ nodeValue "String"
+ replaced "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parent := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ oldChild := doc createEntityReference:'delta'.
+ newChild := doc createTextNode:'Text'.
+ "assertDOMException..."
+ self should:[
+ parent replaceChild:oldChild with: newChild.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NOT_FOUND_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodereplacechild37
+ "
+ Using replaceChild on a new Attr node, replace its new Text node with a
+ new EntityReference Node created by another document and verify if a
+ WRONG_DOCUMENT_ERR is raised.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ doc2 "Document"
+ parent "Attr"
+ oldChild "Text"
+ newChild "EntityReference"
+ nodeValue "String"
+ replaced "Node"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ doc2 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ parent := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ oldChild := doc createTextNode:'Text'.
+ newChild := doc2 createEntityReference:'delta'.
+ appendedChild := parent appendChild:oldChild.
+ "assertDOMException..."
+ self should:[
+ parent replaceChild:oldChild with: newChild.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException WRONG_DOCUMENT_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodereplacechild38
+ "
+ Using replaceChild on an Entity node attempt to replace its Text child with new Text,
+ Comment, ProcessingInstruction and CDATASection nodes and in each case verify if
+ a NO_MODIFICATION_ALLOWED_ERR is raised.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entitiesMap "NamedNodeMap"
+ ent "Entity"
+ oldChild "Text"
+ entRef "EntityReference"
+ txt "Text"
+ elem "Element"
+ comment "Comment"
+ pi "ProcessingInstruction"
+ cdata "CDATASection"
+ replaced "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitiesMap := docType entities.
+ ent := entitiesMap getNamedItem:'alpha'.
+ self assert: ent notNil.
+ oldChild := ent firstChild.
+ self assert: oldChild notNil.
+ cdata := doc createCDATASection:'CDATASection'.
+ "assertDOMException..."
+ self should:[
+ ent replaceChild:oldChild with: cdata.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+ pi := doc createProcessingInstruction:'target' data:'data'.
+ "assertDOMException..."
+ self should:[
+ ent replaceChild:oldChild with: pi.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+ comment := doc createComment:'Comment'.
+ "assertDOMException..."
+ self should:[
+ ent replaceChild:oldChild with: comment.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+ txt := doc createTextNode:'Text'.
+ "assertDOMException..."
+ self should:[
+ ent replaceChild:oldChild with: txt.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+ elem := doc createElement:'xhtml:p' ns:'http://www.w3.org/1999/xhtml'.
+ "assertDOMException..."
+ self should:[
+ ent replaceChild:oldChild with: elem.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+ entRef := doc createEntityReference:'delta'.
+ "assertDOMException..."
+ self should:[
+ ent replaceChild:oldChild with: entRef.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodereplacechild39
+ "
+Attempt to add a second document element by a replacing a trailing comment. The attempt should result
+in a HIERARCHY_REQUEST_ERR or NOT_SUPPORTED_ERR.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ rootName "String"
+ rootNS "String"
+ newComment "Comment"
+ newElement "Element"
+ retNode "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ rootNS := docElem namespaceURI.
+ newElement := doc createElement:rootName ns:rootNS.
+ newComment := doc createComment:'second element goes here'.
+ retNode := doc appendChild:newComment.
+ "try"
+ [
+ doc replaceChild:newComment with: newElement.
+self assert:false. ] on: DOMException do: [:ex| ].
+ "end of try"
+
+!
+
+test_nodereplacechild40
+ "
+Attempt to add a second document element by a comment. The attempt should result
+in a HIERARCHY_REQUEST_ERR or NOT_SUPPORTED_ERR.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-785887307
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ rootName "String"
+ publicId "String"
+ systemId "String"
+ newComment "Comment"
+ newDocType "DocumentType"
+ domImpl "DOMImplementation"
+ retNode "Node"
+ |
+ publicId := nil.
+ systemId := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ docElem := doc documentElement.
+ rootName := docElem tagName.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDocType := domImpl createDocumentType:rootName publicId:publicId systemId:systemId.
+ newComment := doc createComment:'second element goes here'.
+ doc insert:newComment before: docElem.
+ "try"
+ [
+ doc replaceChild:newComment with: newDocType.
+self assert:false. ] on: DOMException do: [:ex| ].
+ "end of try"
+
+!
+
+test_nodesettextcontent01
+ "
+Attempt to set textContent for a Document node and check that the document appears
+to be unaffected.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ nodeName "String"
+ elemList "NodeList"
+ elem "Element"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ doc textContent:'textContent'.
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:3.
+ self assert: elem notNil.
+ nodeName := elem nodeName.
+ self assert: ( nodeName = 'acronym' ).
+
+!
+
+test_nodesettextcontent02
+ "
+ The method setTextContent has no effect when the node is defined to be null.
+
+ Using setTextContent on a new Document node, attempt to set the textContent of this
+ new Document node to textContent. Check if it was not set by checking the nodeName
+ attribute of a new Element of this Document node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ domImpl "DOMImplementation"
+ newDoc "Document"
+ nodeName "String"
+ elemChild "Element"
+ newElem "Element"
+ elemList "NodeList"
+ nullDocType "DocumentType"
+ appendedChild "Node"
+ documentElem "Element"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ nullDocType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ newDoc := domImpl createDocumentNS: 'http://www.w3.org/DOM/Test' qualifiedName: 'dom3:elem' doctype: nullDocType.
+ newElem := newDoc createElement:'dom3:childElem' ns:'http://www.w3.org/DOM/Test'.
+ documentElem := newDoc documentElement.
+ appendedChild := documentElem appendChild:newElem.
+ newDoc textContent:'textContent'.
+ elemList := newDoc getElementsByTagName: 'childElem' ns: '*'.
+ elemChild := elemList item:0.
+ nodeName := elemChild nodeName.
+ self assert: ( nodeName = 'dom3:childElem' ).
+
+!
+
+test_nodesettextcontent03
+ "
+
+
+ Using setTextContent on this DocumentType node, attempt to set the textContent of this
+ DocumentType node to textContent. Retreive the textContent and verify if it is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ textContent "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ docType textContent:'textContent'.
+ textContent := docType textContent.
+ self assert: textContent isNil.
+
+!
+
+test_nodesettextcontent04
+ "
+
+
+ Using setTextContent on this DocumentType node, attempt to set the textContent of a
+ Notation node to textContent. Retreive the textContent and verify if it is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ notationsMap "NamedNodeMap"
+ notation1 "Notation"
+ textContent "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ notationsMap := docType notations.
+ notation1 := notationsMap getNamedItem:'notation1'.
+ notation1 textContent:'textContent'.
+ textContent := notation1 textContent.
+ self assert: textContent isNil.
+
+!
+
+test_nodesettextcontent05
+ "
+
+
+ Using setTextContent on a default Attr node, attempt to set its value to NA. Retreive
+ the textContent and verify if it is was set to NA.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ attr "Attr"
+ textContent "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:3.
+ attr := elem getAttributeNode:'dir'.
+ attr textContent:'NA'.
+ textContent := attr textContent.
+ self assert: ( textContent = 'NA' ).
+
+!
+
+test_nodesettextcontent06
+ "
+
+
+ Using setTextContent on a new Attr node with a null value, attempt to set its value to NA. Retreive
+ the textContent and verify if it is was set to NA.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ attr "Attr"
+ attrNode "Attr"
+ textContent "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem := doc createElement:'p' ns:'http://www.w3.org/1999/xhtml'.
+ attr := doc createAttribute:'xml:lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ attrNode := elem setAttributeNodeNS: attr.
+ attr textContent:'NA'.
+ textContent := attr textContent.
+ self assert: ( textContent = 'NA' ).
+
+!
+
+test_nodesettextcontent07
+ "
+
+
+ Using setTextContent on an existing Text node, attempt to set its value to Text.
+ Retreive the textContent and verify if it is was set to Text.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ txt "Text"
+ textContent "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ txt := elem firstChild.
+ txt textContent:'Text'.
+ textContent := txt textContent.
+ self assert: ( textContent = 'Text' ).
+
+!
+
+test_nodesettextcontent08
+ "
+
+
+ Using setTextContent on a new Processing Instruction node, attempt to set its data to PID.
+ Retreive the textContent and verify if it is was set to PID.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ pi "ProcessingInstruction"
+ textContent "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem := doc createElement:'xhtml:p' ns:'http://www.w3.org/1999/xhtml'.
+ pi := doc createProcessingInstruction:'PIT' data:'PID'.
+ appendedChild := elem appendChild:pi.
+ pi textContent:'PID'.
+ textContent := pi textContent.
+ self assert: ( textContent = 'PID' ).
+
+!
+
+test_nodesettextcontent10
+ "
+ The method setTextContent has no effect when the node is defined to be null.
+
+ Using setTextContent on a new Element node, attempt to set its content to ELEMENT.
+ Retreive the textContent and verify if it is was set to ELEMENT.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ elem "Element"
+ txt "Text"
+ comment "Comment"
+ entRef "EntityReference"
+ cdata "CDATASection"
+ pi "ProcessingInstruction"
+ textContent "String"
+ appendedChild "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ ^self. "Validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem := doc createElement:'dom3:elem' ns:'http://www.w3.org/DOM/Test'.
+ txt := doc createTextNode:'Text '.
+ comment := doc createComment:'Comment '.
+ entRef := doc createEntityReference:'ent1'.
+ pi := doc createProcessingInstruction:'PIT' data:'PIData '.
+ cdata := doc createCDATASection:'CData'.
+ appendedChild := elem appendChild:txt.
+ appendedChild := elem appendChild:comment.
+ appendedChild := elem appendChild:entRef.
+ appendedChild := elem appendChild:pi.
+ appendedChild := elem appendChild:cdata.
+ elem textContent:'ELEMENT'.
+ textContent := elem textContent.
+ self assert: ( textContent = 'ELEMENT' ).
+
+!
+
+test_nodesettextcontent11
+ "
+
+
+ Using setTextContent on a new DocumentFragment node Element child, attempt to set its content to
+ DOCUMENTFRAGMENT. Retreive the textContent and verify if it is was set to DOCUMENTFRAGMENT
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ docFrag "DocumentFragment"
+ elem "Element"
+ elemChild "Element"
+ txt "Text"
+ comment "Comment"
+ entRef "EntityReference"
+ cdata "CDATASection"
+ pi "ProcessingInstruction"
+ textContent "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docFrag := doc createDocumentFragment.
+ elem := doc createElement:'xhtml:p' ns:'http://www.w3.org/1999/xhtml'.
+ txt := doc createTextNode:'Text '.
+ comment := doc createComment:'Comment '.
+ entRef := doc createEntityReference:'alpha'.
+ pi := doc createProcessingInstruction:'PIT' data:'PIData '.
+ cdata := doc createCDATASection:'CData'.
+ appendedChild := elem appendChild:txt.
+ appendedChild := elem appendChild:comment.
+ appendedChild := elem appendChild:entRef.
+ appendedChild := elem appendChild:pi.
+ appendedChild := elem appendChild:cdata.
+ appendedChild := docFrag appendChild:elem.
+ elem textContent:'DOCUMENTFRAGMENT'.
+ elemChild := docFrag lastChild.
+ textContent := elemChild textContent.
+ self assert: ( textContent = 'DOCUMENTFRAGMENT' ).
+
+!
+
+test_nodesettextcontent12
+ "
+
+
+ Using setTextContent on a new EntityReference node, attempt to set its value.
+ Since EntityReference nodes are ReadOnly, check if a NO_MODIFICATION_ALLOWED_ERR
+ is raised.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ elem "Element"
+ entRef "EntityReference"
+ textContent "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem := doc documentElement.
+ entRef := doc createEntityReference:'beta'.
+ appendedChild := elem appendChild:entRef.
+ "assertDOMException..."
+ self should:[
+ entRef textContent:'NA'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodesettextcontent13
+ "
+
+
+ Using setTextContent on an Entity node, attempt to set its replacement text.
+ Since Entity nodes are ReadOnly, check if a NO_MODIFICATION_ALLOWED_ERR
+ is raised.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-textContent
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entity "Entity"
+ entitymap "NamedNodeMap"
+ textContent "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entitymap := docType entities.
+ entity := entitymap getNamedItem:'delta'.
+ "assertDOMException..."
+ self should:[
+ entity textContent:'NA'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_nodesetuserdata01
+ "
+
+
+ Using setUserData with null values for the UserData and the handler parameters, check
+ if returned the current userData object of this Document node is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-setUserData
+ "
+ |
+ doc "Document"
+ userData "DOMUserData"
+ prevUserData "DOMUserData"
+ nullHandler "UserDataHandler"
+ nullData "DOMUserData"
+ |
+ nullHandler := nil.
+ nullData := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ prevUserData := doc setUserData:nullData handler: nullHandler forKey:'something'.
+ self assert: prevUserData isNil.
+
+!
+
+test_nodesetuserdata02
+ "
+
+
+ Using setUserData with values for the UserData as this Document and the handler as null
+ parameters, check if returned the current userData object of this Document node is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-setUserData
+ "
+ |
+ doc "Document"
+ userData "DOMUserData"
+ prevUserData "DOMUserData"
+ test "DOMUserData"
+ str "String"
+ nullHandler "UserDataHandler"
+ |
+ test := nil.
+ str := 'Junk'.
+ nullHandler := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ prevUserData := doc setUserData:test handler: nullHandler forKey:'something'.
+ self assert: prevUserData isNil.
+
+!
+
+test_nodesetuserdata03
+ "
+ Invoke setUserData on this Document to set this Documents UserData to a new
+ Element node. Do the same with a new Text node and using isNodeEqual verify
+ the returned Element UserData object.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-setUserData
+ "
+ |
+ doc "Document"
+ userData "DOMUserData"
+ retUserData "DOMUserData"
+ returnedUserData "DOMUserData"
+ success "Boolean"
+ elem "Element"
+ txt "Text"
+ nullHandler "UserDataHandler"
+ |
+ nullHandler := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem := doc createElement:'xhtml:p' ns:'http://www.w3.org/1999/xhtml'.
+ txt := doc createTextNode:'TEXT'.
+ returnedUserData := doc setUserData:elem handler: nullHandler forKey:'Key1'.
+ retUserData := doc setUserData:txt handler: nullHandler forKey:'Key1'.
+ success := retUserData isEqualNode:elem.
+ self assert: success.
+
+!
+
+test_nodesetuserdata04
+ "
+
+
+ Invoke setUserData on a new Element to set its UserData to a new Text node
+ twice using different Keys. Using getUserData with each Key and isNodeEqual
+ verify if the returned nodes are Equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-setUserData
+ "
+ |
+ doc "Document"
+ userData "DOMUserData"
+ returned1 "DOMUserData"
+ returned2 "DOMUserData"
+ retUserData "DOMUserData"
+ success "Boolean"
+ elem "Element"
+ txt "Text"
+ nullHandler "UserDataHandler"
+ |
+ nullHandler := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem := doc createElement:'p' ns:'http://www.w3.org/1999/xhtml'.
+ txt := doc createTextNode:'TEXT'.
+ retUserData := elem setUserData:txt handler: nullHandler forKey:'Key1'.
+ retUserData := elem setUserData:txt handler: nullHandler forKey:'Key2'.
+ returned1 := elem getUserDataForKey:'Key1'.
+ returned2 := elem getUserDataForKey:'Key2'.
+ success := returned1 isEqualNode:returned2.
+ self assert: success.
+
+!
+
+test_nodesetuserdata05
+ "
+
+
+ Invoke setUserData on a new Attr to set its UserData to two Document nodes
+ obtained by parsing the same xml document. Using getUserData and isNodeEqual
+ verify if the returned nodes are Equal.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-setUserData
+ "
+ |
+ doc "Document"
+ doc2 "Document"
+ userData "DOMUserData"
+ returned1 "DOMUserData"
+ returned2 "DOMUserData"
+ retUserData "DOMUserData"
+ success "Boolean"
+ attr "Attr"
+ nullHandler "UserDataHandler"
+ |
+ nullHandler := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ doc2 := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ attr := doc createAttribute:'lang' ns:'http://www.w3.org/XML/1998/namespace'.
+ retUserData := attr setUserData:doc handler: nullHandler forKey:'Key1'.
+ retUserData := attr setUserData:doc2 handler: nullHandler forKey:'Key2'.
+ returned1 := attr getUserDataForKey:'Key1'.
+ returned2 := attr getUserDataForKey:'Key2'.
+ success := returned1 isEqualNode:returned2.
+ self assert: success.
+
+!
+
+test_nodesetuserdata06
+ "
+
+
+ Invoke setUserData on a new Comment to set its UserData to an Entity node
+ twice using the same key. Verify if the UserData object that was by the
+ second setUserData is the same as original Entity.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-setUserData
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ entities "NamedNodeMap"
+ entity "Entity"
+ comment "Comment"
+ userData "DOMUserData"
+ returned "DOMUserData"
+ retUserData "DOMUserData"
+ success "Boolean"
+ nullHandler "UserDataHandler"
+ |
+ nullHandler := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ entities := docType entities.
+ entity := entities getNamedItem:'delta'.
+ comment := doc createComment:'COMMENT_NODE'.
+ retUserData := comment setUserData:entity handler: nullHandler forKey:'Key1'.
+ returned := comment setUserData:entity handler: nullHandler forKey:'Key1'.
+ success := returned isEqualNode:entity.
+ self assert: success.
+
+!
+
+test_nodesetuserdata07
+ "
+
+
+ Invoke setUserData on a Notation to set its UserData to a Comment node
+ twice using the same key. Verify if the UserData object that was returned
+ by second setUserData is the Comment node set in the first setUserData call.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-setUserData
+ "
+ |
+ doc "Document"
+ docType "DocumentType"
+ notations "NamedNodeMap"
+ notation "Notation"
+ comment "Comment"
+ userData "DOMUserData"
+ returned "DOMUserData"
+ success "Boolean"
+ retUserData "DOMUserData"
+ nullHandler "UserDataHandler"
+ |
+ nullHandler := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docType := doc doctype.
+ notations := docType notations.
+ notation := notations getNamedItem:'notation1'.
+ comment := doc createComment:'COMMENT_NODE'.
+ retUserData := notation setUserData:comment handler: nullHandler forKey:'Key1'.
+ returned := notation setUserData:comment handler: nullHandler forKey:'Key1'.
+ success := returned isEqualNode:comment.
+ self assert: success.
+
+!
+
+test_nodesetuserdata08
+ "
+ Invoke setUserData on a CDATASection and EntityReference node to set their
+ UserData to this Document and DocumentElement node. Verify if the UserData
+ object that was set for both nodes is different.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-setUserData
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ entRef "EntityReference"
+ cData "CDATASection"
+ elemList "NodeList"
+ elemName "Element"
+ userData "DOMUserData"
+ returned1 "DOMUserData"
+ returned2 "DOMUserData"
+ success "Boolean"
+ retUserData "DOMUserData"
+ nullHandler "UserDataHandler"
+ |
+ nullHandler := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ entRef := doc createEntityReference:'delta'.
+ cData := doc createCDATASection:'CDATASection'.
+ retUserData := entRef setUserData:doc handler: nullHandler forKey:'Key1'.
+ retUserData := cData setUserData:docElem handler: nullHandler forKey:'Key2'.
+ returned1 := entRef getUserDataForKey:'Key1'.
+ returned2 := cData getUserDataForKey:'Key2'.
+ success := returned1 isEqualNode:returned2.
+ self deny: success.
+
+!
+
+test_nodesetuserdata09
+ "
+
+
+ Invoke setUserData on this documentElement node to set its UserData to
+ this Document node. Invoke getUserData on this Document node with the same
+ key of the UserData that was just set on the documentElement node and verify
+ if the returned node is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-setUserData
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ returned "DOMUserData"
+ nullHandler "UserDataHandler"
+ retUserData "DOMUserData"
+ |
+ nullHandler := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ retUserData := docElem setUserData:doc handler: nullHandler forKey:'Key1'.
+ returned := doc getUserDataForKey:'Key1'.
+ self assert: returned isNil.
+
+!
+
+test_nodesetuserdata10
+ "
+ Invoke setUserData on a CDATASection and EntityReference node to set their
+ UserData to this Document and DocumentElement node. Verify if the UserData
+ object that was set for both nodes is different.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Node3-setUserData
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ entRef "Node"
+ cData "CDATASection"
+ varList "NodeList"
+ varElem "Element"
+ userData "DOMUserData"
+ returned1 "DOMUserData"
+ returned2 "DOMUserData"
+ success "Boolean"
+ retUserData "DOMUserData"
+ nullHandler "UserDataHandler"
+ |
+ nullHandler := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ docElem := doc documentElement.
+ varList := doc getElementsByTagName: 'var'.
+ varElem := varList item:2.
+ entRef := varElem firstChild.
+ cData := doc createCDATASection:'CDATASection'.
+ retUserData := entRef setUserData:doc handler: nullHandler forKey:'Key1'.
+ retUserData := cData setUserData:docElem handler: nullHandler forKey:'Key2'.
+ returned1 := entRef getUserDataForKey:'Key1'.
+ returned2 := cData getUserDataForKey:'Key2'.
+ success := returned1 isEqualNode:returned2.
+ self deny: success.
+
+!
+
+test_normalizecharacters01
+ "
+Normalize document with normalize-characters set to false, check that
+characters are not normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-normalize-characters
+ Subject http://www.w3.org/TR/2003/WD-charmod-20030822/
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ pList "NodeList"
+ pElem "Element"
+ text "Text"
+ textValue "String"
+ retval "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'normalize-characters' value: false.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ text := doc createTextNode:'suçon'.
+ retval := pElem appendChild:text.
+ doc normalizeDocument.
+ errorMonitor assertLowerSeverityFor: self message:'normalizeError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ text := pElem firstChild.
+ textValue := text nodeValue.
+ self assert: ( textValue = 'barsuçon' ).
+
+!
+
+test_normalizecharacters02
+ "
+Normalize document with normalize-characters set to true, check that
+characters are normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-normalize-characters
+ Subject http://www.w3.org/TR/2003/WD-charmod-20030822/
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ pList "NodeList"
+ pElem "Element"
+ text "Text"
+ textValue "String"
+ retval "Node"
+ canSet "Boolean"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'normalize-characters' value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_normalizecharacters03
+ "
+Normalize an element with normalize-characters set to false, check that
+characters are not normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-normalize
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-normalize-characters
+ Subject http://www.w3.org/TR/2003/WD-charmod-20030822/
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ pList "NodeList"
+ pElem "Element"
+ text "Text"
+ textValue "String"
+ retval "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'normalize-characters' value: false.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ text := doc createTextNode:'suçon'.
+ retval := pElem appendChild:text.
+ pElem normalize.
+ errorMonitor assertLowerSeverityFor: self message:'normalizeError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ text := pElem firstChild.
+ textValue := text nodeValue.
+ self assert: ( textValue = 'barsuçon' ).
+
+!
+
+test_normalizecharacters04
+ "
+Normalize an element with normalize-characters set to true, check that
+characters are normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-normalize
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-normalize-characters
+ Subject http://www.w3.org/TR/2003/WD-charmod-20030822/
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ pList "NodeList"
+ pElem "Element"
+ text "Text"
+ textValue "String"
+ retval "Node"
+ canSet "Boolean"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'normalize-characters' value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_normalizecharacters05
+ "
+Normalize an document (using Node.normalize) with normalize-characters set to false, check that
+characters are not normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-normalize
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-normalize-characters
+ Subject http://www.w3.org/TR/2003/WD-charmod-20030822/
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ pList "NodeList"
+ pElem "Element"
+ text "Text"
+ textValue "String"
+ retval "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'normalize-characters' value: false.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ text := doc createTextNode:'suçon'.
+ retval := pElem appendChild:text.
+ doc normalize.
+ errorMonitor assertLowerSeverityFor: self message:'normalizeError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ text := pElem firstChild.
+ textValue := text nodeValue.
+ self assert: ( textValue = 'barsuçon' ).
+
+!
+
+test_normalizecharacters06
+ "
+Normalize a document (using Node.normalize) with normalize-characters set to true, check that
+characters are normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-normalize
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-normalize-characters
+ Subject http://www.w3.org/TR/2003/WD-charmod-20030822/
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ pList "NodeList"
+ pElem "Element"
+ text "Text"
+ textValue "String"
+ retval "Node"
+ canSet "Boolean"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'normalize-characters' value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_normalizecharacters07
+ "
+Normalize a text node with normalize-characters set to false, check that
+characters are not normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-normalize
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-normalize-characters
+ Subject http://www.w3.org/TR/2003/WD-charmod-20030822/
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ pList "NodeList"
+ pElem "Element"
+ text "Text"
+ textValue "String"
+ retval "Node"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ domConfig setParameter: 'normalize-characters' value: false.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ text := doc createTextNode:'suçon'.
+ retval := pElem appendChild:text.
+ retval normalize.
+ errorMonitor assertLowerSeverityFor: self message:'normalizeError' severity: DOMErrorMonitor SEVERITY_ERROR.
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ text := pElem lastChild.
+ textValue := text nodeValue.
+ self assert: ( textValue = 'suçon' ).
+
+!
+
+test_normalizecharacters08
+ "
+Normalize a text node with normalize-characters set to true, check that
+characters are normalized.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-normalize
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-normalize-characters
+ Subject http://www.w3.org/TR/2003/WD-charmod-20030822/
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ pList "NodeList"
+ pElem "Element"
+ text "Text"
+ textValue "String"
+ retval "Node"
+ canSet "Boolean"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'normalize-characters' value: true.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_splitcdatasections01
+ "
+Add a CDATASection containing ]]> and call Node.normalize which should not
+split or raise warning.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-normalize
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-split-cdata-sections
+ "
+ |
+ doc "Document"
+ elem "Element"
+ domConfig "DOMConfiguration"
+ elemList "NodeList"
+ newChild "CDATASection"
+ oldChild "Node"
+ retval "Node"
+ errorMonitor "DOMErrorMonitor"
+ errors "List"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ oldChild := elem firstChild.
+ newChild := doc createCDATASection:'this is not ]]> good'.
+ elem replaceChild:oldChild with: newChild.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'split-cdata-sections' value: false.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalize.
+ errorMonitor assertLowerSeverityFor: self message:'noErrors' severity: DOMErrorMonitor SEVERITY_ERROR.
+
+!
+
+test_textiselementcontentwhitespace01
+ "
+ Invoke isElementContentWhitespace on a newly created Text Node that contains only whitespace.
+Should be false since there is no content model to determine if the node appears within element content.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-isElementContentWhitespace
+ "
+ |
+ doc "Document"
+ newText "Text"
+ hasWhitespace "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ newText := doc createTextNode:' '.
+ hasWhitespace := newText isElementContentWhitespace.
+ self deny: hasWhitespace.
+
+!
+
+test_textiselementcontentwhitespace02
+ "
+Get the text node child of the p element in barfoo. isElementContentWhitespace should
+be false since the node is neither whitespace or in element content.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-isElementContentWhitespace
+ "
+ |
+ doc "Document"
+ pList "NodeList"
+ pElem "Element"
+ textNode "Text"
+ isElemContentWhitespace "Boolean"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ textNode := pElem firstChild.
+ isElemContentWhitespace := textNode isElementContentWhitespace.
+ self deny: isElemContentWhitespace.
+
+!
+
+test_textiselementcontentwhitespace03
+ "
+Get the newline between the body and p element. Since node is both in element content
+and whitespace, isElementContentWhitespace should return true.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-isElementContentWhitespace
+ "
+ |
+ doc "Document"
+ pList "NodeList"
+ pElem "Element"
+ textNode "Text"
+ isElemContentWhitespace "Boolean"
+ |
+ ^self. "Validation not supported"
+ "implementationAttribute not supported: ignoringElementContentWhitespace"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ pList := doc getElementsByTagName: 'p'.
+ pElem := pList item:0.
+ textNode := pElem previousSibling.
+ isElemContentWhitespace := textNode isElementContentWhitespace.
+ self assert: isElemContentWhitespace.
+
+!
+
+test_textiselementcontentwhitespace04
+ "
+Replace the text node child of the p element in barfoo with whitespace and normalize with validation.
+isElementContentWhitespace should be false since the node is not in element content.
+
+ Creator: Curt Arnold
+ Autor Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-isElementContentWhitespace
+ "
+ |
+ doc "Document"
+ pList "NodeList"
+ pElem "Element"
+ textNode "Text"
+ blankNode "Text"
+ returnedNode "Node"
+ isElemContentWhitespace "Boolean"
+ domConfig "DOMConfiguration"
+ canSetValidation "Boolean"
+ replacedNode "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ canSetValidation := domConfig canSetParameter: 'validate' value: true.
+ "if"
+ (canSetValidation) ifTrue: [
+ ].
+
+!
+
+test_textiselementcontentwhitespace05
+ "
+Replace the whitespace before the p element in barfoo with non-whitespace and normalize with validation.
+isElementContentWhitespace should be false since the node is not whitespace.
+
+ Creator: Curt Arnold
+ Autor Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-isElementContentWhitespace
+ "
+ |
+ doc "Document"
+ bodyList "NodeList"
+ bodyElem "Element"
+ textNode "Text"
+ nonBlankNode "Text"
+ returnedNode "Node"
+ isElemContentWhitespace "Boolean"
+ domConfig "DOMConfiguration"
+ canSetValidation "Boolean"
+ refChild "Node"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ canSetValidation := domConfig canSetParameter: 'validate' value: true.
+ "if"
+ (canSetValidation) ifTrue: [
+ ].
+
+!
+
+test_textiselementcontentwhitespace06
+ "
+Insert whitespace before the p element in barfoo and normalize with validation.
+isElementContentWhitespace should be true since the node is whitespace and in element content.
+
+ Creator: Curt Arnold
+ Autor Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-isElementContentWhitespace
+ "
+ |
+ doc "Document"
+ bodyList "NodeList"
+ bodyElem "Element"
+ refChild "Node"
+ textNode "Text"
+ blankNode "Text"
+ returnedNode "Node"
+ isElemContentWhitespace "Boolean"
+ domConfig "DOMConfiguration"
+ canSetValidation "Boolean"
+ replacedNode "Node"
+ errorMonitor "DOMErrorMonitor"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domConfig := doc domConfig.
+ canSetValidation := domConfig canSetParameter: 'validate' value: true.
+ "if"
+ (canSetValidation) ifTrue: [
+ ].
+
+!
+
+test_textreplacewholetext01
+ "
+ Invoke replaceWholeText on an existing Text Node to replace its value with a
+ new value containing white space characters. Verify the replaceWholeText by
+ verifying the values returned by wholeText
+ of the returned Text node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-replaceWholeText
+ "
+ |
+ doc "Document"
+ itemList "NodeList"
+ elementName "Element"
+ textNode "Text"
+ replacedText "Text"
+ wholeText "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ itemList := doc getElementsByTagName: 'strong'.
+ elementName := itemList item:0.
+ textNode := elementName firstChild.
+ replacedText := textNode replaceWholeText:'New Content'.
+ wholeText := replacedText wholeText.
+ self assert: ( wholeText = 'New Content' ).
+
+!
+
+test_textreplacewholetext02
+ "
+ Invoke replaceWholeText on an existing Text Node to replace its value with an
+ empty string value. Verify the repalceWholeText method by verifying if the value
+ returned is null.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-replaceWholeText
+ "
+ |
+ doc "Document"
+ itemList "NodeList"
+ elementName "Element"
+ textNode "Text"
+ replacedText "Text"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ itemList := doc getElementsByTagName: 'strong'.
+ elementName := itemList item:0.
+ textNode := elementName firstChild.
+ replacedText := textNode replaceWholeText:''.
+ self assert: replacedText isNil.
+
+!
+
+test_textreplacewholetext03
+ "
+ Invoke replaceWholeText on an new Text Node to replace its value with a
+ new value. Verify the repalceWholeText by verifying the values returned by
+ wholeText of the returned Text node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-replaceWholeText
+ "
+ |
+ doc "Document"
+ textNode "Text"
+ replacedText "Text"
+ wholeText "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ textNode := doc createTextNode:'New Text'.
+ replacedText := textNode replaceWholeText:' a b c b '.
+ wholeText := replacedText wholeText.
+ self assert: ( wholeText = ' a b c b ' ).
+
+!
+
+test_textreplacewholetext04
+ "
+ Invoke replaceWholeText on an new Text Node to replace its value with an
+ empty value.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-replaceWholeText
+ "
+ |
+ doc "Document"
+ textNode "Text"
+ replacedText "Text"
+ wholeText "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ textNode := doc createTextNode:'New Text'.
+ replacedText := textNode replaceWholeText:''.
+ self assert: replacedText isNil.
+
+!
+
+test_textreplacewholetext05
+ "
+ Invoke replaceWholeText on an existing text node with newly created text and CDATASection
+ nodes appended as children of its parent element node. Verify repalceWholeText by
+ verifying the values returned by wholeText.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-replaceWholeText
+ "
+ |
+ doc "Document"
+ itemList "NodeList"
+ elementName "Element"
+ textNode "Text"
+ cdataNode "CDATASection"
+ replacedText "Text"
+ wholeText "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ itemList := doc getElementsByTagName: 'strong'.
+ elementName := itemList item:0.
+ textNode := doc createTextNode:'New Text'.
+ cdataNode := doc createCDATASection:'New CDATA'.
+ appendedChild := elementName appendChild:textNode.
+ appendedChild := elementName appendChild:cdataNode.
+ textNode := elementName firstChild.
+ replacedText := textNode replaceWholeText:'New Text and Cdata'.
+ wholeText := replacedText wholeText.
+ self assert: ( wholeText = 'New Text and Cdata' ).
+
+!
+
+test_textreplacewholetext06
+ "
+ The method replaceWholeText substitutes the a specified text for the text of
+ the current node and all logically-adjacent text nodes. This method raises
+ a NO_MODIFICATION_ALLOWED_ERR if one of the Text nodes being replaced is readonly.
+
+ Invoke replaceWholeText on an existing text node with newly created text and Entityreference
+ nodes (whose replacement text is a character entity reference) appended as children of its parent element node.
+ Where the nodes to be removed are read-only descendants of an EntityReference, the EntityReference
+ must be removed instead of the read-only nodes. Only if any EntityReference to be removed has
+ descendants that are not EntityReference, Text, or CDATASection nodes, the replaceWholeText
+ method must fail, raising a NO_MODIFICATION_ALLOWED_ERR. Verify that the method does not raise
+ an exception and verify the content of the returned text node.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-replaceWholeText
+ "
+ |
+ doc "Document"
+ itemList "NodeList"
+ elementStrong "Element"
+ textNode "Text"
+ erefNode "EntityReference"
+ replacedText "Text"
+ appendedChild "Node"
+ nodeValue "String"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ ^self. "Validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ itemList := doc getElementsByTagName: 'strong'.
+ elementStrong := itemList item:0.
+ textNode := doc createTextNode:'New Text'.
+ erefNode := doc createEntityReference:'beta'.
+ appendedChild := elementStrong appendChild:textNode.
+ appendedChild := elementStrong appendChild:erefNode.
+ textNode := elementStrong firstChild.
+ replacedText := textNode replaceWholeText:'New Text and Cdata'.
+ nodeValue := textNode nodeValue.
+ self assert: ( nodeValue = 'New Text and Cdata' ).
+
+!
+
+test_textreplacewholetext07
+ "
+Append an entity reference and a text node after to the content of the
+first strong element. Then call replaceWholeText on initial content
+of that element. Since the entity reference does not contain any
+logically-adjacent text content, only the initial text element should
+be replaced.
+
+ Creator: IBM
+ Autor Neil Delima
+ Autor Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-replaceWholeText
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=425
+ "
+ |
+ doc "Document"
+ itemList "NodeList"
+ elementName "Element"
+ textNode "Text"
+ erefNode "EntityReference"
+ replacedText "Text"
+ appendedChild "Node"
+ node "Node"
+ nodeValue "String"
+ nodeType "SmallInteger"
+ |
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ itemList := doc getElementsByTagName: 'strong'.
+ elementName := itemList item:0.
+ erefNode := doc createEntityReference:'ent4'.
+ textNode := doc createTextNode:'New Text'.
+ appendedChild := elementName appendChild:erefNode.
+ appendedChild := elementName appendChild:textNode.
+ textNode := elementName firstChild.
+ replacedText := textNode replaceWholeText:'New Text and Cdata'.
+ textNode := elementName firstChild.
+ self assert: replacedText == textNode.
+ nodeValue := textNode nodeValue.
+ self assert: ( nodeValue = 'New Text and Cdata' ).
+ node := textNode nextSibling.
+ self assert: node notNil.
+ nodeType := node nodeType.
+ self assert: ( nodeType = 5 ).
+
+!
+
+test_textreplacewholetext08
+ "
+Appends an entity reference containing text and an element to an existing
+text node, then calls Text.replaceWholeText on the existing text node.
+A NO_MODIFICATION_ALLOWED_ERR should be thrown.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-replaceWholeText
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=425
+ Subject http://www.w3.org/Bugs/Public/show_bug.cgi?id=540
+ "
+ |
+ doc "Document"
+ itemList "NodeList"
+ p "Element"
+ entRef "EntityReference"
+ node "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ itemList := doc getElementsByTagName: 'p'.
+ p := itemList item:0.
+ entRef := doc createEntityReference:'ent2'.
+ node := p appendChild:entRef.
+ node := p firstChild.
+ "assertDOMException..."
+ self should:[
+ node := node replaceWholeText:'yo'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException NO_MODIFICATION_ALLOWED_ERR).
+ "end of assertDOMException..."
+
+!
+
+test_textwholetext01
+ "
+ Invoke wholetext on an existing Text Node that contains whitespace and verify if
+ the value returned is correct.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-wholeText
+ "
+ |
+ doc "Document"
+ itemList "NodeList"
+ elementName "Element"
+ textNode "Text"
+ nameWholeText "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ itemList := doc getElementsByTagName: 'strong'.
+ elementName := itemList item:0.
+ textNode := elementName firstChild.
+ nameWholeText := textNode wholeText.
+ self assert: ( nameWholeText = 'Margaret Martin' ).
+
+!
+
+test_textwholetext02
+ "
+ Invoke wholetext on an existing Text Node that contains whitespace and and verify if
+ the value returned is correct.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-wholeText
+ "
+ |
+ doc "Document"
+ itemList "NodeList"
+ elementName "Element"
+ textNode "Text"
+ newTextNode "Text"
+ wholeText "String"
+ appendedChild "Node"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ itemList := doc getElementsByTagName: 'strong'.
+ elementName := itemList item:0.
+ newTextNode := doc createTextNode:'New Text'.
+ appendedChild := elementName appendChild:newTextNode.
+ textNode := elementName firstChild.
+ wholeText := textNode wholeText.
+ self assert: ( wholeText = 'Margaret MartinNew Text' ).
+
+!
+
+test_textwholetext03
+ "
+ Invoke wholetext on two newly created text nodes and verify if the value returned
+ is correct.
+
+ Creator: IBM
+ Autor Neil Delima
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-wholeText
+ "
+ |
+ doc "Document"
+ elem "Element"
+ text1 "Text"
+ text2 "Text"
+ appendedChild "Node"
+ combinedText "String"
+ |
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elem := doc createElement:'p' ns:'http://www.w3.org/1999/xhtml'.
+ text1 := doc createTextNode:'Text I'.
+ text2 := doc createTextNode:' Text II'.
+ appendedChild := elem appendChild:text1.
+ appendedChild := elem appendChild:text2.
+ combinedText := text1 wholeText.
+ self assert: ( combinedText = 'Text I Text II' ).
+
+!
+
+test_typeinfogettypename03
+ "
+ The typeName attribute states the name of a type declared for the associated element or
+ attribute, or null if unknown.
+
+ Invoke getSchemaTypeInfo method on an attribute having [type definition] property. Expose
+ {name} and {target namespace} properties of the [type definition] property.
+ Verify that the typeName of id's schemaTypeInfo are correct.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeName
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ attrid "Attr"
+ acElem "Element"
+ attrTypeInfo "TypeInfo"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ ^self. "Validation not supported"
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acElem := elemList item:2.
+ attrid := acElem getAttributeNode:'id'.
+ attrTypeInfo := attrid schemaTypeInfo.
+ typeName := attrTypeInfo typeName.
+ self assert: ( typeName = 'ID' ).
+
+!
+
+test_typeinfogettypename04
+ "
+ The typeName attribute states the name of a type declared for the associated element or
+ attribute, or null if unknown.
+
+ Invoke getSchemaTypeInfo method on an attribute having [member type definition]property. Expose
+ {name} and {target namespace} properties of the [member type definition] property.
+ Verify that the typeName of an em element's schemaTypeInfo is correct.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeName
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ elemList "NodeList"
+ emElem "Element"
+ elemTypeInfo "TypeInfo"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ ^self. "Validation not supported"
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ emElem := elemList item:0.
+ elemTypeInfo := emElem schemaTypeInfo.
+ typeName := elemTypeInfo typeName.
+ self assert: ( typeName = 'emType' ).
+
+!
+
+test_typeinfogettypenamespace01
+ "
+ The typeNamespace attribute states the namespace of a type declared for the associated element or
+ attribute, or null if unknown.
+
+ Invoke getSchemaTypeInfo method on an attribute having [type definition] property. Expose
+ {name} and {target namespace} properties of the [type definition] property.
+ Verify that the typeNamespace of the attrib1 and attrib3's schemaTypeInfo are correct.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeNamespace
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acElem "Element"
+ titleAttr "Attr"
+ attrTypeInfo "TypeInfo"
+ typeNamespace "String"
+ |
+ ^self. "Schema validation not supported"
+ ^self. "Validation not supported"
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acElem := elemList item:0.
+ titleAttr := acElem getAttributeNode:'title'.
+ attrTypeInfo := titleAttr schemaTypeInfo.
+ typeNamespace := attrTypeInfo typeNamespace.
+ self assert: ( typeNamespace = 'http://www.w3.org/2001/XMLSchema' ).
+
+!
+
+test_typeinfogettypenamespace03
+ "
+ The typeNamespace attribute states the namespace of a type declared for the associated element or
+ attribute, or null if unknown.
+
+ Invoke getSchemaTypeInfo method on an attribute having [type definition] property. Expose
+ {name} and {target namespace} properties of the [type definition] property.
+ Verify that the typeName of class's schemaTypeInfo is correct.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeName
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ classAttr "Attr"
+ attrTypeInfo "TypeInfo"
+ typeNamespace "String"
+ acElem "Element"
+ |
+ ^self. "Schema validation not supported"
+ ^self. "Validation not supported"
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acElem := elemList item:1.
+ classAttr := acElem getAttributeNode:'class'.
+ attrTypeInfo := classAttr schemaTypeInfo.
+ typeNamespace := attrTypeInfo typeNamespace.
+ self assert: ( typeNamespace = 'http://www.w3.org/1999/xhtml' ).
+
+!
+
+test_typeinfogettypenamespace04
+ "
+ The typeName attribute states the name of a type declared for the associated element or
+ attribute, or null if unknown.
+
+ Invoke getSchemaTypeInfo method on an attribute having [member type definition]property. Expose
+ {name} and {target namespace} properties of the [member type definition] property.
+ Verify that the typeNamespace of eldblUnionA's schemaTypeInfo is null??? (sv)
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-typeName
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ emElem "Element"
+ elemTypeInfo "TypeInfo"
+ typeNamespace "String"
+ |
+ ^self. "Schema validation not supported"
+ ^self. "Validation not supported"
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ emElem := elemList item:0.
+ elemTypeInfo := emElem schemaTypeInfo.
+ typeNamespace := elemTypeInfo typeNamespace.
+ self assert: ( typeNamespace = 'http://www.w3.org/1999/xhtml' ).
+
+!
+
+test_typeinfoisderivedfrom01
+ "
+DTD types always return false for isDerivedFrom.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:0.
+ attr := acronymElem getAttributeNode:'title'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/TR/REC-xml' name:'CDATA' method:0.
+ self deny: isDerived.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/TR/REC-xml' name:'CDATA' method:15.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom02
+ "
+Check how xsd:string is derived from itself.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:0.
+ attr := acronymElem getAttributeNode:'title'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'string' method:1.
+ self assert: isDerived.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'string' method:14.
+ self deny: isDerived.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'string' method:0.
+ self assert: isDerived.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'string' method:15.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom03
+ "
+Check that isDerivedFrom does considers xsd:string to be derived from anySimpleType.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:0.
+ attr := acronymElem getAttributeNode:'title'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'string' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anySimpleType' method:15.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom04
+ "
+Check if xsd:string is derived from xsd:anyType by any method.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:0.
+ attr := acronymElem getAttributeNode:'title'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'string' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:15.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom05
+ "
+Check if xsd:string is derived from xsd:anyType by restriction.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:0.
+ attr := acronymElem getAttributeNode:'title'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'string' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:1.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom06
+ "
+Check if xsd:string is derived from xsd:anyType by any method except restriction.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:0.
+ attr := acronymElem getAttributeNode:'title'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'string' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:14.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom07
+ "
+Check if xsd:string is derived from xsd:anyType using 0 as derivation method.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:0.
+ attr := acronymElem getAttributeNode:'title'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'string' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:0.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom08
+ "
+Check if classType is derived from xsd:string by any method.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ attr := acronymElem getAttributeNode:'class'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'classType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'string' method:15.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom09
+ "
+Check if classType is derived from xsd:anySimpleType by any method.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ attr := acronymElem getAttributeNode:'class'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'classType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anySimpleType' method:15.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom10
+ "
+Check if classType is derived from anyType by any method.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ attr := acronymElem getAttributeNode:'class'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'classType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:15.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom11
+ "
+Check if classType is derived from xsd:anyType by restriction.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ attr := acronymElem getAttributeNode:'class'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'classType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:1.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom12
+ "
+Check classType is derived from anyType specifying derivationMethod as 0.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ attr := acronymElem getAttributeNode:'class'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'classType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:0.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom13
+ "
+Check if classType is derived from xsd:anyType by any method other than restriction.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ attr := acronymElem getAttributeNode:'class'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'classType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:14.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom14
+ "
+Check how classType is derived from itself.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ attr := acronymElem getAttributeNode:'class'.
+ typeInfo := attr schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'classType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'classType' method:1.
+ self assert: isDerived.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'classType' method:14.
+ self deny: isDerived.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'classType' method:15.
+ self assert: isDerived.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'classType' method:0.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom15
+ "
+Check emType is derived from emp0001_3Type by any method.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'emType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'emp0001_3Type' method:15.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom16
+ "
+Check emType is derived from emp0001_3Type by union.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'emType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'emp0001_3Type' method:4.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom17
+ "
+Check if emType is derived from emp0001_3Type by any method other than union.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'emType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'emp0001_3Type' method:11.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom18
+ "
+Check if emType is derived from xsd:ID by restriction.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'emType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'ID' method:1.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom19
+ "
+Check emType is derived from anySimpleType by restriction.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'emType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anySimpleType' method:1.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom20
+ "
+Check if emType is derived from anyType by restriction.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:1.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom21
+ "
+Check if emType is derived from itself.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'emType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'emType' method:1.
+ self assert: isDerived.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'emType' method:14.
+ self deny: isDerived.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'emType' method:0.
+ self assert: isDerived.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'emType' method:15.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom22
+ "
+Check strongType is derived from xsd:string by any method.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'strongType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'string' method:15.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom23
+ "
+Check if strongType is derived from xsd:string by list.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'strongType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'string' method:8.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom24
+ "
+Check if strongType is derived from xsd:string by any method other than list.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'strongType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'string' method:7.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom25
+ "
+Check if strongType is derived from anySimpleType by restriction.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'strongType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anySimpleType' method:1.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom26
+ "
+Check if strongType is derived from anyType by restriction.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'strongType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:1.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom27
+ "
+Check if strongType is derived from anyType by union or extension.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'strongType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:6.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom28
+ "
+Check how strongType is derived from itself.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'strongType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'strongType' method:1.
+ self assert: isDerived.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'strongType' method:14.
+ self deny: isDerived.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'strongType' method:15.
+ self assert: isDerived.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'strongType' method:0.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom29
+ "
+Check if anonymous type for p element is derived from pType.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'pType' method:15.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom30
+ "
+Check if anonymous type for p element is derived from pType by restriction.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'pType' method:1.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom31
+ "
+Check anonymous type for p element is derived from pType by any method other than restriction.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'pType' method:14.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom32
+ "
+Check if anonymous type of p element is derived from part1.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'part1' method:15.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom33
+ "
+Check is anonymous type of p element is derived by extension from part1.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'part1' method:2.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom34
+ "
+Check if anonymous type of p element is derived from part1 by any method other than extension.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'part1' method:13.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom35
+ "
+Check if anonymous type of p element is derived from xsd:simpleType.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anySimpleType' method:15.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom36
+ "
+Check if anonymous type of p element is derived from xsd:anyType.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:15.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom37
+ "
+Check if anonymous type of p element is derived from xsd:anyType by restriction.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:1.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom38
+ "
+Check if anonymous type of p element is derived from xsd:anyType by any method other
+than extension.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:13.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom39
+ "
+Check if anonymous type of p element derives from itself.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ typeNS "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'p'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ typeNS := typeInfo typeNamespace.
+ isDerived := typeInfo isDerivedFromNS:typeNS name:typeName method:15.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom40
+ "
+Check if emType is derived from xsd:ID by union.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'emType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'ID' method:4.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom41
+ "
+Check if emType is derived from xsd:ID by any method other than union or restriction.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'emType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'ID' method:10.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom42
+ "
+Check if strongType is derived from anySimpleType by list.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ typeName "String"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ typeName := typeInfo typeName.
+ self assert: ( typeName = 'strongType' ).
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anySimpleType' method:8.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom43
+ "
+Check if anonymous type of acronym element derived from anyType by restriction.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ typeInfo := acronymElem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:1.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom44
+ "
+Check if anonymous type of acronym element derived from anyType by any method other than extension.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ typeInfo := acronymElem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:13.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom45
+ "
+Check if anonymous type of acronym element derived from anySimpleType by extension.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ typeInfo := acronymElem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anySimpleType' method:2.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom46
+ "
+Check if anonymous type of acronym element derived from anySimpleType by any method other than extension.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ typeInfo := acronymElem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anySimpleType' method:13.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom47
+ "
+Check if anonymous type of acronym element derived from xsd:string by extension.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ typeInfo := acronymElem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'string' method:2.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom48
+ "
+Check if anonymous type of acronym element derived from xsd:string by any method other than extension.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:2.
+ typeInfo := acronymElem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'string' method:13.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom49
+ "
+Check if a type derived by extension from a list of a item type returns true
+when asked if it derives by list from the item type.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'typeinfo').
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'double' method:8.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom50
+ "
+Check if a type derived by extension from a list of a item type returns true
+when asked if it derives by any method from the item type.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'typeinfo').
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'double' method:0.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom51
+ "
+Check if a type derived by extension from a list of a item type returns false
+when asked if it derives by any method other than list from the item type.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'typeinfo').
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'double' method:7.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom52
+ "
+Check if a type derived by extension from a list of a item type returns false
+when asked if it derives by restriction from anySimpleType type.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'typeinfo').
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anySimpleType' method:1.
+ self deny: isDerived.
+
+!
+
+test_typeinfoisderivedfrom53
+ "
+Check if a type derived by extension from a list of a item type returns true
+when asked if it derives by extension from anySimpleType.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'typeinfo').
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anySimpleType' method:2.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom54
+ "
+Check if a type derived by extension from a list of a item type returns true
+when asked if it derives by list from anySimpleType.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'typeinfo').
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anySimpleType' method:8.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom55
+ "
+Check if a type derived by extension from a list of a item type returns true
+when asked if it derives by extension from anyType type.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'typeinfo').
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:2.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom56
+ "
+Check if a type derived by extension from a list of a item type returns true
+when asked if it derives by extension from anyType.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'typeinfo').
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:2.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom57
+ "
+Check if a type derived by extension from a list of a item type returns true
+when asked if it derives by list from anyType.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'typeinfo').
+ elemList := doc getElementsByTagName: 'acronym'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'anyType' method:8.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom58
+ "
+Check if a type derived by extension from a union returns true
+when asked if it derives by union from a member type of the union.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ codeElem "Element"
+ attr "Attr"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'typeinfo').
+ elemList := doc getElementsByTagName: 'code'.
+ codeElem := elemList item:0.
+ typeInfo := codeElem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'unbounded' method:4.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom59
+ "
+Check if a type derived by extension from a union returns true
+when asked if it derives by union from a restricted base of
+a member of type union.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ codeElem "Element"
+ attr "Attr"
+ elem "Element"
+ elemName "String"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'typeinfo').
+ elemList := doc getElementsByTagName: 'code'.
+ codeElem := elemList item:0.
+ typeInfo := codeElem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'integer' method:4.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom60
+ "
+Check if xs:IDREFS is derived by list from xs:IDREF.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ attr "Attr"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'typeinfo').
+ elemList := doc getElementsByTagName: 'strong'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'IDREF' method:8.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom61
+ "
+Check if xs:byte is derived by restriction from xs:short
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'typeinfo').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'short' method:1.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom62
+ "
+Check if xs:byte is derived by restriction from xs:decimal
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ elem "Element"
+ typeInfo "TypeInfo"
+ isDerived "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'typeinfo').
+ elemList := doc getElementsByTagName: 'em'.
+ elem := elemList item:0.
+ typeInfo := elem schemaTypeInfo.
+ self assert: typeInfo notNil.
+ isDerived := typeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'decimal' method:1.
+ self assert: isDerived.
+
+!
+
+test_typeinfoisderivedfrom63
+ "
+ The isDerivedFrom method checks if this TypeInfo derives from the specified ancestor type.
+ If the document's schema is a DTD or no schema is associated with the document, this method
+ will always return false.
+
+ Get schemaTypeInfo on an element that belongs to a document with an XML DTD. Invoke method
+ isDerivedFrom and verify that returned the typeNamespace is null.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elemList "NodeList"
+ acronymElem "Element"
+ retValue "Boolean"
+ typeNamespace "String"
+ nullName "String"
+ elemTypeInfo "TypeInfo"
+ |
+ ^self. "Validation not supported"
+ nullName := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acronymElem := elemList item:0.
+ elemTypeInfo := acronymElem schemaTypeInfo.
+ retValue := elemTypeInfo isDerivedFromNS:'http://www.w3.org/TR/REC-xml' name:nullName method:0.
+ self deny: retValue.
+
+!
+
+test_typeinfoisderivedfrom64
+ "
+Check that the simpleType of an attributes derives by restriction from itself
+and from its base type.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ elemList "NodeList"
+ acElem "Element"
+ classAttr "Attr"
+ attrTypeInfo "TypeInfo"
+ typeName "String"
+ retValue "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'acronym'.
+ acElem := elemList item:1.
+ classAttr := acElem getAttributeNode:'class'.
+ attrTypeInfo := classAttr schemaTypeInfo.
+ retValue := attrTypeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'classType' method:1.
+ self assert: retValue.
+ retValue := attrTypeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'string' method:1.
+ self assert: retValue.
+
+!
+
+test_typeinfoisderivedfrom65
+ "
+ The isDerivedFrom method checks if this TypeInfo derives from the specified ancestor type.
+
+ Get schemaTypeInfo on a simple type attribute that belongs to a document with an XML schema.
+ Invoke method isDerivedFrom with derivation method list and verify that the value returned is true.
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ docElem "Element"
+ elemTypeInfo "Element"
+ elemList "NodeList"
+ strongElem "Element"
+ attrTypeInfo "TypeInfo"
+ typeName "String"
+ retValue "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'strong'.
+ strongElem := elemList item:0.
+ elemTypeInfo := strongElem schemaTypeInfo.
+ retValue := elemTypeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'string' method:8.
+ self assert: retValue.
+
+!
+
+test_typeinfoisderivedfrom66
+ "
+ The isDerivedFrom method checks if this TypeInfo derives from the specified ancestor type.
+
+ Get schemaTypeInfo on an element of type Union that belongs to a document with an XML schema.
+ Invoke method isDerivedFrom with derivation method union and verify that the value returned is true.
+ Verify that emType is derived from emp0004_5Type by union.
+
+
+ Creator: IBM
+ Autor Jenny Hsu
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ unionElem "Element"
+ elemTypeInfo "TypeInfo"
+ typeName "String"
+ elemList "NodeList"
+ retValue "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ ^self. "Validation not supported"
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'em'.
+ unionElem := elemList item:0.
+ elemTypeInfo := unionElem schemaTypeInfo.
+ retValue := elemTypeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'emp0004_5Type' method:0.
+ self assert: retValue.
+
+!
+
+test_typeinfoisderivedfrom67
+ "
+Checks that isDerivedFrom(...,METHOD_UNION) returns true when there
+are multiple union derivation steps between the target and
+ancestor type.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemTypeInfo "TypeInfo"
+ typeName "String"
+ elemList "NodeList"
+ retValue "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ ^self. "Validation not supported"
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'sup'.
+ elem := elemList item:0.
+ elemTypeInfo := elem schemaTypeInfo.
+ retValue := elemTypeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'emp0004_5Type' method:4.
+ self assert: retValue.
+
+!
+
+test_typeinfoisderivedfrom68
+ "
+Checks that isDerivedFrom(...,0) returns true when there
+is more than one union derivation steps between the target and
+ancestor type.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemTypeInfo "TypeInfo"
+ typeName "String"
+ elemList "NodeList"
+ retValue "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ ^self. "Validation not supported"
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'sup'.
+ elem := elemList item:0.
+ elemTypeInfo := elem schemaTypeInfo.
+ retValue := elemTypeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'emp0004_5Type' method:0.
+ self assert: retValue.
+
+!
+
+test_typeinfoisderivedfrom69
+ "
+Checks that isDerivedFrom(...,DERIVATION_UNION|DERIVATION_LIST) returns false when there
+is both a union and list derivation steps between the target and
+ancestor type.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemTypeInfo "TypeInfo"
+ typeName "String"
+ elemList "NodeList"
+ retValue "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ ^self. "Validation not supported"
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'sup'.
+ elem := elemList item:0.
+ elemTypeInfo := elem schemaTypeInfo.
+ retValue := elemTypeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'integer' method:12.
+ self deny: retValue.
+
+!
+
+test_typeinfoisderivedfrom70
+ "
+Checks that isDerivedFrom(...,0) returns true when there
+is both a union and list derivation steps between the target and
+ancestor type.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemTypeInfo "TypeInfo"
+ typeName "String"
+ elemList "NodeList"
+ retValue "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ ^self. "Validation not supported"
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'sup'.
+ elem := elemList item:0.
+ elemTypeInfo := elem schemaTypeInfo.
+ retValue := elemTypeInfo isDerivedFromNS:'http://www.w3.org/2001/XMLSchema' name:'string' method:0.
+ self assert: retValue.
+
+!
+
+test_typeinfoisderivedfrom71
+ "
+Checks that isDerivedFrom(...,0) returns true when target type is a list
+of an union of the ancestor type.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemTypeInfo "TypeInfo"
+ typeName "String"
+ elemList "NodeList"
+ retValue "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ ^self. "Validation not supported"
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'code'.
+ elem := elemList item:0.
+ elemTypeInfo := elem schemaTypeInfo.
+ retValue := elemTypeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'field' method:0.
+ self assert: retValue.
+
+!
+
+test_typeinfoisderivedfrom72
+ "
+Checks that isDerivedFrom(...,DERIVATION_LIST|DERIVATION_UNION) returns false when target type is a list
+of an union.
+ancestor type.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemTypeInfo "TypeInfo"
+ typeName "String"
+ elemList "NodeList"
+ retValue "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ ^self. "Validation not supported"
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'code'.
+ elem := elemList item:0.
+ elemTypeInfo := elem schemaTypeInfo.
+ retValue := elemTypeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'field' method:12.
+ self deny: retValue.
+
+!
+
+test_typeinfoisderivedfrom73
+ "
+Checks that isDerivedFrom(...,0) returns true where the target type is a union
+where the ancestor type is a member of the union and is a union itself.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#TypeInfo-isDerivedFrom
+ "
+ |
+ doc "Document"
+ elem "Element"
+ elemTypeInfo "TypeInfo"
+ typeName "String"
+ elemList "NodeList"
+ retValue "Boolean"
+ |
+ ^self. "Schema validation not supported"
+ ^self. "Validation not supported"
+ "implementationAttribute not supported: namespaceAware"
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'hc_staff').
+ elemList := doc getElementsByTagName: 'sup'.
+ elem := elemList item:0.
+ elemTypeInfo := elem schemaTypeInfo.
+ retValue := elemTypeInfo isDerivedFromNS:'http://www.w3.org/1999/xhtml' name:'emType' method:0.
+ self assert: retValue.
+
+!
+
+test_userdatahandler01
+ "
+Call setUserData on a node providing a UserDataHandler and rename the node.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-handleUserDataEvent
+ "
+ |
+ doc "Document"
+ node "Node"
+ pList "NodeList"
+ userDataMonitor "UserDataMonitor"
+ oldUserData "DOMUserData"
+ elementNS "String"
+ newNode "Node"
+ notifications "List"
+ notification "UserDataNotification"
+ operation "short"
+ key "String"
+ data "String"
+ src "Node"
+ dst "Node"
+ greetingCount "SmallInteger"
+ salutationCount "SmallInteger"
+ hello "String"
+ mister "String"
+ |
+ greetingCount := 0.
+ salutationCount := 0.
+ hello := 'Hello'.
+ mister := 'Mr.'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ pList := doc getElementsByTagName: 'p'.
+ node := pList item:0.
+ oldUserData := node setUserData:hello handler: userDataMonitor forKey:'greeting'.
+ oldUserData := node setUserData:mister handler: userDataMonitor forKey:'salutation'.
+ elementNS := node namespaceURI.
+ newNode := doc renameNode:node namespaceUri:elementNS qualifiedName:'div'.
+ self assert:false description:'Method "allNotifications" is not supported yet'.
+ self assert: notifications size = 2.
+notifications do: [notification|
+ self assert:false description:'Method "operation" is not supported yet'.
+ self assert: ( operation = 4 ).
+ self assert:false description:'Method "key" is not supported yet'.
+ data := notification data.
+ "if"
+ ( key = 'greeting' ) ifTrue: [
+ ].
+ self assert:false description:'Method "src" is not supported yet'.
+ self assert: src == node.
+ self assert:false description:'Method "dst" is not supported yet'.
+ "if"
+ ( dst isNil ) ifTrue: [
+ ].
+].
+ self assert: ( greetingCount = 1 ).
+ self assert: ( salutationCount = 1 ).
+
+!
+
+test_userdatahandler02
+ "
+Call setUserData on a node providing a UserDataHandler and clone the node.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-handleUserDataEvent
+ "
+ |
+ doc "Document"
+ node "Node"
+ pList "NodeList"
+ userDataMonitor "UserDataMonitor"
+ oldUserData "DOMUserData"
+ elementNS "String"
+ newNode "Node"
+ notifications "List"
+ notification "UserDataNotification"
+ operation "short"
+ key "String"
+ data "String"
+ src "Node"
+ dst "Node"
+ greetingCount "SmallInteger"
+ salutationCount "SmallInteger"
+ hello "String"
+ mister "String"
+ |
+ greetingCount := 0.
+ salutationCount := 0.
+ hello := 'Hello'.
+ mister := 'Mr.'.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ pList := doc getElementsByTagName: 'p'.
+ node := pList item:0.
+ oldUserData := node setUserData:hello handler: userDataMonitor forKey:'greeting'.
+ oldUserData := node setUserData:mister handler: userDataMonitor forKey:'salutation'.
+ elementNS := node namespaceURI.
+ newNode := node cloneNode:true.
+ self assert:false description:'Method "allNotifications" is not supported yet'.
+ self assert: notifications size = 2.
+notifications do: [notification|
+ self assert:false description:'Method "operation" is not supported yet'.
+ self assert: ( operation = 1 ).
+ self assert:false description:'Method "key" is not supported yet'.
+ data := notification data.
+ "if"
+ ( key = 'greeting' ) ifTrue: [
+ ].
+ self assert:false description:'Method "src" is not supported yet'.
+ self assert: src == node.
+ self assert:false description:'Method "dst" is not supported yet'.
+ self assert: dst == newNode.
+].
+ self assert: ( greetingCount = 1 ).
+ self assert: ( salutationCount = 1 ).
+
+!
+
+test_userdatahandler03
+ "
+Call setUserData on a node providing a UserDataHandler and import the node.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-handleUserDataEvent
+ "
+ |
+ doc "Document"
+ node "Node"
+ pList "NodeList"
+ userDataMonitor "UserDataMonitor"
+ oldUserData "DOMUserData"
+ elementNS "String"
+ newNode "Node"
+ notifications "List"
+ notification "UserDataNotification"
+ operation "short"
+ key "String"
+ data "String"
+ src "Node"
+ dst "Node"
+ greetingCount "SmallInteger"
+ salutationCount "SmallInteger"
+ hello "String"
+ mister "String"
+ newDoc "Document"
+ rootName "String"
+ rootNS "String"
+ domImpl "DOMImplementation"
+ docType "DocumentType"
+ docElem "Element"
+ |
+ greetingCount := 0.
+ salutationCount := 0.
+ hello := 'Hello'.
+ mister := 'Mr.'.
+ docType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: docType.
+ pList := doc getElementsByTagName: 'p'.
+ node := pList item:0.
+ oldUserData := node setUserData:hello handler: userDataMonitor forKey:'greeting'.
+ oldUserData := node setUserData:mister handler: userDataMonitor forKey:'salutation'.
+ elementNS := node namespaceURI.
+ newNode := doc importNode:node deep:true.
+ self assert:false description:'Method "allNotifications" is not supported yet'.
+ self assert: notifications size = 2.
+notifications do: [notification|
+ self assert:false description:'Method "operation" is not supported yet'.
+ self assert: ( operation = 2 ).
+ self assert:false description:'Method "key" is not supported yet'.
+ data := notification data.
+ "if"
+ ( key = 'greeting' ) ifTrue: [
+ ].
+ self assert:false description:'Method "src" is not supported yet'.
+ self assert: src == node.
+ self assert:false description:'Method "dst" is not supported yet'.
+ self assert: dst == newNode.
+].
+ self assert: ( greetingCount = 1 ).
+ self assert: ( salutationCount = 1 ).
+
+!
+
+test_userdatahandler04
+ "
+Call setUserData on a node providing a UserDataHandler and adopt the node.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#ID-handleUserDataEvent
+ "
+ |
+ doc "Document"
+ node "Node"
+ pList "NodeList"
+ userDataMonitor "UserDataMonitor"
+ oldUserData "DOMUserData"
+ elementNS "String"
+ newNode "Node"
+ notifications "List"
+ notification "UserDataNotification"
+ operation "short"
+ key "String"
+ data "String"
+ src "Node"
+ dst "Node"
+ greetingCount "SmallInteger"
+ salutationCount "SmallInteger"
+ hello "String"
+ mister "String"
+ newDoc "Document"
+ rootName "String"
+ rootNS "String"
+ domImpl "DOMImplementation"
+ docType "DocumentType"
+ docElem "Element"
+ |
+ greetingCount := 0.
+ salutationCount := 0.
+ hello := 'Hello'.
+ mister := 'Mr.'.
+ docType := nil.
+ doc := Parser forDOM3 processDocumentInFilename:(self xmlFilenameFor:'barfoo').
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ docElem := doc documentElement.
+ rootNS := docElem namespaceURI.
+ rootName := docElem tagName.
+ newDoc := domImpl createDocumentNS: rootNS qualifiedName: rootName doctype: docType.
+ pList := doc getElementsByTagName: 'p'.
+ node := pList item:0.
+ oldUserData := node setUserData:hello handler: userDataMonitor forKey:'greeting'.
+ oldUserData := node setUserData:mister handler: userDataMonitor forKey:'salutation'.
+ elementNS := node namespaceURI.
+ newNode := doc adoptNode: node.
+ self assert:false description:'Method "allNotifications" is not supported yet'.
+ self assert: notifications size = 2.
+notifications do: [notification|
+ self assert:false description:'Method "operation" is not supported yet'.
+ self assert: ( operation = 5 ).
+ self assert:false description:'Method "key" is not supported yet'.
+ data := notification data.
+ "if"
+ ( key = 'greeting' ) ifTrue: [
+ ].
+ self assert:false description:'Method "src" is not supported yet'.
+ self assert: src == node.
+ self assert:false description:'Method "dst" is not supported yet'.
+ self assert: dst isNil.
+].
+ self assert: ( greetingCount = 1 ).
+ self assert: ( salutationCount = 1 ).
+
+!
+
+test_wellformed01
+ "
+Create a document with an XML 1.1 valid but XML 1.0 invalid element and
+normalize document with well-formed set to true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-well-formed
+ "
+ |
+ domImpl "DOMImplementation"
+ nullString "String"
+ nullDoctype "DocumentType"
+ doc "Document"
+ elem "Element"
+ retval "Node"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ errors "List"
+ error "DOMError"
+ severity "SmallInteger"
+ type "String"
+ locator "DOMLocator"
+ relatedNode "Node"
+ |
+ nullString := nil.
+ nullDoctype := nil.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: nullString qualifiedName: nullString doctype: nullDoctype.
+ "assertDOMException..."
+ self should:[
+ elem := doc createElement:'LegalNameࢎ' ns:'http://www.example.org/domts/wellformed01'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException INVALID_CHARACTER_ERR).
+ "end of assertDOMException..."
+ "try"
+ [
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+ elem := doc createElement:'LegalNameࢎ' ns:'http://www.example.org/domts/wellformed01'.
+ retval := doc appendChild:elem.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'well-formed' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ errors := errorMonitor errors.
+errors do: [:error|
+ severity := error severity.
+ self assert: ( severity = 2 ).
+ type := error type.
+ self assert: ( type = 'wf-invalid-character-in-node-name' ).
+ locator := error location.
+ relatedNode := locator relatedNode.
+ self assert: relatedNode == elem.
+].
+ self assert: errors size = 1.
+
+!
+
+test_wellformed02
+ "
+Create a document with an XML 1.1 valid but XML 1.0 invalid element and
+normalize document with well-formed set to false.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-well-formed
+ "
+ |
+ domImpl "DOMImplementation"
+ nullString "String"
+ nullDoctype "DocumentType"
+ doc "Document"
+ elem "Element"
+ retval "Node"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ errors "List"
+ canSet "Boolean"
+ |
+ nullString := nil.
+ nullDoctype := nil.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: nullString qualifiedName: nullString doctype: nullDoctype.
+ "assertDOMException..."
+ self should:[
+ elem := doc createElement:'LegalNameࢎ' ns:'http://www.example.org/domts/wellformed02'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException INVALID_CHARACTER_ERR).
+ "end of assertDOMException..."
+ "try"
+ [
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+ elem := doc createElement:'LegalNameࢎ' ns:'http://www.example.org/domts/wellformed02'.
+ retval := doc appendChild:elem.
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'well-formed' value: false.
+ "if"
+ (canSet) ifTrue: [
+ ].
+
+!
+
+test_wellformed03
+ "
+Create a document with an XML 1.1 valid but XML 1.0 invalid attribute and
+normalize document with well-formed set to true.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-well-formed
+ "
+ |
+ domImpl "DOMImplementation"
+ nullDoctype "DocumentType"
+ doc "Document"
+ docElem "Element"
+ attr "Attr"
+ retval "Node"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ errors "List"
+ error "DOMError"
+ severity "SmallInteger"
+ type "String"
+ locator "DOMLocator"
+ relatedNode "Node"
+ |
+ nullDoctype := nil.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDoctype.
+ docElem := doc documentElement.
+ "assertDOMException..."
+ self should:[
+ attr := doc createAttribute:'LegalNameࢎ'.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException INVALID_CHARACTER_ERR).
+ "end of assertDOMException..."
+ "try"
+ [
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+ docElem setAttribute:'LegalNameࢎ' value:'foo'.
+ attr := docElem getAttributeNode:'LegalNameࢎ'.
+ domConfig := doc domConfig.
+ domConfig setParameter: 'well-formed' value: true.
+ domConfig setParameter: 'error-handler' value: errorMonitor.
+ doc normalizeDocument.
+ errors := errorMonitor errors.
+errors do: [:error|
+ severity := error severity.
+ self assert: ( severity = 2 ).
+ type := error type.
+ self assert: ( type = 'wf-invalid-character-in-node-name' ).
+ locator := error location.
+ relatedNode := locator relatedNode.
+ self assert: relatedNode == attr.
+].
+ self assert: errors size = 1.
+
+!
+
+test_wellformed04
+ "
+Create a document with an XML 1.1 valid but XML 1.0 invalid attribute and
+normalize document with well-formed set to false.
+
+ Creator: Curt Arnold
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
+ Subject http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-well-formed
+ "
+ |
+ domImpl "DOMImplementation"
+ nullDoctype "DocumentType"
+ doc "Document"
+ docElem "Element"
+ attr "Attr"
+ retval "Node"
+ domConfig "DOMConfiguration"
+ errorMonitor "DOMErrorMonitor"
+ errors "List"
+ error "DOMError"
+ canSet "Boolean"
+ nullNS "String"
+ |
+ nullDoctype := nil.
+ nullNS := nil.
+ domImpl := DOMImplementationRegistry getDOMImplementation:'XML 3.0'.
+ doc := domImpl createDocumentNS: 'http://www.w3.org/1999/xhtml' qualifiedName: 'html' doctype: nullDoctype.
+ docElem := doc documentElement.
+ "assertDOMException..."
+ self should:[
+ attr := doc createAttribute:'LegalNameࢎ' ns:nullNS.
+ ] raise: DOMException.
+ self assert: (lastException code == DOMException INVALID_CHARACTER_ERR).
+ "end of assertDOMException..."
+ "try"
+ [
+ ] on: DOMException do: [:ex| ].
+ "end of try"
+ docElem setAttribute: 'LegalNameࢎ' ns: nullNS value: 'foo'.
+ domConfig := doc domConfig.
+ canSet := domConfig canSetParameter: 'well-formed' value: false.
+ "if"
+ (canSet) ifTrue: [
+ self assert: error isNil.
+ ].
+
+! !
+
+!W3CDOM3CoreTests class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /opt/data/cvs/stx/goodies/xmlsuite/XMLv2__W3CDOM3CoreTests.st,v 1.6 2007-01-03 19:45:04 stillj1 Exp $'
+!
+
+version_SVN
+ ^ '$Id$'
+! !