dom/tests/mochitest/dom-level2-core/test_setAttributeNodeNS05.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/level2/core/setAttributeNodeNS05</title>
     7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css">
     8 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     9 <script type="text/javascript" src="DOMTestCase.js"></script>
    10 <script type="text/javascript" src="exclusions.js"></script>
    11 <script type="text/javascript">
    12 // expose test function names
    13 function exposeTestFunctionNames()
    14 {
    15 return ['setAttributeNodeNS05'];
    16 }
    18 var docsLoaded = -1000000;
    19 var builder = null;
    21 //
    22 //   This function is called by the testing framework before
    23 //      running the test suite.
    24 //
    25 //   If there are no configuration exceptions, asynchronous
    26 //        document loading is started.  Otherwise, the status
    27 //        is set to complete and the exception is immediately
    28 //        raised when entering the body of the test.
    29 //
    30 function setUpPage() {
    31    setUpPageStatus = 'running';
    32    try {
    33      //
    34      //   creates test document builder, may throw exception
    35      //
    36      builder = createConfiguredBuilder();
    38       docsLoaded = 0;
    40       var doc1Ref = null;
    41       if (typeof(this.doc1) != 'undefined') {
    42         doc1Ref = this.doc1;
    43       }
    44       docsLoaded += preload(doc1Ref, "doc1", "staffNS");
    46       var doc2Ref = null;
    47       if (typeof(this.doc2) != 'undefined') {
    48         doc2Ref = this.doc2;
    49       }
    50       docsLoaded += preload(doc2Ref, "doc2", "staffNS");
    52        if (docsLoaded == 2) {
    53           setUpPage = 'complete';
    54        }
    55     } catch(ex) {
    56     	catchInitializationError(builder, ex);
    57         setUpPage = 'complete';
    58     }
    59 }
    61 //
    62 //   This method is called on the completion of 
    63 //      each asychronous load started in setUpTests.
    64 //
    65 //   When every synchronous loaded document has completed,
    66 //      the page status is changed which allows the
    67 //      body of the test to be executed.
    68 function loadComplete() {
    69   if (++docsLoaded == 2) {
    70     setUpPageStatus = 'complete';
    71     runJSUnitTests();
    72     markTodos();
    73     SimpleTest.finish();
    74   }
    75 }
    77 var docName = 'setAttributeNodeNS05';
    80 /**
    81 * 
    82     The "setAttributeNodeNS(newAttr)" method raises an 
    83    "WRONG_DOCUMENT_ERR DOMException if the "newAttr" 
    84    was created from a different document than the one that
    85    created this document.
    87    Retrieve the first emp:address and attempt to set a new
    88    attribute node.  The new
    89    attribute was created from a document other than the
    90    one that created this element, therefore a
    91    WRONG_DOCUMENT_ERR DOMException should be raised.
    92    This test uses the "createAttributeNS(newAttr)" method
    93    from the Document interface.
    95 * @author NIST
    96 * @author Mary Brady
    97 * @see http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[@name='WRONG_DOCUMENT_ERR'])
    98 * @see http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS
    99 * @see http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-ElSetAtNodeNS')/raises/exception[@name='DOMException']/descr/p[substring-before(.,':')='WRONG_DOCUMENT_ERR'])
   100 */
   101 function setAttributeNodeNS05() {
   102    var success;
   103     if(checkInitialization(builder, "setAttributeNodeNS05") != null) return;
   104     var namespaceURI = "http://www.newattr.com";
   105       var qualifiedName = "emp:newAttr";
   106       var doc1;
   107       var doc2;
   108       var newAttr;
   109       var elementList;
   110       var testAddr;
   111       var setAttr1;
   113       var doc1Ref = null;
   114       if (typeof(this.doc1) != 'undefined') {
   115         doc1Ref = this.doc1;
   116       }
   117       doc1 = load(doc1Ref, "doc1", "staffNS");
   119       var doc2Ref = null;
   120       if (typeof(this.doc2) != 'undefined') {
   121         doc2Ref = this.doc2;
   122       }
   123       doc2 = load(doc2Ref, "doc2", "staffNS");
   124       newAttr = doc2.createAttributeNS(namespaceURI,qualifiedName);
   125       elementList = doc1.getElementsByTagName("emp:address");
   126       testAddr = elementList.item(0);
   128 	{
   129 		success = false;
   130 		try {
   131             setAttr1 = testAddr.setAttributeNodeNS(newAttr);
   132         }
   133 		catch(ex) {
   134       success = (typeof(ex.code) != 'undefined' && ex.code == 4);
   135 		}
   136 		assertTrue("throw_WRONG_DOCUMENT_ERR",success);
   137 	}
   139 }
   141 </script>
   142 </head>
   143 <body>
   144 <h2>Test http://www.w3.org/2001/DOM-Test-Suite/level2/core/setAttributeNodeNS05</h2>
   145 <p></p>
   146 <p>
   147 Copyright (c) 2001-2004 World Wide Web Consortium, 
   148 (Massachusetts Institute of Technology, European Research Consortium 
   149 for Informatics and Mathematics, Keio University). All 
   150 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 
   151 hope that it will be useful, but WITHOUT ANY WARRANTY; without even 
   152 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
   153 </p>
   154 </body>
   155 </html>

mercurial