Home | History | Annotate | Download | only in script-tests
      1 description('Test JS objects as NodeFilters.');
      2 
      3 var walker;
      4 var testElement = document.createElement("div");
      5 testElement.id = 'root';
      6 testElement.innerHTML='<div id="A1"><div id="B1"></div><div id="B2"></div></div>';
      7 debug("Testing with object filter");
      8 walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, function(node) {
      9   throw('filter exception');
     10   return NodeFilter.FILTER_ACCEPT;
     11 }, false);
     12 
     13 debug("Test with filter function");
     14 shouldThrow("walker.firstChild();");
     15 shouldBe("walker.currentNode.id", "'root'")
     16 shouldThrow("walker.nextNode();walker.currentNode.id");
     17 shouldBe("walker.currentNode.id", "'root'")
     18 
     19 walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, {
     20     acceptNode : function(node) {
     21       throw('filter exception');
     22       return NodeFilter.FILTER_ACCEPT;
     23     }
     24   }, false);
     25 
     26 debug("<br>Test with filter object");
     27 shouldThrow("walker.firstChild();");
     28 shouldBe("walker.currentNode.id", "'root'")
     29 shouldThrow("walker.nextNode();walker.currentNode.id");
     30 shouldBe("walker.currentNode.id", "'root'")
     31 
     32 var successfullyParsed = true;
     33