Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(155)

Side by Side Diff: LayoutTests/fast/dom/TreeWalker/script-tests/acceptNode-filter.js

Issue 932633002: Call NodeFilter.acceptNode() with correct this value (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 description('Test JS objects as NodeFilters.'); 1 description('Test JS objects as NodeFilters.');
2 2
3 var walker; 3 var walker;
4 var testElement = document.createElement("div"); 4 var testElement = document.createElement("div");
5 testElement.id = 'root'; 5 testElement.id = 'root';
6 testElement.innerHTML='<div id="A1"><div id="B1"></div><div id="B2"></div></div> '; 6 testElement.innerHTML='<div id="A1"><div id="B1"></div><div id="B2"></div></div> ';
7 7
8 function filter(node) 8 function filter(node)
9 { 9 {
10 debug(" filtering node " + node.id); 10 debug(" filtering node " + node.id + " [this=" + this + "]");
11 if (node.id == "B1") 11 if (node.id == "B1")
12 return NodeFilter.FILTER_SKIP; 12 return NodeFilter.FILTER_SKIP;
13 return NodeFilter.FILTER_ACCEPT; 13 return NodeFilter.FILTER_ACCEPT;
14 } 14 }
15 15
16 debug("Testing with raw function filter"); 16 debug("Testing with raw function filter");
17 walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, filter, false); 17 walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, filter, false);
18 shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'"); 18 shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'");
19 shouldBe("walker.nextNode(); walker.currentNode.id", "'B2'"); 19 shouldBe("walker.nextNode(); walker.currentNode.id", "'B2'");
20 20
21 function strictFilter(node)
22 {
23 "use strict";
24 debug(" filtering node " + node.id + " [this=" + this + "]");
25 if (node.id == "B1")
26 return NodeFilter.FILTER_SKIP;
27 return NodeFilter.FILTER_ACCEPT;
28 }
29
30 debug("<br>Testing with strict raw function filter");
31 walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, strictF ilter, false);
32 shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'");
33 shouldBe("walker.nextNode(); walker.currentNode.id", "'B2'");
34
21 debug("<br>Testing with object filter"); 35 debug("<br>Testing with object filter");
22 walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, { 36 walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, {
37 toString : function() {
38 return "custom node filter";
39 },
23 acceptNode : function(node) { 40 acceptNode : function(node) {
24 debug(" filtering node " + node.id); 41 debug(" filtering node " + node.id + " [this=" + this + "]");
25 if (node.id == "B1") 42 if (node.id == "B1")
26 return NodeFilter.FILTER_SKIP; 43 return NodeFilter.FILTER_SKIP;
27 return NodeFilter.FILTER_ACCEPT; 44 return NodeFilter.FILTER_ACCEPT;
28 } 45 }
29 }, false); 46 }, false);
30 47
31 shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'"); 48 shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'");
32 shouldBe("walker.nextNode(); walker.currentNode.id", "'B2'"); 49 shouldBe("walker.nextNode(); walker.currentNode.id", "'B2'");
33 50
34 debug("<br>Testing with null filter"); 51 debug("<br>Testing with null filter");
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 debug("<br>Testing acceptNode callee"); 87 debug("<br>Testing acceptNode callee");
71 var filter = { 88 var filter = {
72 acceptNode: function(node) { 89 acceptNode: function(node) {
73 debug('Callee: ' + arguments.callee); 90 debug('Callee: ' + arguments.callee);
74 return NodeFilter.FILTER_ACCEPT; 91 return NodeFilter.FILTER_ACCEPT;
75 } 92 }
76 }; 93 };
77 walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, filter, false); 94 walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, filter, false);
78 95
79 shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'"); 96 shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'");
OLDNEW
« no previous file with comments | « LayoutTests/fast/dom/TreeWalker/acceptNode-filter-expected.txt ('k') | Source/bindings/core/v8/V8NodeFilterCondition.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698