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

Side by Side Diff: LayoutTests/dart/dom/HTMLCollectionTest.dart

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

Powered by Google App Engine
This is Rietveld 408576698