test_nodereplacechildnewchildexists.html (5678B)
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> 2 <html> 3 <head> 4 <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 6 <title>http://www.w3.org/2001/DOM-Test-Suite/level1/core/nodereplacechildnewchildexists</title> 7 <link href="activity-home.css" rel="stylesheet" type="text/css"> 8 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"> 9 <script src="/tests/SimpleTest/SimpleTest.js"></script> 10 <script type="text/javascript" src="DOMTestCase.js"></script> 11 <script type="text/javascript" src="exclusions.js"></script> 12 <script type="text/javascript"> 13 // expose test function names 14 function exposeTestFunctionNames() 15 { 16 return ['nodereplacechildnewchildexists']; 17 } 18 19 var docsLoaded = -1000000; 20 var builder = null; 21 22 // 23 // This function is called by the testing framework before 24 // running the test suite. 25 // 26 // If there are no configuration exceptions, asynchronous 27 // document loading is started. Otherwise, the status 28 // is set to complete and the exception is immediately 29 // raised when entering the body of the test. 30 // 31 function setUpPage() { 32 setUpPageStatus = 'running'; 33 try { 34 // 35 // creates test document builder, may throw exception 36 // 37 builder = createConfiguredBuilder(); 38 39 docsLoaded = 0; 40 41 var docRef = null; 42 if (typeof(this.doc) != 'undefined') { 43 docRef = this.doc; 44 } 45 docsLoaded += preload(docRef, "doc", "staff"); 46 47 if (docsLoaded == 1) { 48 setUpPage = 'complete'; 49 } 50 } catch(ex) { 51 catchInitializationError(builder, ex); 52 setUpPage = 'complete'; 53 } 54 } 55 56 // 57 // This method is called on the completion of 58 // each asychronous load started in setUpTests. 59 // 60 // When every synchronous loaded document has completed, 61 // the page status is changed which allows the 62 // body of the test to be executed. 63 function loadComplete() { 64 if (++docsLoaded == 1) { 65 setUpPageStatus = 'complete'; 66 runJSUnitTests(); 67 markTodos(); 68 SimpleTest.finish(); 69 } 70 } 71 72 var docName = 'nodereplacechildnewchildexists'; 73 74 75 76 window.doc = window; 77 SimpleTest.waitForExplicitFinish(); 78 addLoadEvent(setUpPage); 79 80 81 /** 82 * 83 Retrieve the second employee and replace its TWELFTH 84 child(address) with its SECOND child(employeeId). After the 85 replacement the second child should now be the one that used 86 to be at the third position and the TWELFTH child should be the 87 one that used to be at the SECOND position. 88 89 * @author NIST 90 * @author Mary Brady 91 * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307 92 */ 93 function nodereplacechildnewchildexists() { 94 var success; 95 if(checkInitialization(builder, "nodereplacechildnewchildexists") != null) return; 96 var doc; 97 var elementList; 98 var employeeNode; 99 var childList; 100 var oldChild = null; 101 102 var newChild = null; 103 104 var childName; 105 var childNode; 106 var length; 107 var actual = new Array(); 108 109 var expected = new Array(); 110 111 expectedWithoutWhitespace = new Array(); 112 expectedWithoutWhitespace[0] = "name"; 113 expectedWithoutWhitespace[1] = "position"; 114 expectedWithoutWhitespace[2] = "salary"; 115 expectedWithoutWhitespace[3] = "gender"; 116 expectedWithoutWhitespace[4] = "employeeId"; 117 118 expectedWithWhitespace = new Array(); 119 expectedWithWhitespace[0] = "#text"; 120 expectedWithWhitespace[1] = "#text"; 121 expectedWithWhitespace[2] = "name"; 122 expectedWithWhitespace[3] = "#text"; 123 expectedWithWhitespace[4] = "position"; 124 expectedWithWhitespace[5] = "#text"; 125 expectedWithWhitespace[6] = "salary"; 126 expectedWithWhitespace[7] = "#text"; 127 expectedWithWhitespace[8] = "gender"; 128 expectedWithWhitespace[9] = "#text"; 129 expectedWithWhitespace[10] = "employeeId"; 130 expectedWithWhitespace[11] = "#text"; 131 132 var replacedChild; 133 134 var docRef = null; 135 if (typeof(this.doc) != 'undefined') { 136 docRef = this.doc; 137 } 138 doc = load(docRef, "doc", "staff"); 139 elementList = doc.getElementsByTagName("employee"); 140 employeeNode = elementList.item(1); 141 childList = employeeNode.childNodes; 142 143 length = childList.length; 144 145 146 if( 147 (13 == length) 148 ) { 149 newChild = childList.item(1); 150 oldChild = childList.item(11); 151 expected = expectedWithWhitespace; 152 153 } 154 155 else { 156 newChild = childList.item(0); 157 oldChild = childList.item(5); 158 expected = expectedWithoutWhitespace; 159 160 } 161 replacedChild = employeeNode.replaceChild(newChild,oldChild); 162 assertSame("return_value_same",oldChild,replacedChild); 163 for(var indexN65758 = 0;indexN65758 < childList.length; indexN65758++) { 164 childNode = childList.item(indexN65758); 165 childName = childNode.nodeName; 166 167 actual[actual.length] = childName; 168 169 } 170 assertEqualsList("childNames",expected,actual); 171 172 } 173 174 </script> 175 </head> 176 <body> 177 <h2>Test http://www.w3.org/2001/DOM-Test-Suite/level1/core/nodereplacechildnewchildexists</h2> 178 <p></p> 179 <p> 180 Copyright (c) 2001-2004 World Wide Web Consortium, 181 (Massachusetts Institute of Technology, European Research Consortium 182 for Informatics and Mathematics, Keio University). All 183 Rights Reserved. This work is distributed under the <a href="http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231">W3C(r) Software License</a> in the 184 hope that it will be useful, but WITHOUT ANY WARRANTY; without even 185 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 186 </p> 187 </body> 188 </html>