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

Side by Side Diff: test/codegen/lib/html/htmlcollection_test.dart

Issue 1930043002: Add all dart:html tests from the sdk to test/codegen. (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 4 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
OLDNEW
(Empty)
1 library ElementListTest;
2 import 'package:unittest/unittest.dart';
3 import 'package:unittest/html_config.dart';
4 import 'dart:html';
5
6 // Test that List<Element> implements List<T>
7 main() {
8 Element insertTestDiv() {
9 Element element = new Element.tag('div');
10 element.innerHtml = r"""
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.append(element);
32 return element;
33 }
34
35 useHtmlConfiguration();
36
37 test('IsList', () {
38 Element root = insertTestDiv();
39
40 List<Element> eachChecked =
41 document.query('#allChecked').children;
42
43 expect(eachChecked, isList);
44
45 root.remove();
46 });
47 test('Every', () {
48 Element root = insertTestDiv();
49
50 List<Element> eachChecked =
51 document.query('#allChecked').children;
52
53 List<Element> someChecked =
54 document.query('#someChecked').children;
55
56 List<Element> noneChecked =
57 document.query('#noneChecked').children;
58
59 expect(eachChecked.length, 4);
60 expect(someChecked.length, 4);
61 expect(noneChecked.length, 4);
62
63 expect(eachChecked.every((x) => x.checked), isTrue);
64 expect(eachChecked.every((x) => !x.checked), isFalse);
65 expect(someChecked.every((x) => x.checked), isFalse);
66 expect(someChecked.every((x) => !x.checked), isFalse);
67 expect(noneChecked.every((x) => x.checked), isFalse);
68 expect(noneChecked.every((x) => !x.checked), isTrue);
69
70 root.remove();
71 });
72 test('Some', () {
73 Element root = insertTestDiv();
74
75 List<Element> eachChecked =
76 document.query('#allChecked').children;
77
78 List<Element> someChecked =
79 document.query('#someChecked').children;
80
81 List<Element> noneChecked =
82 document.query('#noneChecked').children;
83
84 expect(eachChecked.length, 4);
85 expect(someChecked.length, 4);
86 expect(noneChecked.length, 4);
87
88 expect(eachChecked.any((x) => x.checked), isTrue);
89 expect(eachChecked.any((x) => !x.checked), isFalse);
90 expect(someChecked.any((x) => x.checked), isTrue);
91 expect(someChecked.any((x) => !x.checked), isTrue);
92 expect(noneChecked.any((x) => x.checked), isFalse);
93 expect(noneChecked.any((x) => !x.checked), isTrue);
94
95 root.remove();
96 });
97 test('Filter', () {
98 Element root = insertTestDiv();
99
100 List<Element> eachChecked =
101 document.query('#allChecked').children;
102
103 List<Element> someChecked =
104 document.query('#someChecked').children;
105
106 List<Element> noneChecked =
107 document.query('#noneChecked').children;
108
109 expect(eachChecked.length, 4);
110 expect(someChecked.length, 4);
111 expect(noneChecked.length, 4);
112
113 expect(eachChecked.where((x) => x.checked).length, 4);
114 expect(eachChecked.where((x) => !x.checked).length, 0);
115 expect(someChecked.where((x) => x.checked).length, 2);
116 expect(someChecked.where((x) => !x.checked).length, 2);
117 expect(noneChecked.where((x) => x.checked).length, 0);
118 expect(noneChecked.where((x) => !x.checked).length, 4);
119
120 root.remove();
121 });
122 test('IsEmpty', () {
123 Element root = insertTestDiv();
124
125 List<Element> someChecked =
126 document.query('#someChecked').children;
127
128 List<Element> emptyDiv =
129 document.query('#emptyDiv').children;
130
131 expect(someChecked.length, 4);
132 expect(emptyDiv.length, 0);
133
134 expect(someChecked.isEmpty, isFalse);
135 expect(emptyDiv.isEmpty, isTrue);
136
137 root.remove();
138 });
139
140 int countWithForEach(collection, predicate) {
141 int count = 0;
142 collection.forEach((element) {
143 if (predicate(element)) count++;
144 });
145 return count;
146 }
147
148 test('ForEach', () {
149 Element root = insertTestDiv();
150
151 List<Element> eachChecked =
152 document.query('#allChecked').children;
153
154 List<Element> someChecked =
155 document.query('#someChecked').children;
156
157 List<Element> noneChecked =
158 document.query('#noneChecked').children;
159
160 expect(eachChecked.length, 4);
161 expect(someChecked.length, 4);
162 expect(noneChecked.length, 4);
163
164 expect(countWithForEach(eachChecked, (x) => x.checked), 4);
165 expect(countWithForEach(eachChecked, (x) => !x.checked), 0);
166 expect(countWithForEach(someChecked, (x) => x.checked), 2);
167 expect(countWithForEach(someChecked, (x) => !x.checked), 2);
168 expect(countWithForEach(noneChecked, (x) => x.checked), 0);
169 expect(countWithForEach(noneChecked, (x) => !x.checked), 4);
170
171 root.remove();
172 });
173
174 int countWithForLoop(collection, predicate) {
175 int count = 0;
176 for (var element in collection) {
177 if (predicate(element)) count++;
178 }
179 return count;
180 }
181
182 test('ForLoop', () { // Uses iterator.
183 Element root = insertTestDiv();
184
185 List<Element> eachChecked =
186 document.query('#allChecked').children;
187
188 List<Element> someChecked =
189 document.query('#someChecked').children;
190
191 List<Element> noneChecked =
192 document.query('#noneChecked').children;
193
194 expect(eachChecked.length, 4);
195 expect(someChecked.length, 4);
196 expect(noneChecked.length, 4);
197
198 expect(countWithForLoop(eachChecked, (x) => x.checked), 4);
199 expect(countWithForLoop(eachChecked, (x) => !x.checked), 0);
200 expect(countWithForLoop(someChecked, (x) => x.checked), 2);
201 expect(countWithForLoop(someChecked, (x) => !x.checked), 2);
202 expect(countWithForLoop(noneChecked, (x) => x.checked), 0);
203 expect(countWithForLoop(noneChecked, (x) => !x.checked), 4);
204
205 root.remove();
206 });
207 test('Last', () {
208 Element root = insertTestDiv();
209
210 List<Element> someChecked =
211 document.query('#someChecked').children;
212
213 expect(someChecked.length, 4);
214
215 expect(someChecked.last, equals(someChecked[3]));
216
217 root.remove();
218 });
219 test('IndexOf', () {
220 Element root = insertTestDiv();
221
222 List<Element> someChecked =
223 document.query('#someChecked').children;
224
225 List<Element> noneChecked =
226 document.query('#noneChecked').children;
227
228 expect(someChecked.length, 4);
229 expect(noneChecked.length, 4);
230
231 expect(someChecked.indexOf(someChecked[0], 0), 0);
232 expect(someChecked.indexOf(someChecked[1], 0), 1);
233 expect(someChecked.indexOf(someChecked[2], 0), 2);
234 expect(someChecked.indexOf(someChecked[3], 0), 3);
235
236 expect(someChecked.indexOf(someChecked[0], 1), -1);
237 expect(someChecked.indexOf(someChecked[1], 2), -1);
238 expect(someChecked.indexOf(someChecked[2], 3), -1);
239 expect(someChecked.indexOf(someChecked[3], 4), -1);
240
241 expect(someChecked.indexOf(noneChecked[0], 0), -1);
242 expect(noneChecked.indexOf(someChecked[0], 0), -1);
243 expect(someChecked.indexOf(noneChecked[1], 0), -1);
244 expect(noneChecked.indexOf(someChecked[1], 0), -1);
245
246 root.remove();
247 });
248 test('LastIndexOf', () {
249 Element root = insertTestDiv();
250
251 List<Element> someChecked =
252 document.query('#someChecked').children;
253
254 List<Element> noneChecked =
255 document.query('#noneChecked').children;
256
257 expect(someChecked.length, 4);
258 expect(noneChecked.length, 4);
259
260 expect(someChecked.lastIndexOf(someChecked[0], 3), 0);
261 expect(someChecked.lastIndexOf(someChecked[1], 3), 1);
262 expect(someChecked.lastIndexOf(someChecked[2], 3), 2);
263 expect(someChecked.lastIndexOf(someChecked[3], 3), 3);
264
265 expect(someChecked.lastIndexOf(someChecked[0], -1), -1);
266 expect(someChecked.lastIndexOf(someChecked[1], 0), -1);
267 expect(someChecked.lastIndexOf(someChecked[2], 1), -1);
268 expect(someChecked.lastIndexOf(someChecked[3], 2), -1);
269
270 expect(someChecked.lastIndexOf(noneChecked[0], 3), -1);
271 expect(noneChecked.lastIndexOf(someChecked[0], 3), -1);
272 expect(someChecked.lastIndexOf(noneChecked[1], 3), -1);
273 expect(noneChecked.lastIndexOf(someChecked[1], 3), -1);
274
275 root.remove();
276 });
277 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698