@@ -666,6 +666,57 @@ describe('jqLite', function() {
666
666
expect ( jqLite ( b ) . hasClass ( 'abc' ) ) . toEqual ( false ) ;
667
667
668
668
} ) ;
669
+
670
+ it ( 'should allow toggling multiple classes without a condition' , function ( ) {
671
+ var selector = jqLite ( [ a , b ] ) ;
672
+ expect ( selector . toggleClass ( 'abc cde' ) ) . toBe ( selector ) ;
673
+ expect ( jqLite ( a ) . hasClass ( 'abc' ) ) . toBe ( true ) ;
674
+ expect ( jqLite ( a ) . hasClass ( 'cde' ) ) . toBe ( true ) ;
675
+ expect ( jqLite ( b ) . hasClass ( 'abc' ) ) . toBe ( true ) ;
676
+ expect ( jqLite ( b ) . hasClass ( 'cde' ) ) . toBe ( true ) ;
677
+
678
+ expect ( selector . toggleClass ( 'abc cde' ) ) . toBe ( selector ) ;
679
+ expect ( jqLite ( a ) . hasClass ( 'abc' ) ) . toBe ( false ) ;
680
+ expect ( jqLite ( a ) . hasClass ( 'cde' ) ) . toBe ( false ) ;
681
+ expect ( jqLite ( b ) . hasClass ( 'abc' ) ) . toBe ( false ) ;
682
+ expect ( jqLite ( b ) . hasClass ( 'cde' ) ) . toBe ( false ) ;
683
+
684
+ expect ( selector . toggleClass ( 'abc' ) ) . toBe ( selector ) ;
685
+ expect ( selector . toggleClass ( 'abc cde' ) ) . toBe ( selector ) ;
686
+ expect ( jqLite ( a ) . hasClass ( 'abc' ) ) . toBe ( false ) ;
687
+ expect ( jqLite ( a ) . hasClass ( 'cde' ) ) . toBe ( true ) ;
688
+ expect ( jqLite ( b ) . hasClass ( 'abc' ) ) . toBe ( false ) ;
689
+ expect ( jqLite ( b ) . hasClass ( 'cde' ) ) . toBe ( true ) ;
690
+
691
+ expect ( selector . toggleClass ( 'abc cde' ) ) . toBe ( selector ) ;
692
+ expect ( jqLite ( a ) . hasClass ( 'abc' ) ) . toBe ( true ) ;
693
+ expect ( jqLite ( a ) . hasClass ( 'cde' ) ) . toBe ( false ) ;
694
+ expect ( jqLite ( b ) . hasClass ( 'abc' ) ) . toBe ( true ) ;
695
+ expect ( jqLite ( b ) . hasClass ( 'cde' ) ) . toBe ( false ) ;
696
+ } ) ;
697
+
698
+ it ( 'should allow toggling multiple classes with a condition' , function ( ) {
699
+ var selector = jqLite ( [ a , b ] ) ;
700
+ selector . addClass ( 'abc' ) ;
701
+ expect ( selector . toggleClass ( 'abc cde' , true ) ) . toBe ( selector ) ;
702
+ expect ( jqLite ( a ) . hasClass ( 'abc' ) ) . toBe ( true ) ;
703
+ expect ( jqLite ( a ) . hasClass ( 'cde' ) ) . toBe ( true ) ;
704
+ expect ( jqLite ( b ) . hasClass ( 'abc' ) ) . toBe ( true ) ;
705
+ expect ( jqLite ( b ) . hasClass ( 'cde' ) ) . toBe ( true ) ;
706
+
707
+ selector . removeClass ( 'abc' ) ;
708
+ expect ( selector . toggleClass ( 'abc cde' , false ) ) . toBe ( selector ) ;
709
+ expect ( jqLite ( a ) . hasClass ( 'abc' ) ) . toBe ( false ) ;
710
+ expect ( jqLite ( a ) . hasClass ( 'cde' ) ) . toBe ( false ) ;
711
+ expect ( jqLite ( b ) . hasClass ( 'abc' ) ) . toBe ( false ) ;
712
+ expect ( jqLite ( b ) . hasClass ( 'cde' ) ) . toBe ( false ) ;
713
+ } ) ;
714
+
715
+ it ( 'should not break for null / undefined selectors' , function ( ) {
716
+ var selector = jqLite ( [ a , b ] ) ;
717
+ expect ( selector . toggleClass ( null ) ) . toBe ( selector ) ;
718
+ expect ( selector . toggleClass ( undefined ) ) . toBe ( selector ) ;
719
+ } ) ;
669
720
} ) ;
670
721
671
722
0 commit comments