1 2/* 3Copyright © 2001-2004 World Wide Web Consortium, 4(Massachusetts Institute of Technology, European Research Consortium 5for Informatics and Mathematics, Keio University). All 6Rights Reserved. This work is distributed under the W3C® Software License [1] in the 7hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8the 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 */ 19function getTargetURI() { 20 return "http://www.w3.org/2001/DOM-Test-Suite/level3/core/documentadoptnode02"; 21 } 22 23var docsLoaded = -1000000; 24var 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// 35function 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. 69function 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*/ 86function 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; 125newDoc = 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); 150firstChild = adoptedclass.firstChild; 151 152 assertNotNull("firstChildNotNull",firstChild); 153firstChildValue = firstChild.nodeValue; 154 155 156 if( 157 ("Y" == firstChildValue) 158 ) { 159 secondChild = firstChild.nextSibling; 160 161 assertNotNull("secondChildNotNull",secondChild); 162secondChildType = 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 183function runTest() { 184 documentadoptnode02(); 185} 186