OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #library('ElementTest'); | 5 #library('ElementTest'); |
6 #import('../../pkg/unittest/unittest.dart'); | 6 #import('../../pkg/unittest/unittest.dart'); |
7 #import('../../pkg/unittest/html_config.dart'); | 7 #import('../../pkg/unittest/html_config.dart'); |
8 #import('dart:html'); | 8 #import('dart:html'); |
9 | 9 |
10 main() { | 10 main() { |
(...skipping 10 matching lines...) Expand all Loading... |
21 Set<String> makeClassSet() => makeElementWithClasses().classes; | 21 Set<String> makeClassSet() => makeElementWithClasses().classes; |
22 | 22 |
23 Set<String> extractClasses(Element el) { | 23 Set<String> extractClasses(Element el) { |
24 final match = new RegExp('class="([^"]+)"').firstMatch(el.outerHTML); | 24 final match = new RegExp('class="([^"]+)"').firstMatch(el.outerHTML); |
25 return new Set.from(match[1].split(' ')); | 25 return new Set.from(match[1].split(' ')); |
26 } | 26 } |
27 | 27 |
28 test('affects the "class" attribute', () { | 28 test('affects the "class" attribute', () { |
29 final el = makeElementWithClasses(); | 29 final el = makeElementWithClasses(); |
30 el.classes.add('qux'); | 30 el.classes.add('qux'); |
31 Expect.setEquals(['foo', 'bar', 'baz', 'qux'], extractClasses(el)); | 31 expect(extractClasses(el), unorderedEquals(['foo', 'bar', 'baz', 'qux'])); |
32 }); | 32 }); |
33 | 33 |
34 test('is affected by the "class" attribute', () { | 34 test('is affected by the "class" attribute', () { |
35 final el = makeElementWithClasses(); | 35 final el = makeElementWithClasses(); |
36 el.attributes['class'] = 'foo qux'; | 36 el.attributes['class'] = 'foo qux'; |
37 Expect.setEquals(['foo', 'qux'], el.classes); | 37 expect(el.classes, unorderedEquals(['foo', 'qux'])); |
38 }); | 38 }); |
39 | 39 |
40 test('classes=', () { | 40 test('classes=', () { |
41 final el = makeElementWithClasses(); | 41 final el = makeElementWithClasses(); |
42 el.classes = ['foo', 'qux']; | 42 el.classes = ['foo', 'qux']; |
43 Expect.setEquals(['foo', 'qux'], el.classes); | 43 expect(el.classes, unorderedEquals(['foo', 'qux'])); |
44 Expect.setEquals(['foo', 'qux'], extractClasses(el)); | 44 expect(extractClasses(el), unorderedEquals(['foo', 'qux'])); |
45 }); | 45 }); |
46 | 46 |
47 test('toString', () { | 47 test('toString', () { |
48 Expect.setEquals(['foo', 'bar', 'baz'], | 48 expect(makeClassSet().toString().split(' '), |
49 makeClassSet().toString().split(' ')); | 49 unorderedEquals(['foo', 'bar', 'baz'])); |
50 Expect.equals('', makeElement().classes.toString()); | 50 expect(makeElement().classes.toString(), ''); |
51 }); | 51 }); |
52 | 52 |
53 test('forEach', () { | 53 test('forEach', () { |
54 final classes = <String>[]; | 54 final classes = <String>[]; |
55 // TODO: Change to this when Issue 3484 is fixed. | 55 // TODO: Change to this when Issue 3484 is fixed. |
56 // makeClassSet().forEach(classes.add); | 56 // makeClassSet().forEach(classes.add); |
57 makeClassSet().forEach((c) => classes.add(c)); | 57 makeClassSet().forEach((c) => classes.add(c)); |
58 Expect.setEquals(['foo', 'bar', 'baz'], classes); | 58 expect(classes, unorderedEquals(['foo', 'bar', 'baz'])); |
59 }); | 59 }); |
60 | 60 |
61 test('iterator', () { | 61 test('iterator', () { |
62 final classes = <String>[]; | 62 final classes = <String>[]; |
63 for (var el in makeClassSet()) { | 63 for (var el in makeClassSet()) { |
64 classes.add(el); | 64 classes.add(el); |
65 } | 65 } |
66 Expect.setEquals(['foo', 'bar', 'baz'], classes); | 66 expect(classes, unorderedEquals(['foo', 'bar', 'baz'])); |
67 }); | 67 }); |
68 | 68 |
69 test('map', () { | 69 test('map', () { |
70 Expect.setEquals(['FOO', 'BAR', 'BAZ'], | 70 expect(makeClassSet().map((c) => c.toUpperCase()), |
71 makeClassSet().map((c) => c.toUpperCase())); | 71 unorderedEquals(['FOO', 'BAR', 'BAZ'])); |
72 }); | 72 }); |
73 | 73 |
74 test('filter', () { | 74 test('filter', () { |
75 Expect.setEquals(['bar', 'baz'], | 75 expect(makeClassSet().filter((c) => c.contains('a')), |
76 makeClassSet().filter((c) => c.contains('a'))); | 76 unorderedEquals(['bar', 'baz'])); |
77 }); | 77 }); |
78 | 78 |
79 test('every', () { | 79 test('every', () { |
80 Expect.isTrue(makeClassSet().every((c) => c is String)); | 80 expect(makeClassSet().every((c) => c is String), isTrue); |
81 Expect.isFalse( | 81 expect(makeClassSet().every((c) => c.contains('a')), isFalse); |
82 makeClassSet().every((c) => c.contains('a'))); | |
83 }); | 82 }); |
84 | 83 |
85 test('some', () { | 84 test('some', () { |
86 Expect.isTrue( | 85 expect(makeClassSet().some((c) => c.contains('a')), isTrue); |
87 makeClassSet().some((c) => c.contains('a'))); | 86 expect(makeClassSet().some((c) => c is num), isFalse); |
88 Expect.isFalse(makeClassSet().some((c) => c is num)); | |
89 }); | 87 }); |
90 | 88 |
91 test('isEmpty', () { | 89 test('isEmpty', () { |
92 Expect.isFalse(makeClassSet().isEmpty); | 90 expect(makeClassSet().isEmpty, isFalse); |
93 Expect.isTrue(makeElement().classes.isEmpty); | 91 expect(makeElement().classes.isEmpty, isTrue); |
94 }); | 92 }); |
95 | 93 |
96 test('length', () { | 94 test('length', () { |
97 Expect.equals(3, makeClassSet().length); | 95 expect(makeClassSet().length, 3); |
98 Expect.equals(0, makeElement().classes.length); | 96 expect(makeElement().classes.length, 0); |
99 }); | 97 }); |
100 | 98 |
101 test('contains', () { | 99 test('contains', () { |
102 Expect.isTrue(makeClassSet().contains('foo')); | 100 expect(makeClassSet().contains('foo'), isTrue); |
103 Expect.isFalse(makeClassSet().contains('qux')); | 101 expect(makeClassSet().contains('qux'), isFalse); |
104 }); | 102 }); |
105 | 103 |
106 test('add', () { | 104 test('add', () { |
107 final classes = makeClassSet(); | 105 final classes = makeClassSet(); |
108 classes.add('qux'); | 106 classes.add('qux'); |
109 Expect.setEquals(['foo', 'bar', 'baz', 'qux'], classes); | 107 expect(classes, unorderedEquals(['foo', 'bar', 'baz', 'qux'])); |
110 | 108 |
111 classes.add('qux'); | 109 classes.add('qux'); |
112 final list = new List.from(classes); | 110 final list = new List.from(classes); |
113 list.sort((a, b) => a.compareTo(b)); | 111 list.sort((a, b) => a.compareTo(b)); |
114 Expect.listEquals(['bar', 'baz', 'foo', 'qux'], list, | 112 expect(list, unorderedEquals(['bar', 'baz', 'foo', 'qux']), |
115 "The class set shouldn't have duplicate elements."); | 113 reason: "The class set shouldn't have duplicate elements."); |
116 }); | 114 }); |
117 | 115 |
118 test('remove', () { | 116 test('remove', () { |
119 final classes = makeClassSet(); | 117 final classes = makeClassSet(); |
120 classes.remove('bar'); | 118 classes.remove('bar'); |
121 Expect.setEquals(['foo', 'baz'], classes); | 119 expect(classes, unorderedEquals(['foo', 'baz'])); |
122 classes.remove('qux'); | 120 classes.remove('qux'); |
123 Expect.setEquals(['foo', 'baz'], classes); | 121 expect(classes, unorderedEquals(['foo', 'baz'])); |
124 }); | 122 }); |
125 | 123 |
126 test('toggle', () { | 124 test('toggle', () { |
127 final classes = makeClassSet(); | 125 final classes = makeClassSet(); |
128 classes.toggle('bar'); | 126 classes.toggle('bar'); |
129 Expect.setEquals(['foo', 'baz'], classes); | 127 expect(classes, unorderedEquals(['foo', 'baz'])); |
130 classes.toggle('qux'); | 128 classes.toggle('qux'); |
131 Expect.setEquals(['foo', 'baz', 'qux'], classes); | 129 expect(classes, unorderedEquals(['foo', 'baz', 'qux'])); |
132 }); | 130 }); |
133 | 131 |
134 test('addAll', () { | 132 test('addAll', () { |
135 final classes = makeClassSet(); | 133 final classes = makeClassSet(); |
136 classes.addAll(['bar', 'qux', 'bip']); | 134 classes.addAll(['bar', 'qux', 'bip']); |
137 Expect.setEquals(['foo', 'bar', 'baz', 'qux', 'bip'], classes); | 135 expect(classes, unorderedEquals(['foo', 'bar', 'baz', 'qux', 'bip'])); |
138 }); | 136 }); |
139 | 137 |
140 test('removeAll', () { | 138 test('removeAll', () { |
141 final classes = makeClassSet(); | 139 final classes = makeClassSet(); |
142 classes.removeAll(['bar', 'baz', 'qux']); | 140 classes.removeAll(['bar', 'baz', 'qux']); |
143 Expect.setEquals(['foo'], classes); | 141 expect(classes, unorderedEquals(['foo'])); |
144 }); | 142 }); |
145 | 143 |
146 test('isSubsetOf', () { | 144 test('isSubsetOf', () { |
147 final classes = makeClassSet(); | 145 final classes = makeClassSet(); |
148 Expect.isTrue(classes.isSubsetOf(['foo', 'bar', 'baz'])); | 146 expect(classes.isSubsetOf(['foo', 'bar', 'baz']), isTrue); |
149 Expect.isTrue(classes.isSubsetOf(['foo', 'bar', 'baz', 'qux'])); | 147 expect(classes.isSubsetOf(['foo', 'bar', 'baz', 'qux']), isTrue); |
150 Expect.isFalse(classes.isSubsetOf(['foo', 'bar', 'qux'])); | 148 expect(classes.isSubsetOf(['foo', 'bar', 'qux']), isFalse); |
151 }); | 149 }); |
152 | 150 |
153 test('containsAll', () { | 151 test('containsAll', () { |
154 final classes = makeClassSet(); | 152 final classes = makeClassSet(); |
155 Expect.isTrue(classes.containsAll(['foo', 'baz'])); | 153 expect(classes.containsAll(['foo', 'baz']), isTrue); |
156 Expect.isFalse(classes.containsAll(['foo', 'qux'])); | 154 expect(classes.containsAll(['foo', 'qux']), isFalse); |
157 }); | 155 }); |
158 | 156 |
159 test('intersection', () { | 157 test('intersection', () { |
160 final classes = makeClassSet(); | 158 final classes = makeClassSet(); |
161 Expect.setEquals(['foo', 'baz'], | 159 expect(classes.intersection(['foo', 'qux', 'baz']), |
162 classes.intersection(['foo', 'qux', 'baz'])); | 160 unorderedEquals(['foo', 'baz'])); |
163 }); | 161 }); |
164 | 162 |
165 test('clear', () { | 163 test('clear', () { |
166 final classes = makeClassSet(); | 164 final classes = makeClassSet(); |
167 classes.clear(); | 165 classes.clear(); |
168 Expect.setEquals([], classes); | 166 expect(classes, equals([])); |
169 }); | 167 }); |
170 } | 168 } |
OLD | NEW |