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

Side by Side Diff: LayoutTests/fast/dom/TreeWalker/TreeWalker-basic.html

Issue 16865007: Make createNodeIterator() and createTreeWalker() accept default arguments. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 6 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>TreeWalker: Basic test</title>
5 <script src="../../../resources/testharness.js"></script>
6 <script src="../../../resources/testharnessreport.js"></script>
7 <link rel="stylesheet" href="../../../resources/testharness.css">
8 </head>
9 <body>
10 <p>This test checks the basic functionality of TreeWalker.</p>
11 <script>
12 function createSampleDOM()
13 {
14 // Tree structure:
15 // #a
16 // |
17 // +----+----+
18 // | |
19 // "b" #c
20 // |
21 // +----+----+
22 // | |
23 // #d <!--j-->
24 // |
25 // +----+----+
26 // | | |
27 // "e" #f "i"
28 // |
29 // +--+--+
30 // | |
31 // "g" <!--h-->
32 var div = document.createElement('div');
33 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>';
35 return div;
36 }
37
38 test(function ()
39 {
40 var root = createSampleDOM();
41 var walker = document.createTreeWalker(root);
42 assert_equals(walker.toString(), '[object TreeWalker]');
43 assert_equals(walker.root, root);
44 assert_equals(walker.whatToShow, 0xFFFFFFFF);
45 assert_equals(walker.filter, null);
46 assert_equals(walker.currentNode, root);
47 assert_readonly(walker, 'root');
48 assert_readonly(walker, 'whatToShow');
49 assert_readonly(walker, 'filter');
50 assert_idl_attribute(walker, 'parentNode');
51 assert_idl_attribute(walker, 'firstChild');
52 assert_idl_attribute(walker, 'lastChild');
53 assert_idl_attribute(walker, 'previousSibling');
54 assert_idl_attribute(walker, 'nextSibling');
55 assert_idl_attribute(walker, 'previousNode');
56 assert_idl_attribute(walker, 'nextNode');
57 }, 'Construct a TreeWalker by document.createTreeWalker().');
58
59 test(function ()
60 {
61 assert_throws(new TypeError(), function () { document.createTreeWalker(); }) ;
62 assert_throws('NOT_SUPPORTED_ERR', function () { document.createTreeWalker(n ull); });
63 assert_throws('NOT_SUPPORTED_ERR', function () { document.createTreeWalker(u ndefined); });
64 assert_throws('NOT_SUPPORTED_ERR', function () { document.createTreeWalker(n ew Object()); });
65 assert_throws('NOT_SUPPORTED_ERR', function () { document.createTreeWalker(1 ); });
66 }, 'Give an invalid root node to document.createTreeWalker().');
67
68 // |expected| should be an object indicating the expected type of node.
69 function assert_node(actual, expected)
70 {
71 if (expected.type === 'element') {
72 assert_equals(actual.nodeType, Node.ELEMENT_NODE, '');
73 assert_equals(actual.id, expected.id);
74 } else if (expected.type == 'text') {
75 assert_equals(actual.nodeType, Node.TEXT_NODE);
76 assert_equals(actual.nodeValue, expected.content);
77 } else if (expected.type == 'comment') {
78 assert_equals(actual.nodeType, Node.COMMENT_NODE);
79 assert_equals(actual.nodeValue, expected.content);
80 } else {
81 assert_unreached();
82 }
83 }
84
85 test(function ()
86 {
87 var root = createSampleDOM();
88 var walker = document.createTreeWalker(root);
89 var f = root.lastChild.firstChild.childNodes[1]; // An element node: div#f.
90 var body = document.body; // An element outside |root|.
91
92 assert_node(walker.currentNode, { type: 'element', id: 'a' });
93 assert_equals(walker.parentNode(), null);
94 assert_node(walker.currentNode, { type: 'element', id: 'a' });
95 assert_node(walker.firstChild(), { type: 'text', content: 'b' });
96 assert_node(walker.currentNode, { type: 'text', content: 'b' });
97 assert_node(walker.nextSibling(), { type: 'element', id: 'c' });
98 assert_node(walker.currentNode, { type: 'element', id: 'c' });
99 assert_node(walker.lastChild(), { type: 'comment', content: 'j' });
100 assert_node(walker.currentNode, { type: 'comment', content: 'j' });
101 assert_node(walker.previousSibling(), { type: 'element', id: 'd' });
102 assert_node(walker.currentNode, { type: 'element', id: 'd' });
103 assert_node(walker.nextNode(), { type: 'text', content: 'e' });
104 assert_node(walker.currentNode, { type: 'text', content: 'e' });
105 assert_node(walker.parentNode(), { type: 'element', id: 'd' });
106 assert_node(walker.currentNode, { type: 'element', id: 'd' });
107 assert_node(walker.previousNode(), { type: 'element', id: 'c' });
108 assert_node(walker.currentNode, { type: 'element', id: 'c' });
109 assert_equals(walker.nextSibling(), null);
110 assert_node(walker.currentNode, { type: 'element', id: 'c' });
111 walker.currentNode = f;
112 assert_equals(walker.currentNode, f);
113 }, 'Walk over nodes.');
114
115 // FIXME: Add tests that use |whatToShow| argument and/or |filter| argument.
116 </script>
117 </body>
118 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698