@@ -461,6 +461,47 @@ describe('ngClass', function() {
461
461
expect ( e2 . hasClass ( 'odd' ) ) . toBeFalsy ( ) ;
462
462
} ) ) ;
463
463
464
+
465
+ it ( 'should add/remove the correct classes when the expression and `$index` change simultaneously' ,
466
+ inject ( function ( $compile , $rootScope ) {
467
+ element = $compile (
468
+ '<div>' +
469
+ '<div ng-class-odd="foo"></div>' +
470
+ '<div ng-class-even="foo"></div>' +
471
+ '</div>' ) ( $rootScope ) ;
472
+ var odd = element . children ( ) . eq ( 0 ) ;
473
+ var even = element . children ( ) . eq ( 1 ) ;
474
+
475
+ $rootScope . $apply ( '$index = 0; foo = "class1"' ) ;
476
+
477
+ expect ( odd ) . toHaveClass ( 'class1' ) ;
478
+ expect ( odd ) . not . toHaveClass ( 'class2' ) ;
479
+ expect ( even ) . not . toHaveClass ( 'class1' ) ;
480
+ expect ( even ) . not . toHaveClass ( 'class2' ) ;
481
+
482
+ $rootScope . $apply ( '$index = 1; foo = "class2"' ) ;
483
+
484
+ expect ( odd ) . not . toHaveClass ( 'class1' ) ;
485
+ expect ( odd ) . not . toHaveClass ( 'class2' ) ;
486
+ expect ( even ) . not . toHaveClass ( 'class1' ) ;
487
+ expect ( even ) . toHaveClass ( 'class2' ) ;
488
+
489
+ $rootScope . $apply ( 'foo = "class1"' ) ;
490
+
491
+ expect ( odd ) . not . toHaveClass ( 'class1' ) ;
492
+ expect ( odd ) . not . toHaveClass ( 'class2' ) ;
493
+ expect ( even ) . toHaveClass ( 'class1' ) ;
494
+ expect ( even ) . not . toHaveClass ( 'class2' ) ;
495
+
496
+ $rootScope . $apply ( '$index = 2' ) ;
497
+
498
+ expect ( odd ) . toHaveClass ( 'class1' ) ;
499
+ expect ( odd ) . not . toHaveClass ( 'class2' ) ;
500
+ expect ( even ) . not . toHaveClass ( 'class1' ) ;
501
+ expect ( even ) . not . toHaveClass ( 'class2' ) ;
502
+ } )
503
+ ) ;
504
+
464
505
it ( 'should support mixed array/object variable with a mutating object' ,
465
506
inject ( function ( $rootScope , $compile ) {
466
507
element = $compile ( '<div ng-class="classVar"></div>' ) ( $rootScope ) ;
0 commit comments