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

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     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/nodeinsertbeforedocfragment</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 ['nodeinsertbeforedocfragment'];
    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 = 'nodeinsertbeforedocfragment';
    76 window.doc = window;  
    77 SimpleTest.waitForExplicitFinish();
    78 addLoadEvent(setUpPage);
    81 /**
    82 * 
    83     If the "newChild" is a DocumentFragment object then all
    84     its children are inserted in the same order before the
    85     the "refChild". 
    87     Create a DocumentFragment object and populate it with
    88     two Element nodes.   Retrieve the second employee and
    89     insert the newly created DocumentFragment before its
    90     fourth child.   The second employee should now have two
    91     extra children("newChild1" and "newChild2") at 
    92     positions fourth and fifth respectively.
    94 * @author NIST
    95 * @author Mary Brady
    96 * @see http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727
    97 */
    98 function nodeinsertbeforedocfragment() {
    99    var success;
   100     if(checkInitialization(builder, "nodeinsertbeforedocfragment") != null) return;
   101     var doc;
   102       var elementList;
   103       var employeeNode;
   104       var childList;
   105       var refChild;
   106       var newdocFragment;
   107       var newChild1;
   108       var newChild2;
   109       var child;
   110       var childName;
   111       var appendedChild;
   112       var insertedNode;
   114       var docRef = null;
   115       if (typeof(this.doc) != 'undefined') {
   116         docRef = this.doc;
   117       }
   118       doc = load(docRef, "doc", "staff");
   119       elementList = doc.getElementsByTagName("employee");
   120       employeeNode = elementList.item(1);
   121       childList = employeeNode.childNodes;
   123       refChild = childList.item(3);
   124       newdocFragment = doc.createDocumentFragment();
   125       newChild1 = doc.createElement("newChild1");
   126       newChild2 = doc.createElement("newChild2");
   127       appendedChild = newdocFragment.appendChild(newChild1);
   128       appendedChild = newdocFragment.appendChild(newChild2);
   129       insertedNode = employeeNode.insertBefore(newdocFragment,refChild);
   130       child = childList.item(3);
   131       childName = child.nodeName;
   133       assertEquals("childName3","newChild1",childName);
   134        child = childList.item(4);
   135       childName = child.nodeName;
   137       assertEquals("childName4","newChild2",childName);
   139 }
   141 </script>
   142 </head>
   143 <body>
   144 <h2>Test http://www.w3.org/2001/DOM-Test-Suite/level1/core/nodeinsertbeforedocfragment</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