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

Unified Diff: third_party/WebKit/LayoutTests/fast/dom/TreeWalker/acceptNode-filter.html

Issue 2667393002: Stop using script-tests in fast/dom/. (Closed)
Patch Set: . Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/fast/dom/TreeWalker/acceptNode-filter.html
diff --git a/third_party/WebKit/LayoutTests/fast/dom/TreeWalker/acceptNode-filter.html b/third_party/WebKit/LayoutTests/fast/dom/TreeWalker/acceptNode-filter.html
index 6b082d3ae4db26209f156b2a12c612defe2ab7ef..23c42d729fcfb328c03e42bda25f33c35f662daf 100644
--- a/third_party/WebKit/LayoutTests/fast/dom/TreeWalker/acceptNode-filter.html
+++ b/third_party/WebKit/LayoutTests/fast/dom/TreeWalker/acceptNode-filter.html
@@ -1,9 +1,106 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../../resources/js-test.js"></script>
</head>
<body>
-<script src="script-tests/acceptNode-filter.js"></script>
+<script>
+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>';
+
+function filter(node)
+{
+ debug(" filtering node " + node.id + " [this=" + this + "]");
+ if (node.id == "B1")
+ return NodeFilter.FILTER_SKIP;
+ return NodeFilter.FILTER_ACCEPT;
+}
+
+debug("Testing with raw function filter");
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, filter, false);
+shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'");
+shouldBe("walker.nextNode(); walker.currentNode.id", "'B2'");
+
+function strictFilter(node)
+{
+ "use strict";
+ debug(" filtering node " + node.id + " [this=" + this + "]");
+ if (node.id == "B1")
+ return NodeFilter.FILTER_SKIP;
+ return NodeFilter.FILTER_ACCEPT;
+}
+
+debug("<br>Testing with strict raw function filter");
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, strictFilter, false);
+shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'");
+shouldBe("walker.nextNode(); walker.currentNode.id", "'B2'");
+
+debug("<br>Testing with object filter");
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, {
+ toString : function() {
+ return "custom node filter";
+ },
+ acceptNode : function(node) {
+ debug(" filtering node " + node.id + " [this=" + this + "]");
+ if (node.id == "B1")
+ return NodeFilter.FILTER_SKIP;
+ return NodeFilter.FILTER_ACCEPT;
+ }
+ }, false);
+
+shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'");
+shouldBe("walker.nextNode(); walker.currentNode.id", "'B2'");
+
+debug("<br>Testing with null filter");
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, null, false);
+
+shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'");
+shouldBe("walker.nextNode(); walker.currentNode.id", "'B1'");
+
+debug("<br>Testing with undefined filter");
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, undefined, false);
+
+shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'");
+shouldBe("walker.nextNode(); walker.currentNode.id", "'B1'");
+
+debug("<br>Testing with object lacking acceptNode property");
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, {}, false);
+
+shouldThrow("walker.firstChild();");
+shouldBe("walker.currentNode.id;", "'root'");
+shouldThrow("walker.nextNode();");
+shouldBe("walker.currentNode.id;", "'root'");
+
+debug("<br>Testing with object with non-function acceptNode property");
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, { acceptNode: "foo" }, false);
+
+shouldThrow("walker.firstChild();");
+shouldBe("walker.currentNode.id;", "'root'");
+shouldThrow("walker.nextNode();");
+shouldBe("walker.currentNode.id;", "'root'");
+
+debug("<br>Testing with function having acceptNode function");
+var filter = function() { return NodeFilter.FILTER_ACCEPT; };
+filter.acceptNode = function(node) { return NodeFilter.FILTER_SKIP; };
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, filter, false);
+
+shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'");
+shouldBe("walker.nextNode(); walker.currentNode.id", "'B1'");
+
+debug("<br>Testing acceptNode callee");
+var filter = {
+ acceptNode: function(node) {
+ debug('Callee: ' + arguments.callee);
+ return NodeFilter.FILTER_ACCEPT;
+ }
+};
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, filter, false);
+
+shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'");
+</script>
</body>
</html>

Powered by Google App Engine
This is Rietveld 408576698