tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_setAttributeNodeNS01.html (4927B)


      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/setAttributeNodeNS01</title>
      7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css">
      8 <script 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 ['setAttributeNodeNS01'];
     16 }
     17 
     18 var docsLoaded = -1000000;
     19 var builder = null;
     20 
     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();
     37 
     38      docsLoaded = 0;
     39      
     40      var docRef = null;
     41      if (typeof(this.doc) != 'undefined') {
     42        docRef = this.doc;
     43      }
     44      docsLoaded += preload(docRef, "doc", "staffNS");
     45        
     46       if (docsLoaded == 1) {
     47          setUpPage = 'complete';
     48       }
     49    } catch(ex) {
     50    	catchInitializationError(builder, ex);
     51        setUpPage = 'complete';
     52    }
     53 }
     54 
     55 //
     56 //   This method is called on the completion of 
     57 //      each asychronous load started in setUpTests.
     58 //
     59 //   When every synchronous loaded document has completed,
     60 //      the page status is changed which allows the
     61 //      body of the test to be executed.
     62 function loadComplete() {
     63  if (++docsLoaded == 1) {
     64    setUpPageStatus = 'complete';
     65    runJSUnitTests();
     66    markTodos();
     67    SimpleTest.finish();
     68  }
     69 }
     70 
     71 var docName = 'setAttributeNodeNS01';
     72 
     73 
     74 /**
     75 * 
     76    The "setAttributeNode(newAttr)" method raises an 
     77   "INUSE_ATTRIBUTE_ERR DOMException if the "newAttr" 
     78   is already an attribute of another element.
     79   
     80   Retrieve the first emp:address and append
     81   a newly created element.  The "createAttributeNS(namespaceURI,qualifiedName)"
     82   and "setAttributeNodeNS(newAttr)" methods are invoked
     83   to create and add a new attribute to the newly created
     84   Element.  The "setAttributeNodeNS(newAttr)" method is
     85   once again called to add the new attribute causing an
     86   exception to be raised since the attribute is already
     87   an attribute of another element.
     88 
     89 * @author NIST
     90 * @author Mary Brady
     91 * @see http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[@name='INUSE_ATTRIBUTE_ERR'])
     92 * @see http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS
     93 * @see http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-ElSetAtNodeNS')/raises/exception[@name='DOMException']/descr/p[substring-before(.,':')='INUSE_ATTRIBUTE_ERR'])
     94 */
     95 function setAttributeNodeNS01() {
     96   var success;
     97    if(checkInitialization(builder, "setAttributeNodeNS01") != null) return;
     98    var namespaceURI = "http://www.newattr.com";
     99      var qualifiedName = "emp:newAttr";
    100      var doc;
    101      var newElement;
    102      var newAttr;
    103      var elementList;
    104      var testAddr;
    105      var appendedChild;
    106      var setAttr1;
    107      var setAttr2;
    108      
    109      var docRef = null;
    110      if (typeof(this.doc) != 'undefined') {
    111        docRef = this.doc;
    112      }
    113      doc = load(docRef, "doc", "staffNS");
    114      elementList = doc.getElementsByTagName("emp:address");
    115      testAddr = elementList.item(0);
    116      assertNotNull("empAddrNotNull",testAddr);
    117 newElement = doc.createElement("newElement");
    118      appendedChild = testAddr.appendChild(newElement);
    119      newAttr = doc.createAttributeNS(namespaceURI,qualifiedName);
    120      setAttr1 = newElement.setAttributeNodeNS(newAttr);
    121      
    122 {
    123 	success = false;
    124 	try {
    125            setAttr2 = testAddr.setAttributeNodeNS(newAttr);
    126        }
    127 	catch(ex) {
    128      success = (typeof(ex.code) != 'undefined' && ex.code == 10);
    129 	}
    130 	assertTrue("throw_INUSE_ATTRIBUTE_ERR",success);
    131 }
    132 
    133 }
    134 
    135 </script>
    136 </head>
    137 <body>
    138 <h2>Test http://www.w3.org/2001/DOM-Test-Suite/level2/core/setAttributeNodeNS01</h2>
    139 <p></p>
    140 <p>
    141 Copyright (c) 2001-2004 World Wide Web Consortium, 
    142 (Massachusetts Institute of Technology, European Research Consortium 
    143 for Informatics and Mathematics, Keio University). All 
    144 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 
    145 hope that it will be useful, but WITHOUT ANY WARRANTY; without even 
    146 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
    147 </p>
    148 </body>
    149 </html>