1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/tests/mochitest/dom-level1-core/test_nodeinsertbeforenewchildexists.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,191 @@ 1.4 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> 1.5 +<html> 1.6 +<head> 1.7 +<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> 1.8 +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 1.9 +<title>http://www.w3.org/2001/DOM-Test-Suite/level1/core/nodeinsertbeforenewchildexists</title> 1.10 +<link href="activity-home.css" rel="stylesheet" type="text/css"> 1.11 +<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"> 1.12 +<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> 1.13 +<script type="text/javascript" src="DOMTestCase.js"></script> 1.14 +<script type="text/javascript" src="exclusions.js"></script> 1.15 +<script type="text/javascript"> 1.16 +// expose test function names 1.17 +function exposeTestFunctionNames() 1.18 +{ 1.19 +return ['nodeinsertbeforenewchildexists']; 1.20 +} 1.21 + 1.22 +var docsLoaded = -1000000; 1.23 +var builder = null; 1.24 + 1.25 +// 1.26 +// This function is called by the testing framework before 1.27 +// running the test suite. 1.28 +// 1.29 +// If there are no configuration exceptions, asynchronous 1.30 +// document loading is started. Otherwise, the status 1.31 +// is set to complete and the exception is immediately 1.32 +// raised when entering the body of the test. 1.33 +// 1.34 +function setUpPage() { 1.35 + setUpPageStatus = 'running'; 1.36 + try { 1.37 + // 1.38 + // creates test document builder, may throw exception 1.39 + // 1.40 + builder = createConfiguredBuilder(); 1.41 + 1.42 + docsLoaded = 0; 1.43 + 1.44 + var docRef = null; 1.45 + if (typeof(this.doc) != 'undefined') { 1.46 + docRef = this.doc; 1.47 + } 1.48 + docsLoaded += preload(docRef, "doc", "staff"); 1.49 + 1.50 + if (docsLoaded == 1) { 1.51 + setUpPage = 'complete'; 1.52 + } 1.53 + } catch(ex) { 1.54 + catchInitializationError(builder, ex); 1.55 + setUpPage = 'complete'; 1.56 + } 1.57 +} 1.58 + 1.59 +// 1.60 +// This method is called on the completion of 1.61 +// each asychronous load started in setUpTests. 1.62 +// 1.63 +// When every synchronous loaded document has completed, 1.64 +// the page status is changed which allows the 1.65 +// body of the test to be executed. 1.66 +function loadComplete() { 1.67 + if (++docsLoaded == 1) { 1.68 + setUpPageStatus = 'complete'; 1.69 + runJSUnitTests(); 1.70 + markTodos(); 1.71 + SimpleTest.finish(); 1.72 + } 1.73 +} 1.74 + 1.75 +var docName = 'nodeinsertbeforenewchildexists'; 1.76 + 1.77 + 1.78 + 1.79 +window.doc = window; 1.80 +SimpleTest.waitForExplicitFinish(); 1.81 +addLoadEvent(setUpPage); 1.82 + 1.83 + 1.84 +/** 1.85 +* 1.86 + If the "newChild" is already in the tree, the 1.87 + "insertBefore(newChild,refChild)" method must first 1.88 + remove it before the insertion takes place. 1.89 + 1.90 + Insert a node Element ("employeeId") that is already 1.91 + present in the tree. The existing node should be 1.92 + removed first and the new one inserted. The node is 1.93 + inserted at a different position in the tree to assure 1.94 + that it was indeed inserted. 1.95 + 1.96 +* @author NIST 1.97 +* @author Mary Brady 1.98 +* @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727 1.99 +*/ 1.100 +function nodeinsertbeforenewchildexists() { 1.101 + var success; 1.102 + if(checkInitialization(builder, "nodeinsertbeforenewchildexists") != null) return; 1.103 + var doc; 1.104 + var elementList; 1.105 + var employeeNode; 1.106 + var childList; 1.107 + var refChild; 1.108 + var newChild; 1.109 + var child; 1.110 + var length; 1.111 + var childName; 1.112 + var insertedNode; 1.113 + expectedWhitespace = new Array(); 1.114 + expectedWhitespace[0] = "#text"; 1.115 + expectedWhitespace[1] = "#text"; 1.116 + expectedWhitespace[2] = "name"; 1.117 + expectedWhitespace[3] = "#text"; 1.118 + expectedWhitespace[4] = "position"; 1.119 + expectedWhitespace[5] = "#text"; 1.120 + expectedWhitespace[6] = "salary"; 1.121 + expectedWhitespace[7] = "#text"; 1.122 + expectedWhitespace[8] = "gender"; 1.123 + expectedWhitespace[9] = "#text"; 1.124 + expectedWhitespace[10] = "employeeId"; 1.125 + expectedWhitespace[11] = "address"; 1.126 + expectedWhitespace[12] = "#text"; 1.127 + 1.128 + expectedNoWhitespace = new Array(); 1.129 + expectedNoWhitespace[0] = "name"; 1.130 + expectedNoWhitespace[1] = "position"; 1.131 + expectedNoWhitespace[2] = "salary"; 1.132 + expectedNoWhitespace[3] = "gender"; 1.133 + expectedNoWhitespace[4] = "employeeId"; 1.134 + expectedNoWhitespace[5] = "address"; 1.135 + 1.136 + var expected = new Array(); 1.137 + 1.138 + var result = new Array(); 1.139 + 1.140 + 1.141 + var docRef = null; 1.142 + if (typeof(this.doc) != 'undefined') { 1.143 + docRef = this.doc; 1.144 + } 1.145 + doc = load(docRef, "doc", "staff"); 1.146 + elementList = doc.getElementsByTagName("employee"); 1.147 + employeeNode = elementList.item(1); 1.148 + childList = employeeNode.childNodes; 1.149 + 1.150 + length = childList.length; 1.151 + 1.152 + 1.153 + if( 1.154 + (6 == length) 1.155 + ) { 1.156 + expected = expectedNoWhitespace; 1.157 +refChild = childList.item(5); 1.158 + newChild = childList.item(0); 1.159 + 1.160 + } 1.161 + 1.162 + else { 1.163 + expected = expectedWhitespace; 1.164 +refChild = childList.item(11); 1.165 + newChild = childList.item(1); 1.166 + 1.167 + } 1.168 + insertedNode = employeeNode.insertBefore(newChild,refChild); 1.169 + for(var indexN65757 = 0;indexN65757 < childList.length; indexN65757++) { 1.170 + child = childList.item(indexN65757); 1.171 + childName = child.nodeName; 1.172 + 1.173 + result[result.length] = childName; 1.174 + 1.175 + } 1.176 + assertEqualsList("childNames",expected,result); 1.177 + 1.178 +} 1.179 + 1.180 +</script> 1.181 +</head> 1.182 +<body> 1.183 +<h2>Test http://www.w3.org/2001/DOM-Test-Suite/level1/core/nodeinsertbeforenewchildexists</h2> 1.184 +<p></p> 1.185 +<p> 1.186 +Copyright (c) 2001-2004 World Wide Web Consortium, 1.187 +(Massachusetts Institute of Technology, European Research Consortium 1.188 +for Informatics and Mathematics, Keio University). All 1.189 +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 1.190 +hope that it will be useful, but WITHOUT ANY WARRANTY; without even 1.191 +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.192 +</p> 1.193 +</body> 1.194 +</html>