dom/tests/mochitest/dom-level1-core/test_nodereplacechildnewchildexists.html

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

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>

mercurial