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

Side by Side Diff: tests/dom/htmlcollection_test.dart

Issue 10222026: Migrate dom tests to dart:html. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebase & address comments. Created 8 years, 8 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
1 #library('HTMLCollectionTest'); 1 #library('ElementListTest');
2 #import('../../lib/unittest/unittest.dart'); 2 #import('../../lib/unittest/unittest.dart');
3 #import('../../lib/unittest/dom_config.dart'); 3 #import('../../lib/unittest/html_config.dart');
4 #import('dart:dom'); 4 #import('dart:html');
5 5
6 // Test that HTMLCollection implements List<T> 6 // Test that ElementList implements List<T>
7 main() { 7 main() {
8 HTMLElement insertTestDiv() { 8 Element insertTestDiv() {
9 HTMLElement element = document.createElement('div'); 9 Element element = new Element.tag('div');
10 element.innerHTML = @""" 10 element.innerHTML = @"""
11 <div id='allChecked'> 11 <div id='allChecked'>
12 <input type="checkbox" name="c1" value="1" checked="yes"> 12 <input type="checkbox" name="c1" value="1" checked="yes">
13 <input type="checkbox" name="c2" value="2" checked="yes"> 13 <input type="checkbox" name="c2" value="2" checked="yes">
14 <input type="checkbox" name="c3" value="3" checked="yes"> 14 <input type="checkbox" name="c3" value="3" checked="yes">
15 <input type="checkbox" name="c4" value="4" checked="yes"> 15 <input type="checkbox" name="c4" value="4" checked="yes">
16 </div> 16 </div>
17 <div id='someChecked'> 17 <div id='someChecked'>
18 <input type="checkbox" name="s1" value="1" checked="yes"> 18 <input type="checkbox" name="s1" value="1" checked="yes">
19 <input type="checkbox" name="s2" value="2"> 19 <input type="checkbox" name="s2" value="2">
20 <input type="checkbox" name="s3" value="3" checked="yes"> 20 <input type="checkbox" name="s3" value="3" checked="yes">
21 <input type="checkbox" name="s4" value="4"> 21 <input type="checkbox" name="s4" value="4">
22 </div> 22 </div>
23 <div id='noneChecked'> 23 <div id='noneChecked'>
24 <input type="checkbox" name="n1" value="1"> 24 <input type="checkbox" name="n1" value="1">
25 <input type="checkbox" name="n2" value="2"> 25 <input type="checkbox" name="n2" value="2">
26 <input type="checkbox" name="n3" value="3"> 26 <input type="checkbox" name="n3" value="3">
27 <input type="checkbox" name="n4" value="4"> 27 <input type="checkbox" name="n4" value="4">
28 </div> 28 </div>
29 <div id='emptyDiv'></div> 29 <div id='emptyDiv'></div>
30 """; 30 """;
31 document.body.appendChild(element); 31 document.body.nodes.add(element);
32 return element; 32 return element;
33 } 33 }
34 34
35 useDomConfiguration(); 35 useHtmlConfiguration();
36 test('IsList', () { 36 test('IsList', () {
37 HTMLElement root = insertTestDiv(); 37 Element root = insertTestDiv();
38 38
39 HTMLCollection eachChecked = 39 ElementList eachChecked =
40 document.getElementById('allChecked').dynamic.children; 40 document.query('#allChecked').elements;
41 41
42 Expect.isTrue(eachChecked is List); 42 Expect.isTrue(eachChecked is List);
43 43
44 document.body.removeChild(root); 44 root.remove();
45 }); 45 });
46 test('Every', () { 46 test('Every', () {
47 HTMLElement root = insertTestDiv(); 47 Element root = insertTestDiv();
48 48
49 HTMLCollection eachChecked = 49 ElementList eachChecked =
50 document.getElementById('allChecked').dynamic.children; 50 document.query('#allChecked').elements;
51 51
52 HTMLCollection someChecked = 52 ElementList someChecked =
53 document.getElementById('someChecked').dynamic.children; 53 document.query('#someChecked').elements;
54 54
55 HTMLCollection noneChecked = 55 ElementList noneChecked =
56 document.getElementById('noneChecked').dynamic.children; 56 document.query('#noneChecked').elements;
57 57
58 Expect.equals(4, eachChecked.length); 58 Expect.equals(4, eachChecked.length);
59 Expect.equals(4, someChecked.length); 59 Expect.equals(4, someChecked.length);
60 Expect.equals(4, noneChecked.length); 60 Expect.equals(4, noneChecked.length);
61 61
62 Expect.isTrue(eachChecked.every((x) => x.checked)); 62 Expect.isTrue(eachChecked.every((x) => x.checked));
63 Expect.isFalse(eachChecked.every((x) => !x.checked)); 63 Expect.isFalse(eachChecked.every((x) => !x.checked));
64 Expect.isFalse(someChecked.every((x) => x.checked)); 64 Expect.isFalse(someChecked.every((x) => x.checked));
65 Expect.isFalse(someChecked.every((x) => !x.checked)); 65 Expect.isFalse(someChecked.every((x) => !x.checked));
66 Expect.isFalse(noneChecked.every((x) => x.checked)); 66 Expect.isFalse(noneChecked.every((x) => x.checked));
67 Expect.isTrue(noneChecked.every((x) => !x.checked)); 67 Expect.isTrue(noneChecked.every((x) => !x.checked));
68 68
69 document.body.removeChild(root); 69 root.remove();
70 }); 70 });
71 test('Some', () { 71 test('Some', () {
72 HTMLElement root = insertTestDiv(); 72 Element root = insertTestDiv();
73 73
74 HTMLCollection eachChecked = 74 ElementList eachChecked =
75 document.getElementById('allChecked').dynamic.children; 75 document.query('#allChecked').elements;
76 76
77 HTMLCollection someChecked = 77 ElementList someChecked =
78 document.getElementById('someChecked').dynamic.children; 78 document.query('#someChecked').elements;
79 79
80 HTMLCollection noneChecked = 80 ElementList noneChecked =
81 document.getElementById('noneChecked').dynamic.children; 81 document.query('#noneChecked').elements;
82 82
83 Expect.equals(4, eachChecked.length); 83 Expect.equals(4, eachChecked.length);
84 Expect.equals(4, someChecked.length); 84 Expect.equals(4, someChecked.length);
85 Expect.equals(4, noneChecked.length); 85 Expect.equals(4, noneChecked.length);
86 86
87 Expect.isTrue(eachChecked.some((x) => x.checked)); 87 Expect.isTrue(eachChecked.some((x) => x.checked));
88 Expect.isFalse(eachChecked.some((x) => !x.checked)); 88 Expect.isFalse(eachChecked.some((x) => !x.checked));
89 Expect.isTrue(someChecked.some((x) => x.checked)); 89 Expect.isTrue(someChecked.some((x) => x.checked));
90 Expect.isTrue(someChecked.some((x) => !x.checked)); 90 Expect.isTrue(someChecked.some((x) => !x.checked));
91 Expect.isFalse(noneChecked.some((x) => x.checked)); 91 Expect.isFalse(noneChecked.some((x) => x.checked));
92 Expect.isTrue(noneChecked.some((x) => !x.checked)); 92 Expect.isTrue(noneChecked.some((x) => !x.checked));
93 93
94 document.body.removeChild(root); 94 root.remove();
95 }); 95 });
96 test('Filter', () { 96 test('Filter', () {
97 HTMLElement root = insertTestDiv(); 97 Element root = insertTestDiv();
98 98
99 HTMLCollection eachChecked = 99 ElementList eachChecked =
100 document.getElementById('allChecked').dynamic.children; 100 document.query('#allChecked').elements;
101 101
102 HTMLCollection someChecked = 102 ElementList someChecked =
103 document.getElementById('someChecked').dynamic.children; 103 document.query('#someChecked').elements;
104 104
105 HTMLCollection noneChecked = 105 ElementList noneChecked =
106 document.getElementById('noneChecked').dynamic.children; 106 document.query('#noneChecked').elements;
107 107
108 Expect.equals(4, eachChecked.length); 108 Expect.equals(4, eachChecked.length);
109 Expect.equals(4, someChecked.length); 109 Expect.equals(4, someChecked.length);
110 Expect.equals(4, noneChecked.length); 110 Expect.equals(4, noneChecked.length);
111 111
112 Expect.equals(4, eachChecked.filter((x) => x.checked).length); 112 Expect.equals(4, eachChecked.filter((x) => x.checked).length);
113 Expect.equals(0, eachChecked.filter((x) => !x.checked).length); 113 Expect.equals(0, eachChecked.filter((x) => !x.checked).length);
114 Expect.equals(2, someChecked.filter((x) => x.checked).length); 114 Expect.equals(2, someChecked.filter((x) => x.checked).length);
115 Expect.equals(2, someChecked.filter((x) => !x.checked).length); 115 Expect.equals(2, someChecked.filter((x) => !x.checked).length);
116 Expect.equals(0, noneChecked.filter((x) => x.checked).length); 116 Expect.equals(0, noneChecked.filter((x) => x.checked).length);
117 Expect.equals(4, noneChecked.filter((x) => !x.checked).length); 117 Expect.equals(4, noneChecked.filter((x) => !x.checked).length);
118 118
119 document.body.removeChild(root); 119 root.remove();
120 }); 120 });
121 test('IsEmpty', () { 121 test('IsEmpty', () {
122 HTMLElement root = insertTestDiv(); 122 Element root = insertTestDiv();
123 123
124 HTMLCollection someChecked = 124 ElementList someChecked =
125 document.getElementById('someChecked').dynamic.children; 125 document.query('#someChecked').elements;
126 126
127 HTMLCollection emptyDiv = 127 ElementList emptyDiv =
128 document.getElementById('emptyDiv').dynamic.children; 128 document.query('#emptyDiv').elements;
129 129
130 Expect.equals(4, someChecked.length); 130 Expect.equals(4, someChecked.length);
131 Expect.equals(0, emptyDiv.length); 131 Expect.equals(0, emptyDiv.length);
132 132
133 Expect.isFalse(someChecked.isEmpty()); 133 Expect.isFalse(someChecked.isEmpty());
134 Expect.isTrue(emptyDiv.isEmpty()); 134 Expect.isTrue(emptyDiv.isEmpty());
135 135
136 document.body.removeChild(root); 136 root.remove();
137 }); 137 });
138 138
139 int countWithForEach(collection, predicate) { 139 int countWithForEach(collection, predicate) {
140 int count = 0; 140 int count = 0;
141 collection.forEach((element) { 141 collection.forEach((element) {
142 if (predicate(element)) count++; 142 if (predicate(element)) count++;
143 }); 143 });
144 return count; 144 return count;
145 } 145 }
146 146
147 test('ForEach', () { 147 test('ForEach', () {
148 HTMLElement root = insertTestDiv(); 148 Element root = insertTestDiv();
149 149
150 HTMLCollection eachChecked = 150 ElementList eachChecked =
151 document.getElementById('allChecked').dynamic.children; 151 document.query('#allChecked').elements;
152 152
153 HTMLCollection someChecked = 153 ElementList someChecked =
154 document.getElementById('someChecked').dynamic.children; 154 document.query('#someChecked').elements;
155 155
156 HTMLCollection noneChecked = 156 ElementList noneChecked =
157 document.getElementById('noneChecked').dynamic.children; 157 document.query('#noneChecked').elements;
158 158
159 Expect.equals(4, eachChecked.length); 159 Expect.equals(4, eachChecked.length);
160 Expect.equals(4, someChecked.length); 160 Expect.equals(4, someChecked.length);
161 Expect.equals(4, noneChecked.length); 161 Expect.equals(4, noneChecked.length);
162 162
163 Expect.equals(4, countWithForEach(eachChecked, (x) => x.checked)); 163 Expect.equals(4, countWithForEach(eachChecked, (x) => x.checked));
164 Expect.equals(0, countWithForEach(eachChecked, (x) => !x.checked)); 164 Expect.equals(0, countWithForEach(eachChecked, (x) => !x.checked));
165 Expect.equals(2, countWithForEach(someChecked, (x) => x.checked)); 165 Expect.equals(2, countWithForEach(someChecked, (x) => x.checked));
166 Expect.equals(2, countWithForEach(someChecked, (x) => !x.checked)); 166 Expect.equals(2, countWithForEach(someChecked, (x) => !x.checked));
167 Expect.equals(0, countWithForEach(noneChecked, (x) => x.checked)); 167 Expect.equals(0, countWithForEach(noneChecked, (x) => x.checked));
168 Expect.equals(4, countWithForEach(noneChecked, (x) => !x.checked)); 168 Expect.equals(4, countWithForEach(noneChecked, (x) => !x.checked));
169 169
170 document.body.removeChild(root); 170 root.remove();
171 }); 171 });
172 172
173 int countWithForLoop(collection, predicate) { 173 int countWithForLoop(collection, predicate) {
174 int count = 0; 174 int count = 0;
175 for (var element in collection) { 175 for (var element in collection) {
176 if (predicate(element)) count++; 176 if (predicate(element)) count++;
177 } 177 }
178 return count; 178 return count;
179 } 179 }
180 180
181 test('ForLoop', () { // Uses iterator. 181 test('ForLoop', () { // Uses iterator.
182 HTMLElement root = insertTestDiv(); 182 Element root = insertTestDiv();
183 183
184 HTMLCollection eachChecked = 184 ElementList eachChecked =
185 document.getElementById('allChecked').dynamic.children; 185 document.query('#allChecked').elements;
186 186
187 HTMLCollection someChecked = 187 ElementList someChecked =
188 document.getElementById('someChecked').dynamic.children; 188 document.query('#someChecked').elements;
189 189
190 HTMLCollection noneChecked = 190 ElementList noneChecked =
191 document.getElementById('noneChecked').dynamic.children; 191 document.query('#noneChecked').elements;
192 192
193 Expect.equals(4, eachChecked.length); 193 Expect.equals(4, eachChecked.length);
194 Expect.equals(4, someChecked.length); 194 Expect.equals(4, someChecked.length);
195 Expect.equals(4, noneChecked.length); 195 Expect.equals(4, noneChecked.length);
196 196
197 Expect.equals(4, countWithForLoop(eachChecked, (x) => x.checked)); 197 Expect.equals(4, countWithForLoop(eachChecked, (x) => x.checked));
198 Expect.equals(0, countWithForLoop(eachChecked, (x) => !x.checked)); 198 Expect.equals(0, countWithForLoop(eachChecked, (x) => !x.checked));
199 Expect.equals(2, countWithForLoop(someChecked, (x) => x.checked)); 199 Expect.equals(2, countWithForLoop(someChecked, (x) => x.checked));
200 Expect.equals(2, countWithForLoop(someChecked, (x) => !x.checked)); 200 Expect.equals(2, countWithForLoop(someChecked, (x) => !x.checked));
201 Expect.equals(0, countWithForLoop(noneChecked, (x) => x.checked)); 201 Expect.equals(0, countWithForLoop(noneChecked, (x) => x.checked));
202 Expect.equals(4, countWithForLoop(noneChecked, (x) => !x.checked)); 202 Expect.equals(4, countWithForLoop(noneChecked, (x) => !x.checked));
203 203
204 document.body.removeChild(root); 204 root.remove();
205 }); 205 });
206 test('Last', () { 206 test('Last', () {
207 HTMLElement root = insertTestDiv(); 207 Element root = insertTestDiv();
208 208
209 HTMLCollection someChecked = 209 ElementList someChecked =
210 document.getElementById('someChecked').dynamic.children; 210 document.query('#someChecked').elements;
211 211
212 Expect.equals(4, someChecked.length); 212 Expect.equals(4, someChecked.length);
213 213
214 Expect.equals(someChecked[3], someChecked.last()); 214 Expect.equals(someChecked[3], someChecked.last());
215 215
216 document.body.removeChild(root); 216 root.remove();
217 }); 217 });
218 test('IndexOf', () { 218 test('IndexOf', () {
219 HTMLElement root = insertTestDiv(); 219 Element root = insertTestDiv();
220 220
221 HTMLCollection someChecked = 221 ElementList someChecked =
222 document.getElementById('someChecked').dynamic.children; 222 document.query('#someChecked').elements;
223 223
224 HTMLCollection noneChecked = 224 ElementList noneChecked =
225 document.getElementById('noneChecked').dynamic.children; 225 document.query('#noneChecked').elements;
226 226
227 Expect.equals(4, someChecked.length); 227 Expect.equals(4, someChecked.length);
228 Expect.equals(4, noneChecked.length); 228 Expect.equals(4, noneChecked.length);
229 229
230 Expect.equals(0, someChecked.indexOf(someChecked[0], 0)); 230 Expect.equals(0, someChecked.indexOf(someChecked[0], 0));
231 Expect.equals(1, someChecked.indexOf(someChecked[1], 0)); 231 Expect.equals(1, someChecked.indexOf(someChecked[1], 0));
232 Expect.equals(2, someChecked.indexOf(someChecked[2], 0)); 232 Expect.equals(2, someChecked.indexOf(someChecked[2], 0));
233 Expect.equals(3, someChecked.indexOf(someChecked[3], 0)); 233 Expect.equals(3, someChecked.indexOf(someChecked[3], 0));
234 234
235 Expect.equals(-1, someChecked.indexOf(someChecked[0], 1)); 235 Expect.equals(-1, someChecked.indexOf(someChecked[0], 1));
236 Expect.equals(-1, someChecked.indexOf(someChecked[1], 2)); 236 Expect.equals(-1, someChecked.indexOf(someChecked[1], 2));
237 Expect.equals(-1, someChecked.indexOf(someChecked[2], 3)); 237 Expect.equals(-1, someChecked.indexOf(someChecked[2], 3));
238 Expect.equals(-1, someChecked.indexOf(someChecked[3], 4)); 238 Expect.equals(-1, someChecked.indexOf(someChecked[3], 4));
239 239
240 240
241 Expect.equals(-1, someChecked.indexOf(noneChecked[0], 0)); 241 Expect.equals(-1, someChecked.indexOf(noneChecked[0], 0));
242 Expect.equals(-1, noneChecked.indexOf(someChecked[0], 0)); 242 Expect.equals(-1, noneChecked.indexOf(someChecked[0], 0));
243 Expect.equals(-1, someChecked.indexOf(noneChecked[1], 0)); 243 Expect.equals(-1, someChecked.indexOf(noneChecked[1], 0));
244 Expect.equals(-1, noneChecked.indexOf(someChecked[1], 0)); 244 Expect.equals(-1, noneChecked.indexOf(someChecked[1], 0));
245 245
246 document.body.removeChild(root); 246 root.remove();
247 }); 247 });
248 test('LastIndexOf', () { 248 test('LastIndexOf', () {
249 HTMLElement root = insertTestDiv(); 249 Element root = insertTestDiv();
250 250
251 HTMLCollection someChecked = 251 ElementList someChecked =
252 document.getElementById('someChecked').dynamic.children; 252 document.query('#someChecked').elements;
253 253
254 HTMLCollection noneChecked = 254 ElementList noneChecked =
255 document.getElementById('noneChecked').dynamic.children; 255 document.query('#noneChecked').elements;
256 256
257 Expect.equals(4, someChecked.length); 257 Expect.equals(4, someChecked.length);
258 Expect.equals(4, noneChecked.length); 258 Expect.equals(4, noneChecked.length);
259 259
260 Expect.equals(0, someChecked.lastIndexOf(someChecked[0], 3)); 260 Expect.equals(0, someChecked.lastIndexOf(someChecked[0], 3));
261 Expect.equals(1, someChecked.lastIndexOf(someChecked[1], 3)); 261 Expect.equals(1, someChecked.lastIndexOf(someChecked[1], 3));
262 Expect.equals(2, someChecked.lastIndexOf(someChecked[2], 3)); 262 Expect.equals(2, someChecked.lastIndexOf(someChecked[2], 3));
263 Expect.equals(3, someChecked.lastIndexOf(someChecked[3], 3)); 263 Expect.equals(3, someChecked.lastIndexOf(someChecked[3], 3));
264 264
265 Expect.equals(-1, someChecked.lastIndexOf(someChecked[0], -1)); 265 Expect.equals(-1, someChecked.lastIndexOf(someChecked[0], -1));
266 Expect.equals(-1, someChecked.lastIndexOf(someChecked[1], 0)); 266 Expect.equals(-1, someChecked.lastIndexOf(someChecked[1], 0));
267 Expect.equals(-1, someChecked.lastIndexOf(someChecked[2], 1)); 267 Expect.equals(-1, someChecked.lastIndexOf(someChecked[2], 1));
268 Expect.equals(-1, someChecked.lastIndexOf(someChecked[3], 2)); 268 Expect.equals(-1, someChecked.lastIndexOf(someChecked[3], 2));
269 269
270 Expect.equals(-1, someChecked.lastIndexOf(noneChecked[0], 3)); 270 Expect.equals(-1, someChecked.lastIndexOf(noneChecked[0], 3));
271 Expect.equals(-1, noneChecked.lastIndexOf(someChecked[0], 3)); 271 Expect.equals(-1, noneChecked.lastIndexOf(someChecked[0], 3));
272 Expect.equals(-1, someChecked.lastIndexOf(noneChecked[1], 3)); 272 Expect.equals(-1, someChecked.lastIndexOf(noneChecked[1], 3));
273 Expect.equals(-1, noneChecked.lastIndexOf(someChecked[1], 3)); 273 Expect.equals(-1, noneChecked.lastIndexOf(someChecked[1], 3));
274 274
275 document.body.removeChild(root); 275 root.remove();
276 }); 276 });
277 } 277 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698