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

Side by Side Diff: third_party/WebKit/LayoutTests/imported/web-platform-tests/dom/traversal/TreeWalker-basic.html

Issue 1529523002: Import dom/ from web-platform-tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: tweak W3CImportExpectations Created 5 years 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 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <!--
4 Test adapted from https://mxr.mozilla.org/chromium/source/src/third_party/WebKit /LayoutTests/fast/dom/TreeWalker/TreeWalker-basic.html
5 -->
3 <head> 6 <head>
4 <title>TreeWalker: Basic test</title> 7 <title>TreeWalker: Basic test</title>
5 <script src="../../../resources/testharness.js"></script> 8 <script src="../../../../resources/testharness.js"></script>
6 <script src="../../../resources/testharnessreport.js"></script> 9 <script src="../../../../resources/testharnessreport.js"></script>
7 <link rel="stylesheet" href="../../../resources/testharness.css"> 10 <script src="traversal-support.js"></script>
11 <link rel="stylesheet" href="../../../../resources/testharness.css">
12 <div id=log></div>
8 </head> 13 </head>
9 <body> 14 <body>
10 <p>This test checks the basic functionality of TreeWalker.</p> 15 <p>This test checks the basic functionality of TreeWalker.</p>
11 <script> 16 <script>
12 function createSampleDOM() 17 function createSampleDOM()
13 { 18 {
14 // Tree structure: 19 // Tree structure:
15 // #a 20 // #a
16 // | 21 // |
17 // +----+----+ 22 // +----+----+
18 // | | 23 // | |
19 // "b" #c 24 // "b" #c
20 // | 25 // |
21 // +----+----+ 26 // +----+----+
22 // | | 27 // | |
23 // #d <!--j--> 28 // #d <!--j-->
24 // | 29 // |
25 // +----+----+ 30 // +----+----+
26 // | | | 31 // | | |
27 // "e" #f "i" 32 // "e" #f "i"
28 // | 33 // |
29 // +--+--+ 34 // +--+--+
30 // | | 35 // | |
31 // "g" <!--h--> 36 // "g" <!--h-->
32 var div = document.createElement('div'); 37 var div = document.createElement('div');
33 div.id = 'a'; 38 div.id = 'a';
34 div.innerHTML = 'b<div id="c"><div id="d">e<span id="f">g<!--h--></span>i</d iv><!--j--></div>'; 39 // div.innerHTML = 'b<div id="c"><div id="d">e<span id="f">g<!--h--></span>i </div><!--j--></div>';
40
41 div.appendChild(document.createTextNode("b"));
42
43 var c = document.createElement("div");
44 c.id = 'c';
45 div.appendChild(c);
46
47 var d = document.createElement("div");
48 d.id = 'd';
49 c.appendChild(d);
50
51 var e = document.createTextNode("e");
52 d.appendChild(e);
53
54 var f = document.createElement("span");
55 f.id = 'f';
56 d.appendChild(f);
57
58 var g = document.createTextNode("g");
59 f.appendChild(g);
60
61 var h = document.createComment("h");
62 f.appendChild(h);
63
64 var i = document.createTextNode("i");
65 d.appendChild(i);
66
67 var j = document.createComment("j");
68 c.appendChild(j);
69
35 return div; 70 return div;
36 } 71 }
37 72
38 function check_walker(walker, root) 73 function check_walker(walker, root, whatToShowValue)
39 { 74 {
40 assert_equals(walker.toString(), '[object TreeWalker]'); 75 whatToShowValue = whatToShowValue === undefined ? 0xFFFFFFFF : whatToShowVal ue;
41 assert_equals(walker.root, root); 76
42 assert_equals(walker.whatToShow, 0xFFFFFFFF); 77 assert_equals(walker.toString(), '[object TreeWalker]', 'toString');
43 assert_equals(walker.filter, null); 78 assert_equals(walker.root, root, 'root');
44 assert_equals(walker.currentNode, root); 79 assert_equals(walker.whatToShow, whatToShowValue, 'whatToShow');
80 assert_equals(walker.filter, null, 'filter');
81 assert_equals(walker.currentNode, root, 'currentNode');
45 assert_readonly(walker, 'root'); 82 assert_readonly(walker, 'root');
46 assert_readonly(walker, 'whatToShow'); 83 assert_readonly(walker, 'whatToShow');
47 assert_readonly(walker, 'filter'); 84 assert_readonly(walker, 'filter');
48 assert_idl_attribute(walker, 'parentNode');
49 assert_idl_attribute(walker, 'firstChild');
50 assert_idl_attribute(walker, 'lastChild');
51 assert_idl_attribute(walker, 'previousSibling');
52 assert_idl_attribute(walker, 'nextSibling');
53 assert_idl_attribute(walker, 'previousNode');
54 assert_idl_attribute(walker, 'nextNode');
55 } 85 }
56 86
57 test(function () 87 test(function ()
58 { 88 {
59 var root = createSampleDOM(); 89 var root = createSampleDOM();
60 var walker = document.createTreeWalker(root); 90 var walker = document.createTreeWalker(root);
61 check_walker(walker, root); 91 check_walker(walker, root);
62 }, 'Construct a TreeWalker by document.createTreeWalker(root).'); 92 }, 'Construct a TreeWalker by document.createTreeWalker(root).');
63 93
64 test(function () 94 test(function ()
65 { 95 {
66 var root = createSampleDOM(); 96 var root = createSampleDOM();
97 var walker = document.createTreeWalker(root, null, null);
98 check_walker(walker, root, 0);
99 }, 'Construct a TreeWalker by document.createTreeWalker(root, null, null).');
100
101 test(function ()
102 {
103 var root = createSampleDOM();
67 var walker = document.createTreeWalker(root, undefined, undefined); 104 var walker = document.createTreeWalker(root, undefined, undefined);
68 check_walker(walker, root); 105 check_walker(walker, root);
69 }, 'Construct a TreeWalker by document.createTreeWalker(root, undefined, undefin ed).'); 106 }, 'Construct a TreeWalker by document.createTreeWalker(root, undefined, undefin ed).');
70 107
71 test(function () 108 test(function ()
72 { 109 {
73 assert_throws(new TypeError(), function () { document.createTreeWalker(); }) ; 110 assert_throws(new TypeError(), function () { document.createTreeWalker(); }) ;
74 assert_throws(new TypeError(), function () { document.createTreeWalker(null) ; }); 111 assert_throws(new TypeError(), function () { document.createTreeWalker(null) ; });
75 assert_throws(new TypeError(), function () { document.createTreeWalker(undef ined); }); 112 assert_throws(new TypeError(), function () { document.createTreeWalker(undef ined); });
76 assert_throws(new TypeError(), function () { document.createTreeWalker(new O bject()); }); 113 assert_throws(new TypeError(), function () { document.createTreeWalker(new O bject()); });
77 assert_throws(new TypeError(), function () { document.createTreeWalker(1); } ); 114 assert_throws(new TypeError(), function () { document.createTreeWalker(1); } );
78 }, 'Give an invalid root node to document.createTreeWalker().'); 115 }, 'Give an invalid root node to document.createTreeWalker().');
79 116
80 // |expected| should be an object indicating the expected type of node.
81 function assert_node(actual, expected)
82 {
83 assert_true(actual instanceof expected.type,
84 'Node type mismatch: actual = ' + actual.nodeType + ', expected = ' + expected.nodeType);
85 if (typeof(expected.id) !== 'undefined')
86 assert_equals(actual.id, expected.id);
87 if (typeof(expected.nodeValue) !== 'undefined')
88 assert_equals(actual.nodeValue, expected.nodeValue);
89 }
90
91 test(function () 117 test(function ()
92 { 118 {
93 var root = createSampleDOM(); 119 var root = createSampleDOM();
94 var walker = document.createTreeWalker(root); 120 var walker = document.createTreeWalker(root);
95 var f = root.lastChild.firstChild.childNodes[1]; // An element node: div#f. 121 var f = root.lastChild.firstChild.childNodes[1]; // An element node: div#f.
96 var body = document.body; // An element outside |root|.
97 122
98 assert_node(walker.currentNode, { type: Element, id: 'a' }); 123 assert_node(walker.currentNode, { type: Element, id: 'a' });
99 assert_equals(walker.parentNode(), null); 124 assert_equals(walker.parentNode(), null);
100 assert_node(walker.currentNode, { type: Element, id: 'a' }); 125 assert_node(walker.currentNode, { type: Element, id: 'a' });
101 assert_node(walker.firstChild(), { type: Text, nodeValue: 'b' }); 126 assert_node(walker.firstChild(), { type: Text, nodeValue: 'b' });
102 assert_node(walker.currentNode, { type: Text, nodeValue: 'b' }); 127 assert_node(walker.currentNode, { type: Text, nodeValue: 'b' });
103 assert_node(walker.nextSibling(), { type: Element, id: 'c' }); 128 assert_node(walker.nextSibling(), { type: Element, id: 'c' });
104 assert_node(walker.currentNode, { type: Element, id: 'c' }); 129 assert_node(walker.currentNode, { type: Element, id: 'c' });
105 assert_node(walker.lastChild(), { type: Comment, nodeValue: 'j' }); 130 assert_node(walker.lastChild(), { type: Comment, nodeValue: 'j' });
106 assert_node(walker.currentNode, { type: Comment, nodeValue: 'j' }); 131 assert_node(walker.currentNode, { type: Comment, nodeValue: 'j' });
107 assert_node(walker.previousSibling(), { type: Element, id: 'd' }); 132 assert_node(walker.previousSibling(), { type: Element, id: 'd' });
108 assert_node(walker.currentNode, { type: Element, id: 'd' }); 133 assert_node(walker.currentNode, { type: Element, id: 'd' });
109 assert_node(walker.nextNode(), { type: Text, nodeValue: 'e' }); 134 assert_node(walker.nextNode(), { type: Text, nodeValue: 'e' });
110 assert_node(walker.currentNode, { type: Text, nodeValue: 'e' }); 135 assert_node(walker.currentNode, { type: Text, nodeValue: 'e' });
111 assert_node(walker.parentNode(), { type: Element, id: 'd' }); 136 assert_node(walker.parentNode(), { type: Element, id: 'd' });
112 assert_node(walker.currentNode, { type: Element, id: 'd' }); 137 assert_node(walker.currentNode, { type: Element, id: 'd' });
113 assert_node(walker.previousNode(), { type: Element, id: 'c' }); 138 assert_node(walker.previousNode(), { type: Element, id: 'c' });
114 assert_node(walker.currentNode, { type: Element, id: 'c' }); 139 assert_node(walker.currentNode, { type: Element, id: 'c' });
115 assert_equals(walker.nextSibling(), null); 140 assert_equals(walker.nextSibling(), null);
116 assert_node(walker.currentNode, { type: Element, id: 'c' }); 141 assert_node(walker.currentNode, { type: Element, id: 'c' });
117 walker.currentNode = f; 142 walker.currentNode = f;
118 assert_equals(walker.currentNode, f); 143 assert_equals(walker.currentNode, f);
119 }, 'Walk over nodes.'); 144 }, 'Walk over nodes.');
120 145
121 // FIXME: Add tests that use |whatToShow| argument and/or |filter| argument.
122
123 test(function() { 146 test(function() {
124 var treeWalker = document.createTreeWalker(document.body, 42, null); 147 var treeWalker = document.createTreeWalker(document.body, 42, null);
125 assert_equals(treeWalker.root, document.body); 148 assert_equals(treeWalker.root, document.body);
126 assert_equals(treeWalker.currentNode, document.body); 149 assert_equals(treeWalker.currentNode, document.body);
127 assert_equals(treeWalker.whatToShow, 42); 150 assert_equals(treeWalker.whatToShow, 42);
128 assert_equals(treeWalker.filter, null); 151 assert_equals(treeWalker.filter, null);
129 }, "Optional arguments to createTreeWalker should be optional (3 passed, null)." ); 152 }, "Optional arguments to createTreeWalker should be optional (3 passed, null)." );
130 </script> 153 </script>
131 </body> 154 </body>
132 </html> 155 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698