1 2 /* 3 Copyright 2001-2004 World Wide Web Consortium, 4 (Massachusetts Institute of Technology, European Research Consortium 5 for Informatics and Mathematics, Keio University). All 6 Rights Reserved. This work is distributed under the W3C Software License [1] in the 7 hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9 10 [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 11 */ 12 13 14 15 /** 16 * Gets URI that identifies the test. 17 * @return uri identifier of test 18 */ 19 function getTargetURI() { 20 return "http://www.w3.org/2001/DOM-Test-Suite/level3/core/documentadoptnode02"; 21 } 22 23 var docsLoaded = -1000000; 24 var builder = null; 25 26 // 27 // This function is called by the testing framework before 28 // running the test suite. 29 // 30 // If there are no configuration exceptions, asynchronous 31 // document loading is started. Otherwise, the status 32 // is set to complete and the exception is immediately 33 // raised when entering the body of the test. 34 // 35 function setUpPage() { 36 setUpPageStatus = 'running'; 37 try { 38 // 39 // creates test document builder, may throw exception 40 // 41 builder = createConfiguredBuilder(); 42 43 docsLoaded = 0; 44 45 var docRef = null; 46 if (typeof(this.doc) != 'undefined') { 47 docRef = this.doc; 48 } 49 docsLoaded += preload(docRef, "doc", "hc_staff"); 50 51 if (docsLoaded == 1) { 52 setUpPageStatus = 'complete'; 53 } 54 } catch(ex) { 55 catchInitializationError(builder, ex); 56 setUpPageStatus = 'complete'; 57 } 58 } 59 60 61 62 // 63 // This method is called on the completion of 64 // each asychronous load started in setUpTests. 65 // 66 // When every synchronous loaded document has completed, 67 // the page status is changed which allows the 68 // body of the test to be executed. 69 function loadComplete() { 70 if (++docsLoaded == 1) { 71 setUpPageStatus = 'complete'; 72 } 73 } 74 75 76 /** 77 * 78 Adopt the class attribute node of the fourth acronym element. Check if this attribute has been adopted 79 successfully by verifying the nodeName, nodeType, ownerElement, specified attributes and child nodes 80 of the adopted node. 81 82 * @author IBM 83 * @author Neil Delima 84 * @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-adoptNode 85 */ 86 function documentadoptnode02() { 87 var success; 88 if(checkInitialization(builder, "documentadoptnode02") != null) return; 89 var doc; 90 var newDoc; 91 var domImpl; 92 var attrOwnerElem; 93 var element; 94 var attr; 95 var childList; 96 var adoptedclass; 97 var attrsParent; 98 var nodeName; 99 var nodeType; 100 var nodeValue; 101 var isSpecified; 102 var nullDocType = null; 103 104 var firstChild; 105 var firstChildValue; 106 var secondChild; 107 var secondChildType; 108 var secondChildName; 109 var docElem; 110 var rootNS; 111 var rootName; 112 113 var docRef = null; 114 if (typeof(this.doc) != 'undefined') { 115 docRef = this.doc; 116 } 117 doc = load(docRef, "doc", "hc_staff"); 118 docElem = doc.documentElement; 119 120 rootName = docElem.tagName; 121 122 rootNS = docElem.namespaceURI; 123 124 domImpl = doc.implementation; 125 newDoc = domImpl.createDocument(rootNS,rootName,nullDocType); 126 childList = doc.getElementsByTagName("acronym"); 127 element = childList.item(3); 128 attr = element.getAttributeNode("class"); 129 adoptedclass = newDoc.adoptNode(attr); 130 131 if( 132 133 (adoptedclass != null) 134 135 ) { 136 nodeName = adoptedclass.nodeName; 137 138 nodeValue = adoptedclass.nodeValue; 139 140 nodeType = adoptedclass.nodeType; 141 142 attrOwnerElem = adoptedclass.ownerElement; 143 144 isSpecified = adoptedclass.specified; 145 146 assertEquals("documentadoptnode02_nodeName","class",nodeName); 147 assertEquals("documentadoptnode02_nodeType",2,nodeType); 148 assertNull("documentadoptnode02_ownerDoc",attrOwnerElem); 149 assertTrue("documentadoptnode02_specified",isSpecified); 150 firstChild = adoptedclass.firstChild; 151 152 assertNotNull("firstChildNotNull",firstChild); 153 firstChildValue = firstChild.nodeValue; 154 155 156 if( 157 ("Y" == firstChildValue) 158 ) { 159 secondChild = firstChild.nextSibling; 160 161 assertNotNull("secondChildNotNull",secondChild); 162 secondChildType = secondChild.nodeType; 163 164 assertEquals("secondChildIsEntityReference",5,secondChildType); 165 secondChildName = secondChild.nodeName; 166 167 assertEquals("secondChildIsEnt1Reference","alpha",secondChildName); 168 169 } 170 171 else { 172 assertEquals("documentadoptnode02_nodeValue","Y",nodeValue); 173 174 } 175 176 } 177 178 } 179 180 181 182 183 function runTest() { 184 documentadoptnode02(); 185 } 186