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

Side by Side Diff: third_party/pkg/angular/test/directive/ng_class_spec.dart

Issue 256553002: Revert "Update all Angular libs (run update_all.sh)." (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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 ng_class_spec; 1 library ng_class_spec;
2 2
3 import '../_specs.dart'; 3 import '../_specs.dart';
4 4
5 main() { 5 main() {
6 describe('ngClass', () { 6 describe('ngClass', () {
7 TestBed _; 7 TestBed _;
8 8
9 beforeEach((TestBed tb) => _ = tb); 9 beforeEach(inject((TestBed tb) => _ = tb));
10 10
11 it('should add new and remove old classes dynamically', () { 11 it('should add new and remove old classes dynamically', () {
12 var element = _.compile('<div class="existing" ng-class="dynClass"></div>' ); 12 var element = _.compile('<div class="existing" ng-class="dynClass"></div>' );
13 _.rootScope.context['dynClass'] = 'A'; 13 _.rootScope.context['dynClass'] = 'A';
14 _.rootScope.apply(); 14 _.rootScope.apply();
15 expect(element).toHaveClass('existing'); 15 expect(element.classes.contains('existing')).toBe(true);
16 expect(element).toHaveClass('A'); 16 expect(element.classes.contains('A')).toBe(true);
17 17
18 _.rootScope.context['dynClass'] = 'B'; 18 _.rootScope.context['dynClass'] = 'B';
19 _.rootScope.apply(); 19 _.rootScope.apply();
20 expect(element).toHaveClass('existing'); 20 expect(element.classes.contains('existing')).toBe(true);
21 expect(element).not.toHaveClass('A'); 21 expect(element.classes.contains('A')).toBe(false);
22 expect(element).toHaveClass('B'); 22 expect(element.classes.contains('B')).toBe(true);
23 23
24 _.rootScope.context['dynClass'] = null; 24 _.rootScope.context['dynClass'] = null;
25 _.rootScope.apply(); 25 _.rootScope.apply();
26 expect(element).toHaveClass('existing'); 26 expect(element.classes.contains('existing')).toBe(true);
27 expect(element).not.toHaveClass('A'); 27 expect(element.classes.contains('A')).toBe(false);
28 expect(element).not.toHaveClass('B'); 28 expect(element.classes.contains('B')).toBe(false);
29 }); 29 });
30 30
31 31
32 it('should support adding multiple classes via an array', () { 32 it('should support adding multiple classes via an array', () {
33 _.rootScope.context['a'] = 'a'; 33 _.rootScope.context['a'] = 'a';
34 _.rootScope.context['b'] = ''; 34 _.rootScope.context['b'] = '';
35 _.rootScope.context['c'] = null; 35 _.rootScope.context['c'] = null;
36 var element = _.compile('<div class="existing" ng-class="[\'literalA\', a, b, c]"></div>'); 36 var element = _.compile('<div class="existing" ng-class="[\'literalA\', a, b, c]"></div>');
37 _.rootScope.apply(); 37 _.rootScope.apply();
38 expect(element).toHaveClass('existing'); 38 expect(element.classes.contains('existing')).toBeTruthy();
39 expect(element).toHaveClass('a'); 39 expect(element.classes.contains('a')).toBeTruthy();
40 expect(element).not.toHaveClass('b'); 40 expect(element.classes.contains('b')).toBeFalsy();
41 expect(element).not.toHaveClass('c'); 41 expect(element.classes.contains('c')).toBeFalsy();
42 expect(element).not.toHaveClass('null'); 42 expect(element.classes.contains('null')).toBeFalsy();
43 _.rootScope.context['a'] = null; 43 _.rootScope.context['a'] = null;
44 _.rootScope.context['b'] = 'b'; 44 _.rootScope.context['b'] = 'b';
45 _.rootScope.context['c'] = 'c'; 45 _.rootScope.context['c'] = 'c';
46 _.rootScope.apply(); 46 _.rootScope.apply();
47 expect(element).not.toHaveClass('a'); 47 expect(element.classes.contains('a')).toBeFalsy();
48 expect(element).toHaveClass('b'); 48 expect(element.classes.contains('b')).toBeTruthy();
49 expect(element).toHaveClass('c'); 49 expect(element.classes.contains('c')).toBeTruthy();
50 }); 50 });
51 51
52 52
53 it('should support adding multiple classes conditionally via a map of class names to boolean' + 53 it('should support adding multiple classes conditionally via a map of class names to boolean' +
54 'expressions', () { 54 'expressions', () {
55 var element = _.compile( 55 var element = _.compile(
56 '<div class="existing" ' + 56 '<div class="existing" ' +
57 'ng-class="{A: conditionA, B: conditionB(), AnotB: conditionA&&!co nditionB()}">' + 57 'ng-class="{A: conditionA, B: conditionB(), AnotB: conditionA&&!co nditionB()}">' +
58 '</div>'); 58 '</div>');
59 _.rootScope.context['conditionA'] = true; 59 _.rootScope.context['conditionA'] = true;
60 _.rootScope.context['conditionB'] = () { return false; }; 60 _.rootScope.context['conditionB'] = () { return false; };
61 _.rootScope.apply(); 61 _.rootScope.apply();
62 expect(element).toHaveClass('existing'); 62 expect(element.classes.contains('existing')).toBeTruthy();
63 expect(element).toHaveClass('A'); 63 expect(element.classes.contains('A')).toBeTruthy();
64 expect(element).not.toHaveClass('B'); 64 expect(element.classes.contains('B')).toBeFalsy();
65 expect(element).toHaveClass('AnotB'); 65 expect(element.classes.contains('AnotB')).toBeTruthy();
66 66
67 _.rootScope.context['conditionB'] = () { return true; }; 67 _.rootScope.context['conditionB'] = () { return true; };
68 _.rootScope.apply(); 68 _.rootScope.apply();
69 expect(element).toHaveClass('existing'); 69 expect(element.classes.contains('existing')).toBeTruthy();
70 expect(element).toHaveClass('A'); 70 expect(element.classes.contains('A')).toBeTruthy();
71 expect(element).toHaveClass('B'); 71 expect(element.classes.contains('B')).toBeTruthy();
72 expect(element).not.toHaveClass('AnotB'); 72 expect(element.classes.contains('AnotB')).toBeFalsy();
73 }); 73 });
74 74
75 75
76 it('should remove classes when the referenced object is the same but its pro perty is changed', 76 it('should remove classes when the referenced object is the same but its pro perty is changed',
77 () { 77 () {
78 var element = _.compile('<div ng-class="classes"></div>'); 78 var element = _.compile('<div ng-class="classes"></div>');
79 _.rootScope.context['classes'] = { 'A': true, 'B': true }; 79 _.rootScope.context['classes'] = { 'A': true, 'B': true };
80 _.rootScope.apply(); 80 _.rootScope.apply();
81 expect(element).toHaveClass('A'); 81 expect(element.classes.contains('A')).toBeTruthy();
82 expect(element).toHaveClass('B'); 82 expect(element.classes.contains('B')).toBeTruthy();
83 _.rootScope.context['classes']['A'] = false; 83 _.rootScope.context['classes']['A'] = false;
84 _.rootScope.apply(); 84 _.rootScope.apply();
85 expect(element).not.toHaveClass('A'); 85 expect(element.classes.contains('A')).toBeFalsy();
86 expect(element).toHaveClass('B'); 86 expect(element.classes.contains('B')).toBeTruthy();
87 }); 87 });
88 88
89 it('should support adding multiple classes via a space delimited string', () { 89 it('should support adding multiple classes via a space delimited string', () {
90 var element = _.compile('<div class="existing" ng-class="\'A B\'"></div>') ; 90 var element = _.compile('<div class="existing" ng-class="\'A B\'"></div>') ;
91 _.rootScope.apply(); 91 _.rootScope.apply();
92 expect(element).toHaveClass('existing'); 92 expect(element.classes.contains('existing')).toBeTruthy();
93 expect(element).toHaveClass('A'); 93 expect(element.classes.contains('A')).toBeTruthy();
94 expect(element).toHaveClass('B'); 94 expect(element.classes.contains('B')).toBeTruthy();
95 }); 95 });
96 96
97 97
98 it('should preserve class added post compilation with pre-existing classes', () { 98 it('should preserve class added post compilation with pre-existing classes', () {
99 var element = _.compile('<div class="existing" ng-class="dynClass"></div>' ); 99 var element = _.compile('<div class="existing" ng-class="dynClass"></div>' );
100 _.rootScope.context['dynClass'] = 'A'; 100 _.rootScope.context['dynClass'] = 'A';
101 _.rootScope.apply(); 101 _.rootScope.apply();
102 expect(element).toHaveClass('existing'); 102 expect(element.classes.contains('existing')).toBe(true);
103 103
104 // add extra class, change model and eval 104 // add extra class, change model and eval
105 element.classes.add('newClass'); 105 element.classes.add('newClass');
106 _.rootScope.context['dynClass'] = 'B'; 106 _.rootScope.context['dynClass'] = 'B';
107 _.rootScope.apply(); 107 _.rootScope.apply();
108 108
109 expect(element).toHaveClass('existing'); 109 expect(element.classes.contains('existing')).toBe(true);
110 expect(element).toHaveClass('B'); 110 expect(element.classes.contains('B')).toBe(true);
111 expect(element).toHaveClass('newClass'); 111 expect(element.classes.contains('newClass')).toBe(true);
112 }); 112 });
113 113
114 114
115 it('should preserve class added post compilation without pre-existing classe s"', () { 115 it('should preserve class added post compilation without pre-existing classe s"', () {
116 var element = _.compile('<div ng-class="dynClass"></div>'); 116 var element = _.compile('<div ng-class="dynClass"></div>');
117 _.rootScope.context['dynClass'] = 'A'; 117 _.rootScope.context['dynClass'] = 'A';
118 _.rootScope.apply(); 118 _.rootScope.apply();
119 expect(element).toHaveClass('A'); 119 expect(element.classes.contains('A')).toBe(true);
120 120
121 // add extra class, change model and eval 121 // add extra class, change model and eval
122 element.classes.add('newClass'); 122 element.classes.add('newClass');
123 _.rootScope.context['dynClass'] = 'B'; 123 _.rootScope.context['dynClass'] = 'B';
124 _.rootScope.apply(); 124 _.rootScope.apply();
125 125
126 expect(element).toHaveClass('B'); 126 expect(element.classes.contains('B')).toBe(true);
127 expect(element).toHaveClass('newClass'); 127 expect(element.classes.contains('newClass')).toBe(true);
128 }); 128 });
129 129
130 130
131 it('should preserve other classes with similar name"', () { 131 it('should preserve other classes with similar name"', () {
132 var element = _.compile('<div class="ui-panel ui-selected" ng-class="dynCl s"></div>'); 132 var element = _.compile('<div class="ui-panel ui-selected" ng-class="dynCl s"></div>');
133 _.rootScope.context['dynCls'] = 'panel'; 133 _.rootScope.context['dynCls'] = 'panel';
134 _.rootScope.apply(); 134 _.rootScope.apply();
135 _.rootScope.context['dynCls'] = 'foo'; 135 _.rootScope.context['dynCls'] = 'foo';
136 _.rootScope.apply(); 136 _.rootScope.apply();
137 // TODO(deboer): Abstract ng-binding 137 expect(element.className).toEqual('ui-panel ui-selected foo');
138 expect(element.className.replaceAll(' ng-binding', '')).toEqual('ui-panel ui-selected foo');
139 }); 138 });
140 139
141 140
142 it('should not add duplicate classes', () { 141 it('should not add duplicate classes', () {
143 var element = _.compile('<div class="panel bar" ng-class="dynCls"></div>') ; 142 var element = _.compile('<div class="panel bar" ng-class="dynCls"></div>') ;
144 _.rootScope.context['dynCls'] = 'panel'; 143 _.rootScope.context['dynCls'] = 'panel';
145 _.rootScope.apply(); 144 _.rootScope.apply();
146 // TODO(deboer): Abstract ng-binding 145 expect(element.className).toEqual('panel bar');
147 expect(element.className.replaceAll(' ng-binding', '')).toEqual('panel bar ');
148 }); 146 });
149 147
150 148
151 it('should remove classes even if it was specified via class attribute', () { 149 it('should remove classes even if it was specified via class attribute', () {
152 var element = _.compile('<div class="panel bar" ng-class="dynCls"></div>') ; 150 var element = _.compile('<div class="panel bar" ng-class="dynCls"></div>') ;
153 _.rootScope.context['dynCls'] = 'panel'; 151 _.rootScope.context['dynCls'] = 'panel';
154 _.rootScope.apply(); 152 _.rootScope.apply();
155 _.rootScope.context['dynCls'] = 'window'; 153 _.rootScope.context['dynCls'] = 'window';
156 _.rootScope.apply(); 154 _.rootScope.apply();
157 // TODO(deboer): Abstract ng-binding 155 expect(element.className).toEqual('bar window');
158 expect(element.className.replaceAll(' ng-binding', '')).toEqual('bar windo w');
159 }); 156 });
160 157
161 158
162 it('should remove classes even if they were added by another code', () { 159 it('should remove classes even if they were added by another code', () {
163 var element = _.compile('<div ng-class="dynCls"></div>'); 160 var element = _.compile('<div ng-class="dynCls"></div>');
164 _.rootScope.context['dynCls'] = 'foo'; 161 _.rootScope.context['dynCls'] = 'foo';
165 _.rootScope.apply(); 162 _.rootScope.apply();
166 element.classes.add('foo'); 163 element.classes.add('foo');
167 _.rootScope.context['dynCls'] = ''; 164 _.rootScope.context['dynCls'] = '';
168 _.rootScope.apply(); 165 _.rootScope.apply();
169 }); 166 });
170 167
171 168
172 it('should ngClass odd/even', () { 169 it('should ngClass odd/even', () {
173 var element = _.compile('<ul><li ng-repeat="i in [0,1]" class="existing" n g-class-odd="\'odd\'" ng-class-even="\'even\'"></li><ul>'); 170 var element = _.compile('<ul><li ng-repeat="i in [0,1]" class="existing" n g-class-odd="\'odd\'" ng-class-even="\'even\'"></li><ul>');
174 _.rootScope.apply(); 171 _.rootScope.apply();
175 var e1 = element.nodes[1]; 172 var e1 = element.nodes[1];
176 var e2 = element.nodes[2]; 173 var e2 = element.nodes[2];
177 expect(e1).toHaveClass('existing'); 174 expect(e1.classes.contains('existing')).toBeTruthy();
178 expect(e1).toHaveClass('odd'); 175 expect(e1.classes.contains('odd')).toBeTruthy();
179 expect(e2).toHaveClass('existing'); 176 expect(e2.classes.contains('existing')).toBeTruthy();
180 expect(e2).toHaveClass('even'); 177 expect(e2.classes.contains('even')).toBeTruthy();
181 }); 178 });
182 179
183 180
184 it('should allow both ngClass and ngClassOdd/Even on the same element', () { 181 it('should allow both ngClass and ngClassOdd/Even on the same element', () {
185 var element = _.compile('<ul>' + 182 var element = _.compile('<ul>' +
186 '<li ng-repeat="i in [0,1]" ng-class="\'plainClass\'" ' + 183 '<li ng-repeat="i in [0,1]" ng-class="\'plainClass\'" ' +
187 'ng-class-odd="\'odd\'" ng-class-even="\'even\'">{{\$index}}</li>' + 184 'ng-class-odd="\'odd\'" ng-class-even="\'even\'">{{\$index}}</li>' +
188 '<ul>'); 185 '<ul>');
189 _.rootScope.apply(); 186 _.rootScope.apply();
190 var e1 = element.nodes[1]; 187 var e1 = element.nodes[1];
191 var e2 = element.nodes[2]; 188 var e2 = element.nodes[2];
192 189
193 expect(e1).toHaveClass('plainClass'); 190 expect(e1.classes.contains('plainClass')).toBeTruthy();
194 expect(e1).toHaveClass('odd'); 191 expect(e1.classes.contains('odd')).toBeTruthy();
195 expect(e1).not.toHaveClass('even'); 192 expect(e1.classes.contains('even')).toBeFalsy();
196 expect(e2).toHaveClass('plainClass'); 193 expect(e2.classes.contains('plainClass')).toBeTruthy();
197 expect(e2).toHaveClass('even'); 194 expect(e2.classes.contains('even')).toBeTruthy();
198 expect(e2).not.toHaveClass('odd'); 195 expect(e2.classes.contains('odd')).toBeFalsy();
199 }); 196 });
200 197
201 it('should allow both ngClass and ngClassOdd/Even with multiple classes', () { 198 it('should allow both ngClass and ngClassOdd/Even with multiple classes', () {
202 var element = _.compile('<ul>' + 199 var element = _.compile('<ul>' +
203 '<li ng-repeat="i in [0,1]" ng-class="[\'A\', \'B\']" ' + 200 '<li ng-repeat="i in [0,1]" ng-class="[\'A\', \'B\']" ' +
204 'ng-class-odd="[\'C\', \'D\']" ng-class-even="[\'E\', \'F\']"></li>' + 201 'ng-class-odd="[\'C\', \'D\']" ng-class-even="[\'E\', \'F\']"></li>' +
205 '<ul>'); 202 '<ul>');
206 _.rootScope.apply(); 203 _.rootScope.apply();
207 var e1 = element.nodes[1]; 204 var e1 = element.nodes[1];
208 var e2 = element.nodes[2]; 205 var e2 = element.nodes[2];
209 206
210 expect(e1).toHaveClass('A'); 207 expect(e1.classes.contains('A')).toBeTruthy();
211 expect(e1).toHaveClass('B'); 208 expect(e1.classes.contains('B')).toBeTruthy();
212 expect(e1).toHaveClass('C'); 209 expect(e1.classes.contains('C')).toBeTruthy();
213 expect(e1).toHaveClass('D'); 210 expect(e1.classes.contains('D')).toBeTruthy();
214 expect(e1).not.toHaveClass('E'); 211 expect(e1.classes.contains('E')).toBeFalsy();
215 expect(e1).not.toHaveClass('F'); 212 expect(e1.classes.contains('F')).toBeFalsy();
216 213
217 expect(e2).toHaveClass('A'); 214 expect(e2.classes.contains('A')).toBeTruthy();
218 expect(e2).toHaveClass('B'); 215 expect(e2.classes.contains('B')).toBeTruthy();
219 expect(e2).toHaveClass('E'); 216 expect(e2.classes.contains('E')).toBeTruthy();
220 expect(e2).toHaveClass('F'); 217 expect(e2.classes.contains('F')).toBeTruthy();
221 expect(e2).not.toHaveClass('C'); 218 expect(e2.classes.contains('C')).toBeFalsy();
222 expect(e2).not.toHaveClass('D'); 219 expect(e2.classes.contains('D')).toBeFalsy();
223 }); 220 });
224 221
225 222
226 it('should reapply ngClass when interpolated class attribute changes', () { 223 it('should reapply ngClass when interpolated class attribute changes', () {
227 var element = _.compile('<div class="one {{cls}} three" ng-class="{four: f our}"></div>'); 224 var element = _.compile('<div class="one {{cls}} three" ng-class="{four: f our}"></div>');
228 225
229 _.rootScope.apply(() { 226 _.rootScope.apply(() {
230 _.rootScope.context['cls'] = "two"; 227 _.rootScope.context['cls'] = "two";
231 _.rootScope.context['four'] = true; 228 _.rootScope.context['four'] = true;
232 }); 229 });
233 expect(element).toHaveClass('one'); 230 expect(element).toHaveClass('one');
234 expect(element).toHaveClass('two'); // interpolated 231 expect(element).toHaveClass('two'); // interpolated
235 expect(element).toHaveClass('three'); 232 expect(element).toHaveClass('three');
236 expect(element).toHaveClass('four'); 233 expect(element).toHaveClass('four');
237 234
238 _.rootScope.apply(() { 235 _.rootScope.apply(() {
239 _.rootScope.context['cls'] = "too"; 236 _.rootScope.context['cls'] = "too";
240 }); 237 });
241 238
242 expect(element).toHaveClass('one'); 239 expect(element).toHaveClass('one');
243 expect(element).toHaveClass('too'); // interpolated 240 expect(element).toHaveClass('too'); // interpolated
244 expect(element).toHaveClass('three'); 241 expect(element).toHaveClass('three');
245 expect(element).toHaveClass('four'); // should still be there 242 expect(element).toHaveClass('four'); // should still be there
246 expect(element).not.toHaveClass('two'); 243 expect(element.classes.contains('two')).toBeFalsy();
247 244
248 _.rootScope.apply(() { 245 _.rootScope.apply(() {
249 _.rootScope.context['cls'] = "to"; 246 _.rootScope.context['cls'] = "to";
250 }); 247 });
251 248
252 expect(element).toHaveClass('one'); 249 expect(element).toHaveClass('one');
253 expect(element).toHaveClass('to'); // interpolated 250 expect(element).toHaveClass('to'); // interpolated
254 expect(element).toHaveClass('three'); 251 expect(element).toHaveClass('three');
255 expect(element).toHaveClass('four'); // should still be there 252 expect(element).toHaveClass('four'); // should still be there
256 expect(element).not.toHaveClass('two'); 253 expect(element.classes.contains('two')).toBeFalsy();
257 expect(element).not.toHaveClass('too'); 254 expect(element.classes.contains('too')).toBeFalsy();
258 }); 255 });
259 256
260 257
261 it('should not mess up class value due to observing an interpolated class at tribute', () { 258 it('should not mess up class value due to observing an interpolated class at tribute', () {
262 _.rootScope.context['foo'] = true; 259 _.rootScope.context['foo'] = true;
263 _.rootScope.watch("anything", (_0, _1) { 260 _.rootScope.watch("anything", (_0, _1) {
264 _.rootScope.context['foo'] = false; 261 _.rootScope.context['foo'] = false;
265 }); 262 });
266 var element = _.compile('<div ng-class="{foo:foo}"></div>'); 263 var element = _.compile('<div ng-class="{foo:foo}"></div>');
267 _.rootScope.apply(); 264 _.rootScope.apply();
268 expect(element).not.toHaveClass('foo'); 265 expect(element.classes.contains('foo')).toBe(false);
269 }); 266 });
270 267
271 268
272 it('should update ngClassOdd/Even when model is changed by filtering', () { 269 it('should update ngClassOdd/Even when model is changed by filtering', () {
273 var element = _.compile('<ul>' + 270 var element = _.compile('<ul>' +
274 '<li ng-repeat="i in items" ' + 271 '<li ng-repeat="i in items" ' +
275 'ng-class-odd="\'odd\'" ng-class-even="\'even\'"></li>' + 272 'ng-class-odd="\'odd\'" ng-class-even="\'even\'"></li>' +
276 '<ul>'); 273 '<ul>');
277 _.rootScope.context['items'] = ['a','b','c']; 274 _.rootScope.context['items'] = ['a','b','c'];
278 _.rootScope.apply(); 275 _.rootScope.apply();
279 276
280 _.rootScope.context['items'] = ['a','b']; 277 _.rootScope.context['items'] = ['a','b'];
281 _.rootScope.apply(); 278 _.rootScope.apply();
282 279
283 var e1 = element.nodes[1]; 280 var e1 = element.nodes[1];
284 var e2 = element.nodes[2]; 281 var e2 = element.nodes[2];
285 282
286 expect(e1).toHaveClass('odd'); 283 expect(e1.classes.contains('odd')).toBeTruthy();
287 expect(e1).not.toHaveClass('even'); 284 expect(e1.classes.contains('even')).toBeFalsy();
288 285
289 expect(e2).toHaveClass('even'); 286 expect(e2.classes.contains('even')).toBeTruthy();
290 expect(e2).not.toHaveClass('odd'); 287 expect(e2.classes.contains('odd')).toBeFalsy();
291 }); 288 });
292 289
293 290
294 it('should update ngClassOdd/Even when model is changed by sorting', () { 291 it('should update ngClassOdd/Even when model is changed by sorting', () {
295 var element = _.compile('<ul>' + 292 var element = _.compile('<ul>' +
296 '<li ng-repeat="i in items" ' + 293 '<li ng-repeat="i in items" ' +
297 'ng-class-odd="\'odd\'" ng-class-even="\'even\'">i</li>' + 294 'ng-class-odd="\'odd\'" ng-class-even="\'even\'">i</li>' +
298 '<ul>'); 295 '<ul>');
299 _.rootScope.context['items'] = ['a','b']; 296 _.rootScope.context['items'] = ['a','b'];
300 _.rootScope.apply(); 297 _.rootScope.apply();
301 298
302 _.rootScope.context['items'] = ['b','a']; 299 _.rootScope.context['items'] = ['b','a'];
303 _.rootScope.apply(); 300 _.rootScope.apply();
304 301
305 var e1 = element.nodes[1]; 302 var e1 = element.nodes[1];
306 var e2 = element.nodes[2]; 303 var e2 = element.nodes[2];
307 304
308 expect(e1).toHaveClass('odd'); 305 expect(e1.classes.contains('odd')).toBeTruthy();
309 expect(e1).not.toHaveClass('even'); 306 expect(e1.classes.contains('even')).toBeFalsy();
310 307
311 expect(e2).toHaveClass('even'); 308 expect(e2.classes.contains('even')).toBeTruthy();
312 expect(e2).not.toHaveClass('odd'); 309 expect(e2.classes.contains('odd')).toBeFalsy();
313 }); 310 });
314 }); 311 });
315 } 312 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698