[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
simon.fraser at apple.com
simon.fraser at apple.com
Wed Dec 22 12:29:17 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit aaa04f1e54169ed6dd550d6f12916e02c44be25f
Author: simon.fraser at apple.com <simon.fraser at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Aug 24 18:05:09 2010 +0000
2010-08-24 Simon Fraser <simon.fraser at apple.com>
Reviewed by Sam Weinig.
TreeWalker traversal order is wrong when skipping and rejecting
https://bugs.webkit.org/show_bug.cgi?id=44377
Add some tests for TreeWalker with node filters that skip and reject.
* fast/dom/TreeWalker/script-tests/traversal-reject.js: Added.
(rejectB1Filter.acceptNode):
(rejectB2Filter.acceptNode):
* fast/dom/TreeWalker/script-tests/traversal-skip.js: Added.
(skipB1Filter.acceptNode):
(skipB2Filter.acceptNode):
* fast/dom/TreeWalker/traversal-reject-expected.txt: Added.
* fast/dom/TreeWalker/traversal-reject.html: Added.
* fast/dom/TreeWalker/traversal-skip-expected.txt: Added.
* fast/dom/TreeWalker/traversal-skip.html: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@65914 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 7d00323..2d6e93a 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,23 @@
+2010-08-24 Simon Fraser <simon.fraser at apple.com>
+
+ Reviewed by Sam Weinig.
+
+ TreeWalker traversal order is wrong when skipping and rejecting
+ https://bugs.webkit.org/show_bug.cgi?id=44377
+
+ Add some tests for TreeWalker with node filters that skip and reject.
+
+ * fast/dom/TreeWalker/script-tests/traversal-reject.js: Added.
+ (rejectB1Filter.acceptNode):
+ (rejectB2Filter.acceptNode):
+ * fast/dom/TreeWalker/script-tests/traversal-skip.js: Added.
+ (skipB1Filter.acceptNode):
+ (skipB2Filter.acceptNode):
+ * fast/dom/TreeWalker/traversal-reject-expected.txt: Added.
+ * fast/dom/TreeWalker/traversal-reject.html: Added.
+ * fast/dom/TreeWalker/traversal-skip-expected.txt: Added.
+ * fast/dom/TreeWalker/traversal-skip.html: Added.
+
2010-08-24 Sam Weinig <sam at webkit.org>
Reviewed by Oliver Hunt.
diff --git a/LayoutTests/fast/dom/TreeWalker/script-tests/traversal-reject.js b/LayoutTests/fast/dom/TreeWalker/script-tests/traversal-reject.js
new file mode 100644
index 0000000..33fdbef
--- /dev/null
+++ b/LayoutTests/fast/dom/TreeWalker/script-tests/traversal-reject.js
@@ -0,0 +1,58 @@
+description('Test TreeWalker with rejection');
+
+var walker;
+var testElement = document.createElement("div");
+testElement.innerHTML='<div id="A1"> <div id="B1"> <div id="C1"></div> </div> <div id="B2"></div><div id="B3"></div> </div>';
+
+var rejectB1Filter = {
+ acceptNode: function(node) {
+ if (node.id == 'B1')
+ return NodeFilter.FILTER_REJECT;
+
+ return NodeFilter.FILTER_ACCEPT;
+ }
+}
+
+var rejectB2Filter = {
+ acceptNode: function(node) {
+ if (node.id == 'B2')
+ return NodeFilter.FILTER_SKIP;
+
+ return NodeFilter.FILTER_ACCEPT;
+ }
+}
+
+debug("<br>Testing nextNode")
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, rejectB1Filter, false);
+shouldBe("walker.nextNode(); walker.currentNode.id", "'A1'");
+shouldBe("walker.nextNode(); walker.currentNode.id", "'B2'");
+shouldBe("walker.nextNode(); walker.currentNode.id", "'B3'");
+
+debug("<br>Testing firstChild")
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, rejectB1Filter, false);
+shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'");
+shouldBe("walker.firstChild(); walker.currentNode.id", "'B2'");
+
+debug("<br>Testing nextSibling")
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, rejectB2Filter, false);
+shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'");
+shouldBe("walker.firstChild(); walker.currentNode.id", "'B1'");
+shouldBe("walker.nextSibling(); walker.currentNode.id", "'B3'");
+
+debug("<br>Testing parentNode")
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, rejectB1Filter, false);
+walker.currentNode = testElement.querySelectorAll('#C1')[0];
+shouldBe("walker.parentNode(); walker.currentNode.id", "'A1'");
+
+debug("<br>Testing previousSibling")
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, rejectB2Filter, false);
+walker.currentNode = testElement.querySelectorAll('#B3')[0];
+shouldBe("walker.previousSibling(); walker.currentNode.id", "'B1'");
+
+debug("<br>Testing previousNode")
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, rejectB1Filter, false);
+walker.currentNode = testElement.querySelectorAll('#B3')[0];
+shouldBe("walker.previousNode(); walker.currentNode.id", "'B2'");
+shouldBe("walker.previousNode(); walker.currentNode.id", "'A1'");
+
+var successfullyParsed = true;
diff --git a/LayoutTests/fast/dom/TreeWalker/script-tests/traversal-skip.js b/LayoutTests/fast/dom/TreeWalker/script-tests/traversal-skip.js
new file mode 100644
index 0000000..d328f53
--- /dev/null
+++ b/LayoutTests/fast/dom/TreeWalker/script-tests/traversal-skip.js
@@ -0,0 +1,60 @@
+description('Test TreeWalker with skipping');
+
+var walker;
+var testElement = document.createElement("div");
+testElement.innerHTML='<div id="A1"> <div id="B1"> <div id="C1"></div> </div> <div id="B2"></div><div id="B3"></div> </div>';
+
+var skipB1Filter = {
+ acceptNode: function(node) {
+ if (node.id == 'B1')
+ return NodeFilter.FILTER_SKIP;
+
+ return NodeFilter.FILTER_ACCEPT;
+ }
+}
+
+var skipB2Filter = {
+ acceptNode: function(node) {
+ if (node.id == 'B2')
+ return NodeFilter.FILTER_SKIP;
+
+ return NodeFilter.FILTER_ACCEPT;
+ }
+}
+
+debug("<br>Testing nextNode")
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, skipB1Filter, false);
+shouldBe("walker.nextNode(); walker.currentNode.id", "'A1'");
+shouldBe("walker.nextNode(); walker.currentNode.id", "'C1'");
+shouldBe("walker.nextNode(); walker.currentNode.id", "'B2'");
+shouldBe("walker.nextNode(); walker.currentNode.id", "'B3'");
+
+debug("<br>Testing firstChild")
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, skipB1Filter, false);
+shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'");
+shouldBe("walker.firstChild(); walker.currentNode.id", "'C1'");
+
+debug("<br>Testing nextSibling")
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, skipB2Filter, false);
+shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'");
+shouldBe("walker.firstChild(); walker.currentNode.id", "'B1'");
+shouldBe("walker.nextSibling(); walker.currentNode.id", "'B3'");
+
+debug("<br>Testing parentNode")
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, skipB1Filter, false);
+walker.currentNode = testElement.querySelectorAll('#C1')[0];
+shouldBe("walker.parentNode(); walker.currentNode.id", "'A1'");
+
+debug("<br>Testing previousSibling")
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, skipB2Filter, false);
+walker.currentNode = testElement.querySelectorAll('#B3')[0];
+shouldBe("walker.previousSibling(); walker.currentNode.id", "'B1'");
+
+debug("<br>Testing previousNode")
+walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, skipB1Filter, false);
+walker.currentNode = testElement.querySelectorAll('#B3')[0];
+shouldBe("walker.previousNode(); walker.currentNode.id", "'B2'");
+shouldBe("walker.previousNode(); walker.currentNode.id", "'C1'");
+shouldBe("walker.previousNode(); walker.currentNode.id", "'A1'");
+
+var successfullyParsed = true;
diff --git a/LayoutTests/fast/dom/TreeWalker/traversal-reject-expected.txt b/LayoutTests/fast/dom/TreeWalker/traversal-reject-expected.txt
new file mode 100644
index 0000000..89a3127
--- /dev/null
+++ b/LayoutTests/fast/dom/TreeWalker/traversal-reject-expected.txt
@@ -0,0 +1,33 @@
+Test TreeWalker with rejection
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+
+Testing nextNode
+PASS walker.nextNode(); walker.currentNode.id is 'A1'
+PASS walker.nextNode(); walker.currentNode.id is 'B2'
+PASS walker.nextNode(); walker.currentNode.id is 'B3'
+
+Testing firstChild
+PASS walker.firstChild(); walker.currentNode.id is 'A1'
+PASS walker.firstChild(); walker.currentNode.id is 'B2'
+
+Testing nextSibling
+PASS walker.firstChild(); walker.currentNode.id is 'A1'
+PASS walker.firstChild(); walker.currentNode.id is 'B1'
+PASS walker.nextSibling(); walker.currentNode.id is 'B3'
+
+Testing parentNode
+PASS walker.parentNode(); walker.currentNode.id is 'A1'
+
+Testing previousSibling
+PASS walker.previousSibling(); walker.currentNode.id is 'B1'
+
+Testing previousNode
+PASS walker.previousNode(); walker.currentNode.id is 'B2'
+PASS walker.previousNode(); walker.currentNode.id is 'A1'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/dom/TreeWalker/traversal-reject.html b/LayoutTests/fast/dom/TreeWalker/traversal-reject.html
new file mode 100644
index 0000000..ca34d86
--- /dev/null
+++ b/LayoutTests/fast/dom/TreeWalker/traversal-reject.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link rel="stylesheet" href="../../js/resources/js-test-style.css">
+<script src="../../js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/traversal-reject.js"></script>
+<script src="../../js/resources/js-test-post.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/fast/dom/TreeWalker/traversal-skip-expected.txt b/LayoutTests/fast/dom/TreeWalker/traversal-skip-expected.txt
new file mode 100644
index 0000000..65bf98f
--- /dev/null
+++ b/LayoutTests/fast/dom/TreeWalker/traversal-skip-expected.txt
@@ -0,0 +1,35 @@
+Test TreeWalker with skipping
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+
+Testing nextNode
+PASS walker.nextNode(); walker.currentNode.id is 'A1'
+PASS walker.nextNode(); walker.currentNode.id is 'C1'
+PASS walker.nextNode(); walker.currentNode.id is 'B2'
+PASS walker.nextNode(); walker.currentNode.id is 'B3'
+
+Testing firstChild
+PASS walker.firstChild(); walker.currentNode.id is 'A1'
+PASS walker.firstChild(); walker.currentNode.id is 'C1'
+
+Testing nextSibling
+PASS walker.firstChild(); walker.currentNode.id is 'A1'
+PASS walker.firstChild(); walker.currentNode.id is 'B1'
+PASS walker.nextSibling(); walker.currentNode.id is 'B3'
+
+Testing parentNode
+PASS walker.parentNode(); walker.currentNode.id is 'A1'
+
+Testing previousSibling
+PASS walker.previousSibling(); walker.currentNode.id is 'B1'
+
+Testing previousNode
+PASS walker.previousNode(); walker.currentNode.id is 'B2'
+PASS walker.previousNode(); walker.currentNode.id is 'C1'
+PASS walker.previousNode(); walker.currentNode.id is 'A1'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/dom/TreeWalker/traversal-skip.html b/LayoutTests/fast/dom/TreeWalker/traversal-skip.html
new file mode 100644
index 0000000..d788624
--- /dev/null
+++ b/LayoutTests/fast/dom/TreeWalker/traversal-skip.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link rel="stylesheet" href="../../js/resources/js-test-style.css">
+<script src="../../js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/traversal-skip.js"></script>
+<script src="../../js/resources/js-test-post.js"></script>
+</body>
+</html>
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list