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