@@ -409,6 +409,47 @@ describe('ngClass', function() {
409
409
expect ( e2 . hasClass ( 'odd' ) ) . toBeFalsy ( ) ;
410
410
} ) ) ;
411
411
412
+
413
+ it ( 'should add/remove the correct classes when the expression and `$index` change simultaneously' ,
414
+ inject ( function ( $compile , $rootScope ) {
415
+ element = $compile (
416
+ '<div>' +
417
+ '<div ng-class-odd="foo"></div>' +
418
+ '<div ng-class-even="foo"></div>' +
419
+ '</div>' ) ( $rootScope ) ;
420
+ var odd = element . children ( ) . eq ( 0 ) ;
421
+ var even = element . children ( ) . eq ( 1 ) ;
422
+
423
+ $rootScope . $apply ( '$index = 0; foo = "class1"' ) ;
424
+
425
+ expect ( odd ) . toHaveClass ( 'class1' ) ;
426
+ expect ( odd ) . not . toHaveClass ( 'class2' ) ;
427
+ expect ( even ) . not . toHaveClass ( 'class1' ) ;
428
+ expect ( even ) . not . toHaveClass ( 'class2' ) ;
429
+
430
+ $rootScope . $apply ( '$index = 1; foo = "class2"' ) ;
431
+
432
+ expect ( odd ) . not . toHaveClass ( 'class1' ) ;
433
+ expect ( odd ) . not . toHaveClass ( 'class2' ) ;
434
+ expect ( even ) . not . toHaveClass ( 'class1' ) ;
435
+ expect ( even ) . toHaveClass ( 'class2' ) ;
436
+
437
+ $rootScope . $apply ( 'foo = "class1"' ) ;
438
+
439
+ expect ( odd ) . not . toHaveClass ( 'class1' ) ;
440
+ expect ( odd ) . not . toHaveClass ( 'class2' ) ;
441
+ expect ( even ) . toHaveClass ( 'class1' ) ;
442
+ expect ( even ) . not . toHaveClass ( 'class2' ) ;
443
+
444
+ $rootScope . $apply ( '$index = 2' ) ;
445
+
446
+ expect ( odd ) . toHaveClass ( 'class1' ) ;
447
+ expect ( odd ) . not . toHaveClass ( 'class2' ) ;
448
+ expect ( even ) . not . toHaveClass ( 'class1' ) ;
449
+ expect ( even ) . not . toHaveClass ( 'class2' ) ;
450
+ } )
451
+ ) ;
452
+
412
453
it ( 'should support mixed array/object variable with a mutating object' ,
413
454
inject ( function ( $rootScope , $compile ) {
414
455
element = $compile ( '<div ng-class="classVar"></div>' ) ( $rootScope ) ;
0 commit comments