aboutsummaryrefslogtreecommitdiffstats
path: root/test/jqLiteSpec.js
diff options
context:
space:
mode:
authorPawel Kozlowski2014-02-25 19:55:34 +0100
committerPawel Kozlowski2014-02-27 19:44:57 +0100
commit4e73c80b17bd237a8491782bcf9e19f1889e12ed (patch)
treee398a66ef1d2bcf99b37b6ed5463c44233cb9c7e /test/jqLiteSpec.js
parent27873acbf0003031be52c719d068e46e4f7ef31f (diff)
downloadangular.js-4e73c80b17bd237a8491782bcf9e19f1889e12ed.tar.bz2
fix(jqLite): properly toggle multiple classes
Fixes #4467 Closes #6448
Diffstat (limited to 'test/jqLiteSpec.js')
-rw-r--r--test/jqLiteSpec.js51
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);
+ });
});