summaryrefslogtreecommitdiffstats
path: root/LayoutTests/fast/dom/TreeWalker/script-tests/filter-throw.js
blob: 1127f770748b1761c0a2d53c8db450c5b88c2b98 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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;