diff options
| author | Pawel Kozlowski | 2014-02-25 19:55:34 +0100 | 
|---|---|---|
| committer | Pawel Kozlowski | 2014-02-27 19:44:57 +0100 | 
| commit | 4e73c80b17bd237a8491782bcf9e19f1889e12ed (patch) | |
| tree | e398a66ef1d2bcf99b37b6ed5463c44233cb9c7e /test | |
| parent | 27873acbf0003031be52c719d068e46e4f7ef31f (diff) | |
| download | angular.js-4e73c80b17bd237a8491782bcf9e19f1889e12ed.tar.bz2 | |
fix(jqLite): properly toggle multiple classes
Fixes #4467
Closes #6448
Diffstat (limited to 'test')
| -rw-r--r-- | test/jqLiteSpec.js | 51 | 
1 files changed, 51 insertions, 0 deletions
| diff --git a/test/jqLiteSpec.js b/test/jqLiteSpec.js index 056c6145..482c05f4 100644 --- a/test/jqLiteSpec.js +++ b/test/jqLiteSpec.js @@ -666,6 +666,57 @@ describe('jqLite', function() {          expect(jqLite(b).hasClass('abc')).toEqual(false);        }); + +      it('should allow toggling multiple classes without a condition', function () { +        var selector = jqLite([a, b]); +        expect(selector.toggleClass('abc cde')).toBe(selector); +        expect(jqLite(a).hasClass('abc')).toBe(true); +        expect(jqLite(a).hasClass('cde')).toBe(true); +        expect(jqLite(b).hasClass('abc')).toBe(true); +        expect(jqLite(b).hasClass('cde')).toBe(true); + +        expect(selector.toggleClass('abc cde')).toBe(selector); +        expect(jqLite(a).hasClass('abc')).toBe(false); +        expect(jqLite(a).hasClass('cde')).toBe(false); +        expect(jqLite(b).hasClass('abc')).toBe(false); +        expect(jqLite(b).hasClass('cde')).toBe(false); + +        expect(selector.toggleClass('abc')).toBe(selector); +        expect(selector.toggleClass('abc cde')).toBe(selector); +        expect(jqLite(a).hasClass('abc')).toBe(false); +        expect(jqLite(a).hasClass('cde')).toBe(true); +        expect(jqLite(b).hasClass('abc')).toBe(false); +        expect(jqLite(b).hasClass('cde')).toBe(true); + +        expect(selector.toggleClass('abc cde')).toBe(selector); +        expect(jqLite(a).hasClass('abc')).toBe(true); +        expect(jqLite(a).hasClass('cde')).toBe(false); +        expect(jqLite(b).hasClass('abc')).toBe(true); +        expect(jqLite(b).hasClass('cde')).toBe(false); +      }); + +      it('should allow toggling multiple classes with a condition', function () { +        var selector = jqLite([a, b]); +        selector.addClass('abc'); +        expect(selector.toggleClass('abc cde', true)).toBe(selector); +        expect(jqLite(a).hasClass('abc')).toBe(true); +        expect(jqLite(a).hasClass('cde')).toBe(true); +        expect(jqLite(b).hasClass('abc')).toBe(true); +        expect(jqLite(b).hasClass('cde')).toBe(true); + +        selector.removeClass('abc'); +        expect(selector.toggleClass('abc cde', false)).toBe(selector); +        expect(jqLite(a).hasClass('abc')).toBe(false); +        expect(jqLite(a).hasClass('cde')).toBe(false); +        expect(jqLite(b).hasClass('abc')).toBe(false); +        expect(jqLite(b).hasClass('cde')).toBe(false); +      }); + +      it('should not break for null / undefined selectors', function () { +        var selector = jqLite([a, b]); +        expect(selector.toggleClass(null)).toBe(selector); +        expect(selector.toggleClass(undefined)).toBe(selector); +      });      }); | 
