[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
kocienda
kocienda at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 08:38:12 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 96cadedacc8fd883fe8283958ac174c6cbdb3309
Author: kocienda <kocienda at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue May 4 23:31:42 2004 +0000
Reviewed by me
Added layout tests for DOM traversal objects.
* layout-tests/traversal/node-iterator-001-expected.txt: Added.
* layout-tests/traversal/node-iterator-001.html: Added.
* layout-tests/traversal/node-iterator-002-expected.txt: Added.
* layout-tests/traversal/node-iterator-002.html: Added.
* layout-tests/traversal/node-iterator-003-expected.txt: Added.
* layout-tests/traversal/node-iterator-003.html: Added.
* layout-tests/traversal/node-iterator-004-expected.txt: Added.
* layout-tests/traversal/node-iterator-004.html: Added.
* layout-tests/traversal/node-iterator-005-expected.txt: Added.
* layout-tests/traversal/node-iterator-005.html: Added.
* layout-tests/traversal/node-iterator-006-expected.txt: Added.
* layout-tests/traversal/node-iterator-006.html: Added.
* layout-tests/traversal/node-iterator-007-expected.txt: Added.
* layout-tests/traversal/node-iterator-007.html: Added.
* layout-tests/traversal/traversal.js: Added.
* layout-tests/traversal/tree-walker-001-expected.txt: Added.
* layout-tests/traversal/tree-walker-001.html: Added.
* layout-tests/traversal/tree-walker-002-expected.txt: Added.
* layout-tests/traversal/tree-walker-002.html: Added.
* layout-tests/traversal/tree-walker-003-expected.txt: Added.
* layout-tests/traversal/tree-walker-003.html: Added.
* layout-tests/traversal/tree-walker-004-expected.txt: Added.
* layout-tests/traversal/tree-walker-004.html: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@6538 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/traversal/node-iterator-001-expected.txt b/LayoutTests/traversal/node-iterator-001-expected.txt
new file mode 100644
index 0000000..cfe0de3
--- /dev/null
+++ b/LayoutTests/traversal/node-iterator-001-expected.txt
@@ -0,0 +1,41 @@
+layer at (0,0) size 800x600
+ RenderCanvas at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x578
+ RenderBlock {DIV} at (0,0) size 784x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderBlock {DIV} at (0,0) size 784x106
+ RenderBlock {P} at (0,0) size 784x16
+ RenderInline {B} at (0,0) size 280x16
+ RenderText {TEXT} at (0,0) size 280x16
+ text run at (0,0) width 280: "Expect ref node 'A'; pointer before"
+ RenderText {TEXT} at (280,0) size 168x16
+ text run at (280,0) width 168: ": * A B C D E F G H I"
+ RenderBlock {P} at (0,30) size 784x16
+ RenderInline {B} at (0,0) size 272x16
+ RenderText {TEXT} at (0,0) size 272x16
+ text run at (0,0) width 272: "Expect ref node 'A'; pointer after"
+ RenderText {TEXT} at (272,0) size 184x16
+ text run at (272,0) width 184: ": [A] * B C D E F G H I"
+ RenderBlock {P} at (0,60) size 784x16
+ RenderInline {B} at (0,0) size 280x16
+ RenderText {TEXT} at (0,0) size 280x16
+ text run at (0,0) width 280: "Expect ref node 'A'; pointer before"
+ RenderText {TEXT} at (280,0) size 184x16
+ text run at (280,0) width 184: ": * [A] B C D E F G H I"
+ RenderBlock {P} at (0,90) size 784x16
+ RenderInline {B} at (0,0) size 280x16
+ RenderText {TEXT} at (0,0) size 280x16
+ text run at (0,0) width 280: "Expect ref node 'A'; pointer before"
+ RenderText {TEXT} at (280,0) size 184x16
+ text run at (280,0) width 184: ": * [A] B C D E F G H I"
diff --git a/LayoutTests/traversal/node-iterator-001.html b/LayoutTests/traversal/node-iterator-001.html
new file mode 100644
index 0000000..f65c71c
--- /dev/null
+++ b/LayoutTests/traversal/node-iterator-001.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+<script src=traversal.js language="JavaScript" type="text/JavaScript" ></script>
+<title>Traversal Test</title>
+</head>
+<body>
+<div id="test">
+<span id="A"></span><span id="B"></span><span id="C"></span><span id="D"></span><span id="E"></span><span id="F"></span><span id="G"></span><span id="H"></span><span id="I"></span>
+</div>
+<div style="font-family: Courier; font-size: 14;">
+<script>
+var root = document.getElementById('A');
+
+function testNodeFiter(n)
+{
+ if (n.tagName == 'SPAN') return NodeFilter.FILTER_ACCEPT;
+ return NodeFilter.FILTER_SKIP;
+}
+
+var it = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, testNodeFiter, false);
+document.write(dumpNodeIterator(it, "ref node 'A'; pointer before"));
+it.nextNode();
+document.write(dumpNodeIterator(it, "ref node 'A'; pointer after"));
+it.previousNode();
+document.write(dumpNodeIterator(it, "ref node 'A'; pointer before"));
+it.previousNode();
+document.write(dumpNodeIterator(it, "ref node 'A'; pointer before"));
+</script>
+</div>
+</body>
+</html>
diff --git a/LayoutTests/traversal/node-iterator-002-expected.txt b/LayoutTests/traversal/node-iterator-002-expected.txt
new file mode 100644
index 0000000..f836dac
--- /dev/null
+++ b/LayoutTests/traversal/node-iterator-002-expected.txt
@@ -0,0 +1,50 @@
+layer at (0,0) size 800x600
+ RenderCanvas at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x578
+ RenderBlock {DIV} at (0,0) size 784x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderBlock {DIV} at (0,0) size 784x196
+ RenderBlock {P} at (0,0) size 784x16
+ RenderInline {B} at (0,0) size 272x16
+ RenderText {TEXT} at (0,0) size 272x16
+ text run at (0,0) width 272: "Expect ref node 'D'; pointer after"
+ RenderText {TEXT} at (272,0) size 184x16
+ text run at (272,0) width 184: ": A B C [D] * E F G H I"
+ RenderBlock {P} at (0,30) size 784x16
+ RenderText {TEXT} at (0,0) size 120x16
+ text run at (0,0) width 120: "remove node 'E'"
+ RenderBlock {P} at (0,60) size 784x16
+ RenderInline {B} at (0,0) size 272x16
+ RenderText {TEXT} at (0,0) size 272x16
+ text run at (0,0) width 272: "Expect ref node 'D'; pointer after"
+ RenderText {TEXT} at (272,0) size 168x16
+ text run at (272,0) width 168: ": A B C [D] * F G H I"
+ RenderBlock {P} at (0,90) size 784x16
+ RenderText {TEXT} at (0,0) size 240x16
+ text run at (0,0) width 240: "insert new node 'X' before 'F'"
+ RenderBlock {P} at (0,120) size 784x16
+ RenderInline {B} at (0,0) size 272x16
+ RenderText {TEXT} at (0,0) size 272x16
+ text run at (0,0) width 272: "Expect ref node 'D'; pointer after"
+ RenderText {TEXT} at (272,0) size 184x16
+ text run at (272,0) width 184: ": A B C [D] * X F G H I"
+ RenderBlock {P} at (0,150) size 784x16
+ RenderText {TEXT} at (0,0) size 192x16
+ text run at (0,0) width 192: "move node 'I' before 'X'"
+ RenderBlock {P} at (0,180) size 784x16
+ RenderInline {B} at (0,0) size 272x16
+ RenderText {TEXT} at (0,0) size 272x16
+ text run at (0,0) width 272: "Expect ref node 'D'; pointer after"
+ RenderText {TEXT} at (272,0) size 184x16
+ text run at (272,0) width 184: ": A B C [D] * I X F G H"
diff --git a/LayoutTests/traversal/node-iterator-002.html b/LayoutTests/traversal/node-iterator-002.html
new file mode 100644
index 0000000..c4aab21
--- /dev/null
+++ b/LayoutTests/traversal/node-iterator-002.html
@@ -0,0 +1,47 @@
+<html>
+<head>
+<script src=traversal.js language="JavaScript" type="text/JavaScript" ></script>
+<title>Traversal Test</title>
+</head>
+<body>
+<div id="test">
+<span id="A"></span><span id="B"></span><span id="C"></span><span id="D"></span><span id="E"></span><span id="F"></span><span id="G"></span><span id="H"></span><span id="I"></span>
+</div>
+<div style="font-family: Courier; font-size: 14;">
+<script>
+var parent = document.getElementById('test');
+var root = document.getElementById('A');
+
+function testNodeFiter(n)
+{
+ if (n.tagName == 'SPAN') return NodeFilter.FILTER_ACCEPT;
+ return NodeFilter.FILTER_SKIP;
+}
+
+var it = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, testNodeFiter, false);
+for (i = 0; i < 4; i++)
+ it.nextNode();
+document.write(dumpNodeIterator(it, "ref node 'D'; pointer after"));
+
+// remove node 'E'
+document.write("<p>remove node 'E'");
+parent.removeChild(document.getElementById('E'));
+document.write(dumpNodeIterator(it, "ref node 'D'; pointer after"));
+
+// insert new node 'X' before 'F'
+document.write("<p>insert new node 'X' before 'F'");
+var X = document.createElement('SPAN');
+X.setAttribute('ID', 'X');
+parent.insertBefore(X, document.getElementById('F'));
+document.write(dumpNodeIterator(it, "ref node 'D'; pointer after"));
+
+// move node 'I' before 'X'
+document.write("<p>move node 'I' before 'X'");
+var I = document.getElementById('I');
+parent.removeChild(I);
+parent.insertBefore(I, X);
+document.write(dumpNodeIterator(it, "ref node 'D'; pointer after"));
+</script>
+</div>
+</body>
+</html>
diff --git a/LayoutTests/traversal/node-iterator-003-expected.txt b/LayoutTests/traversal/node-iterator-003-expected.txt
new file mode 100644
index 0000000..414e86d
--- /dev/null
+++ b/LayoutTests/traversal/node-iterator-003-expected.txt
@@ -0,0 +1,31 @@
+layer at (0,0) size 800x600
+ RenderCanvas at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x578
+ RenderBlock {DIV} at (0,0) size 784x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderBlock {DIV} at (0,0) size 784x76
+ RenderBlock {P} at (0,0) size 784x16
+ RenderInline {B} at (0,0) size 272x16
+ RenderText {TEXT} at (0,0) size 272x16
+ text run at (0,0) width 272: "Expect ref node 'D'; pointer after"
+ RenderText {TEXT} at (272,0) size 184x16
+ text run at (272,0) width 184: ": A B C [D] * E F G H I"
+ RenderBlock {P} at (0,30) size 784x16
+ RenderText {TEXT} at (0,0) size 120x16
+ text run at (0,0) width 120: "remove node 'D'"
+ RenderBlock {P} at (0,60) size 784x16
+ RenderInline {B} at (0,0) size 272x16
+ RenderText {TEXT} at (0,0) size 272x16
+ text run at (0,0) width 272: "Expect ref node 'C'; pointer after"
+ RenderText {TEXT} at (272,0) size 168x16
+ text run at (272,0) width 168: ": A B [C] * E F G H I"
diff --git a/LayoutTests/traversal/node-iterator-003.html b/LayoutTests/traversal/node-iterator-003.html
new file mode 100644
index 0000000..4fdfd49
--- /dev/null
+++ b/LayoutTests/traversal/node-iterator-003.html
@@ -0,0 +1,33 @@
+<html>
+<head>
+<script src=traversal.js language="JavaScript" type="text/JavaScript" ></script>
+<title>Traversal Test</title>
+</head>
+<body>
+<div id="test">
+<span id="A"></span><span id="B"></span><span id="C"></span><span id="D"></span><span id="E"></span><span id="F"></span><span id="G"></span><span id="H"></span><span id="I"></span>
+</div>
+<div style="font-family: Courier; font-size: 14;">
+<script>
+var parent = document.getElementById('test');
+var root = document.getElementById('A');
+
+function testNodeFiter(n)
+{
+ if (n.tagName == 'SPAN') return NodeFilter.FILTER_ACCEPT;
+ return NodeFilter.FILTER_SKIP;
+}
+
+var it = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, testNodeFiter, false);
+for (i = 0; i < 4; i++)
+ it.nextNode();
+document.write(dumpNodeIterator(it, "ref node 'D'; pointer after"));
+
+// remove node 'D'
+document.write("<p>remove node 'D'");
+parent.removeChild(document.getElementById('D'));
+document.write(dumpNodeIterator(it, "ref node 'C'; pointer after"));
+</script>
+</div>
+</body>
+</html>
diff --git a/LayoutTests/traversal/node-iterator-004-expected.txt b/LayoutTests/traversal/node-iterator-004-expected.txt
new file mode 100644
index 0000000..6a9085b
--- /dev/null
+++ b/LayoutTests/traversal/node-iterator-004-expected.txt
@@ -0,0 +1,31 @@
+layer at (0,0) size 800x600
+ RenderCanvas at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x578
+ RenderBlock {DIV} at (0,0) size 784x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderBlock {DIV} at (0,0) size 784x76
+ RenderBlock {P} at (0,0) size 784x16
+ RenderInline {B} at (0,0) size 280x16
+ RenderText {TEXT} at (0,0) size 280x16
+ text run at (0,0) width 280: "Expect ref node 'E'; pointer before"
+ RenderText {TEXT} at (280,0) size 184x16
+ text run at (280,0) width 184: ": A B C D * [E] F G H I"
+ RenderBlock {P} at (0,30) size 784x16
+ RenderText {TEXT} at (0,0) size 120x16
+ text run at (0,0) width 120: "remove node 'E'"
+ RenderBlock {P} at (0,60) size 784x16
+ RenderInline {B} at (0,0) size 280x16
+ RenderText {TEXT} at (0,0) size 280x16
+ text run at (0,0) width 280: "Expect ref node 'F'; pointer before"
+ RenderText {TEXT} at (280,0) size 168x16
+ text run at (280,0) width 168: ": A B C D * [F] G H I"
diff --git a/LayoutTests/traversal/node-iterator-004.html b/LayoutTests/traversal/node-iterator-004.html
new file mode 100644
index 0000000..01f44fd
--- /dev/null
+++ b/LayoutTests/traversal/node-iterator-004.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+<script src=traversal.js language="JavaScript" type="text/JavaScript" ></script>
+<title>Traversal Test</title>
+</head>
+<body>
+<div id="test">
+<span id="A"></span><span id="B"></span><span id="C"></span><span id="D"></span><span id="E"></span><span id="F"></span><span id="G"></span><span id="H"></span><span id="I"></span>
+</div>
+<div style="font-family: Courier; font-size: 14;">
+<script>
+var parent = document.getElementById('test');
+var root = document.getElementById('A');
+
+function testNodeFiter(n)
+{
+ if (n.tagName == 'SPAN') return NodeFilter.FILTER_ACCEPT;
+ return NodeFilter.FILTER_SKIP;
+}
+
+var it = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, testNodeFiter, false);
+for (i = 0; i < 5; i++)
+ it.nextNode();
+it.previousNode();
+document.write(dumpNodeIterator(it, "ref node 'E'; pointer before"));
+
+// remove node 'E'
+document.write("<p>remove node 'E'");
+parent.removeChild(document.getElementById('E'));
+document.write(dumpNodeIterator(it, "ref node 'F'; pointer before"));
+</script>
+</div>
+</body>
+</html>
diff --git a/LayoutTests/traversal/node-iterator-005-expected.txt b/LayoutTests/traversal/node-iterator-005-expected.txt
new file mode 100644
index 0000000..395a614
--- /dev/null
+++ b/LayoutTests/traversal/node-iterator-005-expected.txt
@@ -0,0 +1,32 @@
+layer at (0,0) size 800x600
+ RenderCanvas at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x578
+ RenderBlock {DIV} at (0,0) size 784x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderBlock {DIV} at (0,0) size 784x76
+ RenderBlock {P} at (0,0) size 784x16
+ RenderInline {B} at (0,0) size 272x16
+ RenderText {TEXT} at (0,0) size 272x16
+ text run at (0,0) width 272: "Expect ref node 'D'; pointer after"
+ RenderText {TEXT} at (272,0) size 184x16
+ text run at (272,0) width 184: ": A B C [D] * E F G H I"
+ RenderBlock {P} at (0,30) size 784x16
+ RenderText {TEXT} at (0,0) size 120x16
+ text run at (0,0) width 120: "remove node 'D'"
+ RenderBlock {P} at (0,60) size 784x16
+ RenderInline {B} at (0,0) size 272x16
+ RenderText {TEXT} at (0,0) size 272x16
+ text run at (0,0) width 272: "Expect ref node 'C'; pointer after"
+ RenderText {TEXT} at (272,0) size 184x16
+ text run at (272,0) width 184: ": A B [C] * E F G H I D"
diff --git a/LayoutTests/traversal/node-iterator-005.html b/LayoutTests/traversal/node-iterator-005.html
new file mode 100644
index 0000000..d721416
--- /dev/null
+++ b/LayoutTests/traversal/node-iterator-005.html
@@ -0,0 +1,35 @@
+<html>
+<head>
+<script src=traversal.js language="JavaScript" type="text/JavaScript" ></script>
+<title>Traversal Test</title>
+</head>
+<body>
+<div id="test">
+<span id="A"></span><span id="B"></span><span id="C"></span><span id="D"></span><span id="E"></span><span id="F"></span><span id="G"></span><span id="H"></span><span id="I"></span>
+</div>
+<div style="font-family: Courier; font-size: 14;">
+<script>
+var parent = document.getElementById('test');
+var root = document.getElementById('A');
+
+function testNodeFiter(n)
+{
+ if (n.tagName == 'SPAN') return NodeFilter.FILTER_ACCEPT;
+ return NodeFilter.FILTER_SKIP;
+}
+
+var it = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, testNodeFiter, false);
+for (i = 0; i < 4; i++)
+ it.nextNode();
+document.write(dumpNodeIterator(it, "ref node 'D'; pointer after"));
+
+// remove node 'D'; insert it at the end
+document.write("<p>remove node 'D'");
+var D = document.getElementById('D');
+parent.removeChild(D);
+parent.appendChild(D);
+document.write(dumpNodeIterator(it, "ref node 'C'; pointer after"));
+</script>
+</div>
+</body>
+</html>
diff --git a/LayoutTests/traversal/node-iterator-006-expected.txt b/LayoutTests/traversal/node-iterator-006-expected.txt
new file mode 100644
index 0000000..f28e12a
--- /dev/null
+++ b/LayoutTests/traversal/node-iterator-006-expected.txt
@@ -0,0 +1,25 @@
+layer at (0,0) size 800x600
+ RenderCanvas at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x578
+ RenderBlock {DIV} at (0,0) size 784x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderBlock {DIV} at (0,0) size 784x76
+ RenderBlock {P} at (0,0) size 784x16
+ RenderInline {B} at (0,0) size 280x16
+ RenderText {TEXT} at (0,0) size 280x16
+ text run at (0,0) width 280: "Expect ref node 'C'; pointer before"
+ RenderText {TEXT} at (280,0) size 88x16
+ text run at (280,0) width 88: ": A B * [C]"
+ RenderBlock {P} at (0,30) size 784x16
+ RenderText {TEXT} at (0,0) size 120x16
+ text run at (0,0) width 120: "remove node 'C'"
+ RenderBlock {P} at (0,60) size 784x16
+ RenderInline {B} at (0,0) size 272x16
+ RenderText {TEXT} at (0,0) size 272x16
+ text run at (0,0) width 272: "Expect ref node 'B'; pointer after"
+ RenderText {TEXT} at (272,0) size 72x16
+ text run at (272,0) width 72: ": A [B] *"
diff --git a/LayoutTests/traversal/node-iterator-006.html b/LayoutTests/traversal/node-iterator-006.html
new file mode 100644
index 0000000..da7c56a
--- /dev/null
+++ b/LayoutTests/traversal/node-iterator-006.html
@@ -0,0 +1,35 @@
+<html>
+<head>
+<script src=traversal.js language="JavaScript" type="text/JavaScript" ></script>
+<title>Traversal Test</title>
+</head>
+<body>
+<div id="test">
+<span id="A"></span><span id="B"></span><span id="C"></span>
+</div>
+<div style="font-family: Courier; font-size: 14;">
+<script>
+var parent = document.getElementById('test');
+var root = document.getElementById('A');
+
+function testNodeFiter(n)
+{
+ if (n.tagName == 'SPAN') return NodeFilter.FILTER_ACCEPT;
+ return NodeFilter.FILTER_SKIP;
+}
+
+var it = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, testNodeFiter, false);
+for (i = 0; i < 3; i++)
+ it.nextNode();
+ it.previousNode();
+document.write(dumpNodeIterator(it, "ref node 'C'; pointer before"));
+
+// remove node 'C'
+document.write("<p>remove node 'C'");
+var D = document.getElementById('C');
+parent.removeChild(D);
+document.write(dumpNodeIterator(it, "ref node 'B'; pointer after"));
+</script>
+</div>
+</body>
+</html>
diff --git a/LayoutTests/traversal/node-iterator-007-expected.txt b/LayoutTests/traversal/node-iterator-007-expected.txt
new file mode 100644
index 0000000..c7dc166
--- /dev/null
+++ b/LayoutTests/traversal/node-iterator-007-expected.txt
@@ -0,0 +1,28 @@
+layer at (0,0) size 800x600
+ RenderCanvas at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x578
+ RenderBlock {DIV} at (0,0) size 784x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderBlock {DIV} at (0,0) size 784x76
+ RenderBlock {P} at (0,0) size 784x16
+ RenderInline {B} at (0,0) size 272x16
+ RenderText {TEXT} at (0,0) size 272x16
+ text run at (0,0) width 272: "Expect ref node 'D'; pointer after"
+ RenderText {TEXT} at (272,0) size 184x16
+ text run at (272,0) width 184: ": A B C [D] * E F G H I"
+ RenderBlock {P} at (0,30) size 784x16
+ RenderText {TEXT} at (0,0) size 120x16
+ text run at (0,0) width 120: "remove node 'C'"
+ RenderBlock {P} at (0,60) size 784x16
+ RenderInline {B} at (0,0) size 272x16
+ RenderText {TEXT} at (0,0) size 272x16
+ text run at (0,0) width 272: "Expect ref node 'B'; pointer after"
+ RenderText {TEXT} at (272,0) size 120x16
+ text run at (272,0) width 120: ": A [B] * G H I"
diff --git a/LayoutTests/traversal/node-iterator-007.html b/LayoutTests/traversal/node-iterator-007.html
new file mode 100644
index 0000000..ef0d82b
--- /dev/null
+++ b/LayoutTests/traversal/node-iterator-007.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+<script src=traversal.js language="JavaScript" type="text/JavaScript" ></script>
+<title>Traversal Test</title>
+</head>
+<body>
+<div id="test">
+<span id="A"></span><span id="B"></span><span id="C"><span id="D"></span><span id="E"></span><span id="F"></span></span><span id="G"></span><span id="H"></span><span id="I"></span>
+</div>
+<div style="font-family: Courier; font-size: 14;">
+<script>
+var parent = document.getElementById('test');
+var root = document.getElementById('A');
+
+function testNodeFiter(n)
+{
+ if (n.tagName == 'SPAN') return NodeFilter.FILTER_ACCEPT;
+ return NodeFilter.FILTER_SKIP;
+}
+
+var it = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, testNodeFiter, false);
+for (i = 0; i < 4; i++)
+ it.nextNode();
+document.write(dumpNodeIterator(it, "ref node 'D'; pointer after"));
+
+// remove node 'C'
+document.write("<p>remove node 'C'");
+var D = document.getElementById('C');
+parent.removeChild(D);
+document.write(dumpNodeIterator(it, "ref node 'B'; pointer after"));
+</script>
+</div>
+</body>
+</html>
diff --git a/LayoutTests/traversal/traversal.js b/LayoutTests/traversal/traversal.js
new file mode 100644
index 0000000..c6bb62f
--- /dev/null
+++ b/LayoutTests/traversal/traversal.js
@@ -0,0 +1,65 @@
+//-------------------------------------------------------------------------------------------------------
+// Java script library to run traversal layout tests
+
+function dumpNodeIterator(it, expectedResult) {
+ var string = '<p><b>Expect ' + expectedResult + '</b>: ';
+ var checkIt = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, testNodeFiter, false);
+ var printedPointer = false;
+ while (1) {
+ var node = checkIt.nextNode();
+ if (!node)
+ break;
+ if (!printedPointer && (it.referenceNode == node || it.referenceNode == undefined)) {
+ printedPointer = true;
+ var s = it.referenceNode == undefined ? node.id + ' ' : '[' + node.id + '] ';
+ if (it.pointerBeforeReferenceNode)
+ string += "* " + s;
+ else
+ string += s + "* ";
+ }
+ else {
+ string += node.id + " ";
+ }
+ }
+ return string;
+}
+
+//-------------------------------------------------------------------------------------------------------
+
+function nodeDepth(node) {
+ var depth = 0;
+ while ((node = node.parentNode))
+ depth++;
+ return depth;
+}
+
+//-------------------------------------------------------------------------------------------------------
+
+function dumpTreeWalker(tw, root, start, backwards) {
+ var string = '<p><b>Tree Walker: </b><br>';
+ if (root == undefined)
+ root = tw.currentNode;
+ var rootDepth = nodeDepth(root);
+ if (start == undefined)
+ start = root;
+ tw.currentNode = start;
+ string += start.id + '<br>';
+ while (1) {
+ var current = tw.currentNode;
+ if (backwards == undefined)
+ tw.nextNode();
+ else
+ backwards ? tw.previousNode() : tw.nextNode();
+ var n = tw.currentNode;
+ if (current == n)
+ break;
+ var depth = nodeDepth(n) - rootDepth;
+ for (i = 0; i < depth; i++)
+ string += ' ';
+ string += n.id + '<br>';
+ }
+ return string;
+}
+
+//-------------------------------------------------------------------------------------------------------
+
diff --git a/LayoutTests/traversal/tree-walker-001-expected.txt b/LayoutTests/traversal/tree-walker-001-expected.txt
new file mode 100644
index 0000000..b749bbe
--- /dev/null
+++ b/LayoutTests/traversal/tree-walker-001-expected.txt
@@ -0,0 +1,108 @@
+layer at (0,0) size 800x600
+ RenderCanvas at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x578
+ RenderBlock {DIV} at (0,0) size 784x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderBlock {DIV} at (0,0) size 784x272
+ RenderBlock {P} at (0,0) size 784x272
+ RenderInline {B} at (0,0) size 104x16
+ RenderText {TEXT} at (0,0) size 104x16
+ text run at (0,0) width 104: "Tree Walker: "
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,16) size 8x16
+ text run at (0,16) width 8: "A"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,32) size 40x16
+ text run at (0,32) width 40: " A.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,48) size 40x16
+ text run at (0,48) width 40: " A.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,64) size 40x16
+ text run at (0,64) width 40: " A.3"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,80) size 8x16
+ text run at (0,80) width 8: "B"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,96) size 40x16
+ text run at (0,96) width 40: " B.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,112) size 72x16
+ text run at (0,112) width 72: " B.1.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,128) size 8x16
+ text run at (0,128) width 8: "C"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,144) size 40x16
+ text run at (0,144) width 40: " C.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,160) size 72x16
+ text run at (0,160) width 72: " C.1.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,176) size 104x16
+ text run at (0,176) width 104: " C.1.1.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,192) size 104x16
+ text run at (0,192) width 104: " C.1.1.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,208) size 104x16
+ text run at (0,208) width 104: " C.1.1.3"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,224) size 72x16
+ text run at (0,224) width 72: " C.1.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,240) size 88x16
+ text run at (0,240) width 88: " C.2.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,256) size 8x16
+ text run at (0,256) width 8: "D"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
diff --git a/LayoutTests/traversal/tree-walker-001.html b/LayoutTests/traversal/tree-walker-001.html
new file mode 100644
index 0000000..b40a2e3
--- /dev/null
+++ b/LayoutTests/traversal/tree-walker-001.html
@@ -0,0 +1,56 @@
+<html>
+<head>
+<script src=traversal.js language="JavaScript" type="text/JavaScript" ></script>
+<title>Traversal Test</title>
+</head>
+<body>
+<div id="test">
+<span id="A">
+ <span id="A.1">
+ </span>
+ <span id="A.2">
+ </span>
+ <span id="A.3">
+ </span>
+</span>
+<span id="B">
+ <span id="B.1">
+ <span id="B.1.1">
+ </span>
+ </span>
+</span>
+<span id="C">
+ <span id="C.1">
+ <span id="C.1.1">
+ <span id="C.1.1.1">
+ </span>
+ <span id="C.1.1.2">
+ </span>
+ <span id="C.1.1.3">
+ </span>
+ </span>
+ <span id="C.1.2">
+ <span id="C.2.1">
+ </span>
+ </span>
+ </span>
+</span>
+<span id="D">
+</span>
+</div>
+<div style="font-family: Courier; font-size: 14; white-space: pre">
+<script>
+var root = document.getElementById('A');
+
+function testNodeFiter(n)
+{
+ if (n.tagName == 'SPAN') return NodeFilter.FILTER_ACCEPT;
+ return NodeFilter.FILTER_SKIP;
+}
+
+var tw = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, testNodeFiter, false);
+document.write(dumpTreeWalker(tw, root));
+</script>
+</div>
+</body>
+</html>
diff --git a/LayoutTests/traversal/tree-walker-002-expected.txt b/LayoutTests/traversal/tree-walker-002-expected.txt
new file mode 100644
index 0000000..5b985bd
--- /dev/null
+++ b/LayoutTests/traversal/tree-walker-002-expected.txt
@@ -0,0 +1,96 @@
+layer at (0,0) size 800x600
+ RenderCanvas at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x578
+ RenderBlock {DIV} at (0,0) size 784x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderBlock {DIV} at (0,0) size 784x208
+ RenderBlock {P} at (0,0) size 784x208
+ RenderInline {B} at (0,0) size 104x16
+ RenderText {TEXT} at (0,0) size 104x16
+ text run at (0,0) width 104: "Tree Walker: "
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,16) size 8x16
+ text run at (0,16) width 8: "B"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,32) size 40x16
+ text run at (0,32) width 40: " B.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,48) size 72x16
+ text run at (0,48) width 72: " B.1.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,64) size 8x16
+ text run at (0,64) width 8: "C"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,80) size 40x16
+ text run at (0,80) width 40: " C.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,96) size 72x16
+ text run at (0,96) width 72: " C.1.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,112) size 104x16
+ text run at (0,112) width 104: " C.1.1.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,128) size 104x16
+ text run at (0,128) width 104: " C.1.1.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,144) size 104x16
+ text run at (0,144) width 104: " C.1.1.3"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,160) size 72x16
+ text run at (0,160) width 72: " C.1.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,176) size 88x16
+ text run at (0,176) width 88: " C.2.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,192) size 8x16
+ text run at (0,192) width 8: "D"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
diff --git a/LayoutTests/traversal/tree-walker-002.html b/LayoutTests/traversal/tree-walker-002.html
new file mode 100644
index 0000000..06af23a
--- /dev/null
+++ b/LayoutTests/traversal/tree-walker-002.html
@@ -0,0 +1,57 @@
+<html>
+<head>
+<script src=traversal.js language="JavaScript" type="text/JavaScript" ></script>
+<title>Traversal Test</title>
+</head>
+<body>
+<div id="test">
+<span id="A">
+ <span id="A.1">
+ </span>
+ <span id="A.2">
+ </span>
+ <span id="A.3">
+ </span>
+</span>
+<span id="B">
+ <span id="B.1">
+ <span id="B.1.1">
+ </span>
+ </span>
+</span>
+<span id="C">
+ <span id="C.1">
+ <span id="C.1.1">
+ <span id="C.1.1.1">
+ </span>
+ <span id="C.1.1.2">
+ </span>
+ <span id="C.1.1.3">
+ </span>
+ </span>
+ <span id="C.1.2">
+ <span id="C.2.1">
+ </span>
+ </span>
+ </span>
+</span>
+<span id="D">
+</span>
+</div>
+<div style="font-family: Courier; font-size: 14; white-space: pre">
+<script>
+var root = document.getElementById('B');
+
+function testNodeFiter(n)
+{
+ if (n.tagName == 'SPAN') return NodeFilter.FILTER_ACCEPT;
+ return NodeFilter.FILTER_SKIP;
+}
+
+var tw = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, testNodeFiter, false);
+tw.previousNode();
+document.write(dumpTreeWalker(tw, root));
+</script>
+</div>
+</body>
+</html>
diff --git a/LayoutTests/traversal/tree-walker-003-expected.txt b/LayoutTests/traversal/tree-walker-003-expected.txt
new file mode 100644
index 0000000..e4addb1
--- /dev/null
+++ b/LayoutTests/traversal/tree-walker-003-expected.txt
@@ -0,0 +1,146 @@
+layer at (0,0) size 800x600
+ RenderCanvas at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x578
+ RenderBlock {DIV} at (0,0) size 784x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderBlock {DIV} at (0,0) size 784x430
+ RenderBlock {P} at (0,0) size 784x208
+ RenderInline {B} at (0,0) size 104x16
+ RenderText {TEXT} at (0,0) size 104x16
+ text run at (0,0) width 104: "Tree Walker: "
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,16) size 8x16
+ text run at (0,16) width 8: "A"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,32) size 40x16
+ text run at (0,32) width 40: " A.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,48) size 40x16
+ text run at (0,48) width 40: " A.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,64) size 40x16
+ text run at (0,64) width 40: " A.3"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,80) size 8x16
+ text run at (0,80) width 8: "B"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,96) size 40x16
+ text run at (0,96) width 40: " B.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,112) size 72x16
+ text run at (0,112) width 72: " B.2.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,128) size 8x16
+ text run at (0,128) width 8: "C"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,144) size 40x16
+ text run at (0,144) width 40: " C.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,160) size 72x16
+ text run at (0,160) width 72: " C.1.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,176) size 88x16
+ text run at (0,176) width 88: " C.2.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,192) size 8x16
+ text run at (0,192) width 8: "D"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderBlock {P} at (0,222) size 784x208
+ RenderInline {B} at (0,0) size 104x16
+ RenderText {TEXT} at (0,0) size 104x16
+ text run at (0,0) width 104: "Tree Walker: "
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,16) size 8x16
+ text run at (0,16) width 8: "D"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,32) size 88x16
+ text run at (0,32) width 88: " C.2.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,48) size 72x16
+ text run at (0,48) width 72: " C.1.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,64) size 40x16
+ text run at (0,64) width 40: " C.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,80) size 8x16
+ text run at (0,80) width 8: "C"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,96) size 72x16
+ text run at (0,96) width 72: " B.2.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,112) size 40x16
+ text run at (0,112) width 40: " B.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,128) size 8x16
+ text run at (0,128) width 8: "B"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,144) size 40x16
+ text run at (0,144) width 40: " A.3"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,160) size 40x16
+ text run at (0,160) width 40: " A.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,176) size 40x16
+ text run at (0,176) width 40: " A.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,192) size 8x16
+ text run at (0,192) width 8: "A"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
diff --git a/LayoutTests/traversal/tree-walker-003.html b/LayoutTests/traversal/tree-walker-003.html
new file mode 100644
index 0000000..6cc7b56
--- /dev/null
+++ b/LayoutTests/traversal/tree-walker-003.html
@@ -0,0 +1,70 @@
+<html>
+<head>
+<script src=traversal.js language="JavaScript" type="text/JavaScript" ></script>
+<title>Traversal Test</title>
+</head>
+<body>
+<div id="test">
+<span id="A">
+ <span id="A.1">
+ </span>
+ <span id="A.2">
+ </span>
+ <span id="A.3">
+ </span>
+</span>
+<span id="B">
+ <span id="B.1">
+ <span id="B.1.1">
+ </span>
+ <span id="B.1.2">
+ </span>
+ </span>
+ <span id="B.2">
+ <span id="B.2.1">
+ </span>
+ </span>
+</span>
+<span id="C">
+ <span id="C.1">
+ <span id="C.1.1">
+ <span id="C.1.1.1">
+ </span>
+ <span id="C.1.1.2">
+ </span>
+ <span id="C.1.1.3">
+ </span>
+ </span>
+ <span id="C.1.2">
+ <span id="C.2.1">
+ </span>
+ </span>
+ </span>
+</span>
+<span id="D">
+</span>
+</div>
+<div style="font-family: Courier; font-size: 14; white-space: pre">
+<script>
+var root = document.getElementById('A');
+
+function testNodeFiter(n)
+{
+ if (n.tagName == 'SPAN') {
+ if (n.id == 'B.1' || n.id == 'C.1.1')
+ return NodeFilter.FILTER_REJECT;
+ return NodeFilter.FILTER_ACCEPT;
+ }
+ return NodeFilter.FILTER_SKIP;
+}
+
+var tw1 = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, testNodeFiter, false);
+document.write(dumpTreeWalker(tw1, root));
+
+var tw2 = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, testNodeFiter, false);
+document.write(dumpTreeWalker(tw2, root, document.getElementById('D'), true));
+
+</script>
+</div>
+</body>
+</html>
diff --git a/LayoutTests/traversal/tree-walker-004-expected.txt b/LayoutTests/traversal/tree-walker-004-expected.txt
new file mode 100644
index 0000000..46dec47
--- /dev/null
+++ b/LayoutTests/traversal/tree-walker-004-expected.txt
@@ -0,0 +1,188 @@
+layer at (0,0) size 800x676
+ RenderCanvas at (0,0) size 800x600
+layer at (0,0) size 800x676
+ RenderBlock {HTML} at (0,0) size 800x676
+ RenderBody {BODY} at (8,8) size 784x654
+ RenderBlock {DIV} at (0,0) size 784x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderInline {SPAN} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
+ RenderBlock {DIV} at (0,0) size 784x654
+ RenderBlock {P} at (0,0) size 784x320
+ RenderInline {B} at (0,0) size 104x16
+ RenderText {TEXT} at (0,0) size 104x16
+ text run at (0,0) width 104: "Tree Walker: "
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,16) size 8x16
+ text run at (0,16) width 8: "A"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,32) size 40x16
+ text run at (0,32) width 40: " A.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,48) size 40x16
+ text run at (0,48) width 40: " A.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,64) size 40x16
+ text run at (0,64) width 40: " A.3"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,80) size 8x16
+ text run at (0,80) width 8: "B"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,96) size 40x16
+ text run at (0,96) width 40: " B.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,112) size 72x16
+ text run at (0,112) width 72: " B.1.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,128) size 72x16
+ text run at (0,128) width 72: " B.1.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,144) size 40x16
+ text run at (0,144) width 40: " B.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,160) size 72x16
+ text run at (0,160) width 72: " B.2.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,176) size 8x16
+ text run at (0,176) width 8: "C"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,192) size 40x16
+ text run at (0,192) width 40: " C.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,208) size 72x16
+ text run at (0,208) width 72: " C.1.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,224) size 104x16
+ text run at (0,224) width 104: " C.1.1.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,240) size 104x16
+ text run at (0,240) width 104: " C.1.1.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,256) size 104x16
+ text run at (0,256) width 104: " C.1.1.3"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,272) size 72x16
+ text run at (0,272) width 72: " C.1.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,288) size 88x16
+ text run at (0,288) width 88: " C.2.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,304) size 8x16
+ text run at (0,304) width 8: "D"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderBlock {P} at (0,334) size 784x320
+ RenderInline {B} at (0,0) size 104x16
+ RenderText {TEXT} at (0,0) size 104x16
+ text run at (0,0) width 104: "Tree Walker: "
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,16) size 8x16
+ text run at (0,16) width 8: "D"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,32) size 88x16
+ text run at (0,32) width 88: " C.2.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,48) size 72x16
+ text run at (0,48) width 72: " C.1.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,64) size 104x16
+ text run at (0,64) width 104: " C.1.1.3"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,80) size 104x16
+ text run at (0,80) width 104: " C.1.1.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,96) size 104x16
+ text run at (0,96) width 104: " C.1.1.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,112) size 72x16
+ text run at (0,112) width 72: " C.1.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,128) size 40x16
+ text run at (0,128) width 40: " C.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,144) size 8x16
+ text run at (0,144) width 8: "C"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,160) size 72x16
+ text run at (0,160) width 72: " B.2.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,176) size 40x16
+ text run at (0,176) width 40: " B.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,192) size 72x16
+ text run at (0,192) width 72: " B.1.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,208) size 72x16
+ text run at (0,208) width 72: " B.1.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,224) size 40x16
+ text run at (0,224) width 40: " B.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,240) size 8x16
+ text run at (0,240) width 8: "B"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,256) size 40x16
+ text run at (0,256) width 40: " A.3"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,272) size 40x16
+ text run at (0,272) width 40: " A.2"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,288) size 40x16
+ text run at (0,288) width 40: " A.1"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,304) size 8x16
+ text run at (0,304) width 8: "A"
+ RenderBR {BR} at (0,0) size 0x0
+ RenderText {TEXT} at (0,0) size 0x0
diff --git a/LayoutTests/traversal/tree-walker-004.html b/LayoutTests/traversal/tree-walker-004.html
new file mode 100644
index 0000000..8d1a5f8
--- /dev/null
+++ b/LayoutTests/traversal/tree-walker-004.html
@@ -0,0 +1,67 @@
+<html>
+<head>
+<script src=traversal.js language="JavaScript" type="text/JavaScript" ></script>
+<title>Traversal Test</title>
+</head>
+<body>
+<div id="test">
+<span id="A">
+ <span id="A.1">
+ </span>
+ <span id="A.2">
+ </span>
+ <span id="A.3">
+ </span>
+</span>
+<span id="B">
+ <span id="B.1">
+ <span id="B.1.1">
+ </span>
+ <span id="B.1.2">
+ </span>
+ </span>
+ <span id="B.2">
+ <span id="B.2.1">
+ </span>
+ </span>
+</span>
+<span id="C">
+ <span id="C.1">
+ <span id="C.1.1">
+ <span id="C.1.1.1">
+ </span>
+ <span id="C.1.1.2">
+ </span>
+ <span id="C.1.1.3">
+ </span>
+ </span>
+ <span id="C.1.2">
+ <span id="C.2.1">
+ </span>
+ </span>
+ </span>
+</span>
+<span id="D">
+</span>
+</div>
+<div style="font-family: Courier; font-size: 14; white-space: pre">
+<script>
+var root = document.getElementById('A');
+
+function testNodeFiter(n)
+{
+ if (n.tagName == 'SPAN')
+ return NodeFilter.FILTER_ACCEPT;
+ return NodeFilter.FILTER_SKIP;
+}
+
+var tw1 = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, testNodeFiter, false);
+document.write(dumpTreeWalker(tw1, root));
+
+var tw2 = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, testNodeFiter, false);
+document.write(dumpTreeWalker(tw2, root, document.getElementById('D'), true));
+
+</script>
+</div>
+</body>
+</html>
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index d96dbea..c3f06a2 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,5 +1,35 @@
2004-05-04 Ken Kocienda <kocienda at apple.com>
+ Reviewed by me
+
+ Added layout tests for DOM traversal objects.
+
+ * layout-tests/traversal/node-iterator-001-expected.txt: Added.
+ * layout-tests/traversal/node-iterator-001.html: Added.
+ * layout-tests/traversal/node-iterator-002-expected.txt: Added.
+ * layout-tests/traversal/node-iterator-002.html: Added.
+ * layout-tests/traversal/node-iterator-003-expected.txt: Added.
+ * layout-tests/traversal/node-iterator-003.html: Added.
+ * layout-tests/traversal/node-iterator-004-expected.txt: Added.
+ * layout-tests/traversal/node-iterator-004.html: Added.
+ * layout-tests/traversal/node-iterator-005-expected.txt: Added.
+ * layout-tests/traversal/node-iterator-005.html: Added.
+ * layout-tests/traversal/node-iterator-006-expected.txt: Added.
+ * layout-tests/traversal/node-iterator-006.html: Added.
+ * layout-tests/traversal/node-iterator-007-expected.txt: Added.
+ * layout-tests/traversal/node-iterator-007.html: Added.
+ * layout-tests/traversal/traversal.js: Added.
+ * layout-tests/traversal/tree-walker-001-expected.txt: Added.
+ * layout-tests/traversal/tree-walker-001.html: Added.
+ * layout-tests/traversal/tree-walker-002-expected.txt: Added.
+ * layout-tests/traversal/tree-walker-002.html: Added.
+ * layout-tests/traversal/tree-walker-003-expected.txt: Added.
+ * layout-tests/traversal/tree-walker-003.html: Added.
+ * layout-tests/traversal/tree-walker-004-expected.txt: Added.
+ * layout-tests/traversal/tree-walker-004.html: Added.
+
+2004-05-04 Ken Kocienda <kocienda at apple.com>
+
Reviewed by Hyatt
* khtml/xml/dom2_traversalimpl.cpp:
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list