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