content/base/test/test_elementTraversal.html

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     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 type="text/javascript" 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">
    24 var c = document.getElementById('content');
    25 var cc = c.children;
    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");
    38   // Nuke all elements to retest the child list.
    39   c.innerHTML = c.innerHTML;
    41   for(i--, e = c.lastElementChild; e; e = e.previousElementSibling, i--) {
    42     is(e.textContent, contents[i], "g element contents");
    43     is(e, c.children[i], "wrong element");
    44     is(e, c.children.item(i), "wrong element");
    45   }
    46   is(i, -1, "wrong number of element siblings");
    47 }
    49 testContent();
    51 is(cc.length, 5, "wrong number of child elements");
    52 is(c.childElementCount, 5, "wrong number of child elements");
    54 var p1 = document.getElementById('p1');
    55 var p2 = document.getElementById('p2');
    56 is(p1.nextElementSibling, p2, "wrong sibling");
    57 is(p2.previousElementSibling, p1, "wrong sibling");
    59 u = document.createElement('u');
    60 u.textContent = 'u';
    61 c.insertBefore(u, p2);
    62 is(cc.length, 6, "wrong number of child elements");
    63 is(c.childElementCount, 6, "wrong number of child elements");
    64 is(p1.nextElementSibling, u, "wrong sibling");
    65 is(p2.previousElementSibling, u, "wrong sibling");
    67 contents.splice(3, 0, "u");
    68 testContent();
    70 var p1 = document.getElementById('p1');
    71 var p2 = document.getElementById('p2');
    72 c.removeChild(p1);
    73 c.removeChild(p2);
    74 is(cc.length, 4, "wrong number of child elements");
    75 is(c.childElementCount, 4, "wrong number of child elements");
    77 contents.splice(2, 1);
    78 contents.splice(3, 1);
    79 testContent();
    81 tw = document.createTreeWalker(document.documentElement,
    82                                NodeFilter.SHOW_ELEMENT,
    83                                null);
    84 e = document.documentElement;
    86 elemsTested = 0;
    87 done = false;
    88 while(!done) {
    89   is(tw.currentNode, e, "wrong element:" + tw.currentNode + " != " + e);
    90   elemsTested++;
    92   if(tw.firstChild()) {
    93     e = e.firstElementChild;
    94   }
    95   else {
    96     while (!tw.nextSibling()) {
    97       if (!tw.parentNode()) {
    98         done = true;
    99         break;
   100       }
   101       e = e.parentNode;
   102     }
   103     e = e.nextElementSibling;
   104   }
   105 }
   106 is(elemsTested, document.getElementsByTagName("*").length,
   107    "wrong number of elements");
   108 </script>
   109 </pre>
   110 </body>
   111 </html>

mercurial