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

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

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

Powered by Google App Engine
This is Rietveld 408576698