Tue, 06 Jan 2015 21:39:09 +0100
Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.
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 type="text/javascript" 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 }
19 var docsLoaded = -1000000;
20 var builder = null;
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();
39 docsLoaded = 0;
41 var docRef = null;
42 if (typeof(this.doc) != 'undefined') {
43 docRef = this.doc;
44 }
45 docsLoaded += preload(docRef, "doc", "staff");
47 if (docsLoaded == 1) {
48 setUpPage = 'complete';
49 }
50 } catch(ex) {
51 catchInitializationError(builder, ex);
52 setUpPage = 'complete';
53 }
54 }
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 }
72 var docName = 'nodereplacechildnewchildexists';
76 window.doc = window;
77 SimpleTest.waitForExplicitFinish();
78 addLoadEvent(setUpPage);
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.
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;
102 var newChild = null;
104 var childName;
105 var childNode;
106 var length;
107 var actual = new Array();
109 var expected = new Array();
111 expectedWithoutWhitespace = new Array();
112 expectedWithoutWhitespace[0] = "name";
113 expectedWithoutWhitespace[1] = "position";
114 expectedWithoutWhitespace[2] = "salary";
115 expectedWithoutWhitespace[3] = "gender";
116 expectedWithoutWhitespace[4] = "employeeId";
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";
132 var replacedChild;
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;
143 length = childList.length;
146 if(
147 (13 == length)
148 ) {
149 newChild = childList.item(1);
150 oldChild = childList.item(11);
151 expected = expectedWithWhitespace;
153 }
155 else {
156 newChild = childList.item(0);
157 oldChild = childList.item(5);
158 expected = expectedWithoutWhitespace;
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;
167 actual[actual.length] = childName;
169 }
170 assertEqualsList("childNames",expected,actual);
172 }
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>