@@ -666,6 +666,57 @@ describe('jqLite', function() {
666666 expect ( jqLite ( b ) . hasClass ( 'abc' ) ) . toEqual ( false ) ;
667667
668668 } ) ;
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+ } ) ;
669720 } ) ;
670721
671722
0 commit comments