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

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

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

Powered by Google App Engine
This is Rietveld 408576698