tor-browser

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

test_elementTraversal.html (3272B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=444722
      5 -->
      6 <head>
      7  <title>Test for the ElementTraversal spec</title>
      8  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      9  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
     10 </head>
     11 <body>
     12 <a target="_blank" href="http://dev.w3.org/2006/webapi/ElementTraversal/publish/ElementTraversal.html">ElementTraversal</a>
     13 <div id="content" style="display: none">
     14 <span>span</span><div>div</div>
     15 <!--comment goes here-->
     16 <p id="p1">p1</p>
     17 text here
     18 <p id="p2">p2</p>
     19 <span>a<span>b</span>c<span>d</span>e</span>
     20 </div>
     21 <pre id="test">
     22 <script class="testbody" type="text/javascript">
     23 
     24 var c = document.getElementById('content');
     25 var cc = c.children;
     26 
     27 var contents = ["span", "div", "p1", "p2", "abcde"];
     28 function testContent() {
     29  for(i = 0, e = c.firstElementChild; e; e = e.nextElementSibling, i++) {
     30    is(e.textContent, contents[i], "wrong element contents");
     31    is(e, c.children[i], "wrong element");
     32    is(e, c.children.item(i), "wrong element");
     33  }
     34  is(i, contents.length, "wrong number of element siblings");
     35  is(i, c.childElementCount, "wrong number of child elements");
     36  is(i, c.children.length, "wrong number of child elements");
     37 
     38  // Nuke all elements to retest the child list.
     39  // eslint-disable-next-line no-self-assign
     40  c.innerHTML = c.innerHTML;
     41 
     42  for(i--, e = c.lastElementChild; e; e = e.previousElementSibling, i--) {
     43    is(e.textContent, contents[i], "g element contents");
     44    is(e, c.children[i], "wrong element");
     45    is(e, c.children.item(i), "wrong element");
     46  }
     47  is(i, -1, "wrong number of element siblings");
     48 }
     49 
     50 testContent();
     51 
     52 is(cc.length, 5, "wrong number of child elements");
     53 is(c.childElementCount, 5, "wrong number of child elements");
     54 
     55 var p1 = document.getElementById('p1');
     56 var p2 = document.getElementById('p2');
     57 is(p1.nextElementSibling, p2, "wrong sibling");
     58 is(p2.previousElementSibling, p1, "wrong sibling");
     59 
     60 u = document.createElement('u');
     61 u.textContent = 'u';
     62 c.insertBefore(u, p2);
     63 is(cc.length, 6, "wrong number of child elements");
     64 is(c.childElementCount, 6, "wrong number of child elements");
     65 is(p1.nextElementSibling, u, "wrong sibling");
     66 is(p2.previousElementSibling, u, "wrong sibling");
     67 
     68 contents.splice(3, 0, "u");
     69 testContent();
     70 
     71 var p1 = document.getElementById('p1');
     72 var p2 = document.getElementById('p2');
     73 c.removeChild(p1);
     74 c.removeChild(p2);
     75 is(cc.length, 4, "wrong number of child elements");
     76 is(c.childElementCount, 4, "wrong number of child elements");
     77 
     78 contents.splice(2, 1);
     79 contents.splice(3, 1);
     80 testContent();
     81 
     82 tw = document.createTreeWalker(document.documentElement,
     83                               NodeFilter.SHOW_ELEMENT,
     84                               null);
     85 e = document.documentElement;
     86 
     87 elemsTested = 0;
     88 done = false;
     89 while(!done) {
     90  is(tw.currentNode, e, "wrong element:" + tw.currentNode + " != " + e);
     91  elemsTested++;
     92  
     93  if(tw.firstChild()) {
     94    e = e.firstElementChild;
     95  }
     96  else {
     97    while (!tw.nextSibling()) {
     98      if (!tw.parentNode()) {
     99        done = true;
    100        break;
    101      }
    102      e = e.parentNode;
    103    }
    104    e = e.nextElementSibling;
    105  }
    106 }
    107 is(elemsTested, document.getElementsByTagName("*").length,
    108   "wrong number of elements");
    109 </script>
    110 </pre>
    111 </body>
    112 </html>