dom/tests/mochitest/dom-level1-core/test_nodeclonenodetrue.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/nodeclonenodetrue</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 ['nodeclonenodetrue'];
    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 = 'nodeclonenodetrue';
    76 window.doc = window;  
    77 SimpleTest.waitForExplicitFinish();
    78 addLoadEvent(setUpPage);
    81 /**
    82 * 
    83     The "cloneNode(deep)" method returns a copy of the node
    84     and the subtree under it if deep=true.
    86     Retrieve the second employee and invoke the
    87     "cloneNode(deep)" method with deep=true.   The
    88     method should clone this node and the subtree under it.
    89     The NodeName of each child in the returned node is 
    90     checked to insure the entire subtree under the second
    91     employee was cloned.
    93 * @author NIST
    94 * @author Mary Brady
    95 * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4
    96 */
    97 function nodeclonenodetrue() {
    98    var success;
    99     if(checkInitialization(builder, "nodeclonenodetrue") != null) return;
   100     var doc;
   101       var elementList;
   102       var employeeNode;
   103       var childList;
   104       var clonedNode;
   105       var clonedList;
   106       var clonedChild;
   107       var clonedChildName;
   108       var length;
   109       var result = new Array();
   111       expectedWhitespace = new Array();
   112       expectedWhitespace[0] = "#text";
   113       expectedWhitespace[1] = "employeeId";
   114       expectedWhitespace[2] = "#text";
   115       expectedWhitespace[3] = "name";
   116       expectedWhitespace[4] = "#text";
   117       expectedWhitespace[5] = "position";
   118       expectedWhitespace[6] = "#text";
   119       expectedWhitespace[7] = "salary";
   120       expectedWhitespace[8] = "#text";
   121       expectedWhitespace[9] = "gender";
   122       expectedWhitespace[10] = "#text";
   123       expectedWhitespace[11] = "address";
   124       expectedWhitespace[12] = "#text";
   126       expectedNoWhitespace = new Array();
   127       expectedNoWhitespace[0] = "employeeId";
   128       expectedNoWhitespace[1] = "name";
   129       expectedNoWhitespace[2] = "position";
   130       expectedNoWhitespace[3] = "salary";
   131       expectedNoWhitespace[4] = "gender";
   132       expectedNoWhitespace[5] = "address";
   135       var docRef = null;
   136       if (typeof(this.doc) != 'undefined') {
   137         docRef = this.doc;
   138       }
   139       doc = load(docRef, "doc", "staff");
   140       elementList = doc.getElementsByTagName("employee");
   141       employeeNode = elementList.item(1);
   142       childList = employeeNode.childNodes;
   144       length = childList.length;
   146       clonedNode = employeeNode.cloneNode(true);
   147       clonedList = clonedNode.childNodes;
   149       for(var indexN65710 = 0;indexN65710 < clonedList.length; indexN65710++) {
   150       clonedChild = clonedList.item(indexN65710);
   151       clonedChildName = clonedChild.nodeName;
   153       result[result.length] = clonedChildName;
   155 	}
   157 	if(
   158 	(6 == length)
   159 	) {
   160 	assertEqualsList("nowhitespace",expectedNoWhitespace,result);
   162 	}
   164 		else {
   165 			assertEqualsList("whitespace",expectedWhitespace,result);
   167 		}
   169 }
   171 </script>
   172 </head>
   173 <body>
   174 <h2>Test http://www.w3.org/2001/DOM-Test-Suite/level1/core/nodeclonenodetrue</h2>
   175 <p></p>
   176 <p>
   177 Copyright (c) 2001-2004 World Wide Web Consortium, 
   178 (Massachusetts Institute of Technology, European Research Consortium 
   179 for Informatics and Mathematics, Keio University). All 
   180 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 
   181 hope that it will be useful, but WITHOUT ANY WARRANTY; without even 
   182 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
   183 </p>
   184 </body>
   185 </html>

mercurial