tor-browser

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

TreeWalker-previousNodeLastChildReject.html (3105B)


      1 <!DOCTYPE html>
      2 <html>
      3 <!--
      4 Test adapted from chromium/source/src/third_party/WebKit/LayoutTests/fast/dom/TreeWalker/script-tests/previousNodeLastChildReject.js
      5 -->
      6 <head>
      7 <title>TreeWalker: previousNodeLastChildReject</title>
      8 <script src="/resources/testharness.js"></script>
      9 <script src="/resources/testharnessreport.js"></script>
     10 <script src="support/assert-node.js"></script>
     11 <div id=log></div>
     12 </head>
     13 <body>
     14 <p>Test that previousNode properly respects the filter.</p>
     15 <script>
     16 var testElement;
     17 setup(function() {
     18    testElement = document.createElement("div");
     19    testElement.id = 'root';
     20    // testElement.innerHTML='<div id="A1"><div id="B1"><div id="C1"></div><div id="C2"><div id="D1"></div><div id="D2"></div></div></div><div id="B2"><div id="C3"></div><div id="C4"></div></div></div>';
     21    // testElement.innerHTML='
     22    // <div id="A1">
     23    //   <div id="B1">
     24    //     <div id="C1">
     25    //     </div>
     26    //     <div id="C2">
     27    //       <div id="D1">
     28    //       </div>
     29    //       <div id="D2">
     30    //       </div>
     31    //     </div>
     32    //   </div>
     33    //   <div id="B2">
     34    //     <div id="C3">
     35    //     </div>
     36    //     <div id="C4">
     37    //     </div>
     38    //   </div>
     39    // </div>';
     40 
     41    // XXX for Servo, build the tree without using innerHTML
     42    var a1 = document.createElement("div"); a1.id = "A1";
     43    var b1 = document.createElement("div"); b1.id = "B1";
     44    var b2 = document.createElement("div"); b2.id = "B2";
     45    var c1 = document.createElement("div"); c1.id = "C1";
     46    var c2 = document.createElement("div"); c2.id = "C2";
     47    var c3 = document.createElement("div"); c3.id = "C3";
     48    var c4 = document.createElement("div"); c4.id = "C4";
     49    var d1 = document.createElement("div"); d1.id = "D1";
     50    var d2 = document.createElement("div"); d2.id = "D2";
     51 
     52    testElement.appendChild(a1);
     53    a1.appendChild(b1);
     54    a1.appendChild(b2);
     55    b1.appendChild(c1);
     56    b1.appendChild(c2);
     57    b2.appendChild(c3);
     58    b2.appendChild(c4);
     59    c2.appendChild(d1);
     60    c2.appendChild(d2);
     61 });
     62 
     63 test(function()
     64 {
     65    function filter(node)
     66    {
     67        if (node.id == "C2")
     68            return NodeFilter.FILTER_REJECT;
     69        return NodeFilter.FILTER_ACCEPT;
     70    }
     71 
     72    var walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, filter);
     73    assert_node(walker.currentNode, { type: Element, id: 'root' });
     74    assert_node(walker.firstChild(), { type: Element, id: 'A1' });
     75    assert_node(walker.currentNode, { type: Element, id: 'A1' });
     76    assert_node(walker.nextNode(), { type: Element, id: 'B1' });
     77    assert_node(walker.currentNode, { type: Element, id: 'B1' });
     78    assert_node(walker.nextNode(), { type: Element, id: 'C1' });
     79    assert_node(walker.currentNode, { type: Element, id: 'C1' });
     80    assert_node(walker.nextNode(), { type: Element, id: 'B2' });
     81    assert_node(walker.currentNode, { type: Element, id: 'B2' });
     82    assert_node(walker.previousNode(), { type: Element, id: 'C1' });
     83    assert_node(walker.currentNode, { type: Element, id: 'C1' });
     84 }, 'Test that previousNode properly respects the filter.');
     85 </script>
     86 </body>
     87 </html>