diff options
Diffstat (limited to 'LayoutTests/fast/dom/TreeWalker/script-tests/filter-throw.js')
-rw-r--r-- | LayoutTests/fast/dom/TreeWalker/script-tests/filter-throw.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/LayoutTests/fast/dom/TreeWalker/script-tests/filter-throw.js b/LayoutTests/fast/dom/TreeWalker/script-tests/filter-throw.js new file mode 100644 index 0000000..1127f77 --- /dev/null +++ b/LayoutTests/fast/dom/TreeWalker/script-tests/filter-throw.js @@ -0,0 +1,32 @@ +description('Test JS objects as NodeFilters.'); + +var walker; +var testElement = document.createElement("div"); +testElement.id = 'root'; +testElement.innerHTML='<div id="A1"><div id="B1"></div><div id="B2"></div></div>'; +debug("Testing with object filter"); +walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, function(node) { + throw('filter exception'); + return NodeFilter.FILTER_ACCEPT; +}, false); + +debug("Test with filter function"); +shouldThrow("walker.firstChild();"); +shouldBe("walker.currentNode.id", "'root'") +shouldThrow("walker.nextNode();walker.currentNode.id"); +shouldBe("walker.currentNode.id", "'root'") + +walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, { + acceptNode : function(node) { + throw('filter exception'); + return NodeFilter.FILTER_ACCEPT; + } + }, false); + +debug("<br>Test with filter object"); +shouldThrow("walker.firstChild();"); +shouldBe("walker.currentNode.id", "'root'") +shouldThrow("walker.nextNode();walker.currentNode.id"); +shouldBe("walker.currentNode.id", "'root'") + +var successfullyParsed = true; |