Skip to content
This repository
Browse code

refactor toggleClass and tests

  • Loading branch information...
commit 025630b51ff1aa7bda4a6d3f28c31399d9e0ab5c 1 parent 441dd66
Mislav Marohnić authored
10  src/zepto.js
@@ -626,11 +626,11 @@ var Zepto = (function() {
626 626
     },
627 627
     toggleClass: function(name, when){
628 628
       return this.each(function(idx){
629  
-        var newName = funcArg(this, name, idx, className(this));
630  
-        newName.split(/\s+/g).forEach(function(klass){
631  
-          (when === undefined ? !$(this).hasClass(klass) : when) ?
632  
-            $(this).addClass(klass) : $(this).removeClass(klass)
633  
-        }, this)
  629
+        var $this = $(this), names = funcArg(this, name, idx, className(this))
  630
+        names.split(/\s+/g).forEach(function(klass){
  631
+          (when === undefined ? !$this.hasClass(klass) : when) ?
  632
+            $this.addClass(klass) : $this.removeClass(klass)
  633
+        })
634 634
       })
635 635
     },
636 636
     scrollTop: function(){
79  test/zepto.html
@@ -2021,66 +2021,63 @@
2021 2021
       },
2022 2022
 
2023 2023
       testToggleClass: function(t){
2024  
-        var el = $('#toggle_element').get(0)
2025  
-        $('#toggle_element').toggleClass('green')
  2024
+        var el = $('#toggle_element').removeClass()
2026 2025
 
2027  
-        t.assert($('#toggle_element').hasClass('green'))
2028  
-        t.assert(!$('#toggle_element').hasClass('orange'))
  2026
+        t.assertIdentical(el, el.toggleClass('green'))
  2027
+        t.assertTrue(el.hasClass('green'))
  2028
+        t.assertFalse(el.hasClass('orange'))
2029 2029
 
2030  
-        $('#toggle_element').toggleClass('orange')
2031  
-        t.assert($('#toggle_element').hasClass('green'))
2032  
-        t.assert($('#toggle_element').hasClass('orange'))
  2030
+        el.toggleClass('orange')
  2031
+        t.assertTrue(el.hasClass('green'))
  2032
+        t.assertTrue(el.hasClass('orange'))
2033 2033
 
2034  
-        $('#toggle_element').toggleClass('green')
  2034
+        el.toggleClass('green')
  2035
+        t.assertFalse(el.hasClass('green'))
  2036
+        t.assertTrue(el.hasClass('orange'))
2035 2037
 
2036  
-        t.assert(!$('#toggle_element').hasClass('green'))
2037  
-        t.assert($('#toggle_element').hasClass('orange'))
  2038
+        el.toggleClass('orange')
  2039
+        t.assertFalse(el.hasClass('green'))
  2040
+        t.assertFalse(el.hasClass('orange'))
2038 2041
 
2039  
-        $('#toggle_element').toggleClass('orange')
2040  
-        t.assert(!$('#toggle_element').hasClass('green'))
2041  
-        t.assert(!$('#toggle_element').hasClass('orange'))
  2042
+        el.toggleClass('orange green')
  2043
+        t.assertTrue(el.hasClass('orange'))
  2044
+        t.assertTrue(el.hasClass('green'))
2042 2045
 
2043  
-        el.className = ''
2044  
-        $(el).toggleClass('orange green')
2045  
-        t.assert($(el).hasClass('orange'))
2046  
-        t.assert($(el).hasClass('green'))
2047  
-        $(el).toggleClass('orange green blue')
2048  
-        t.assert(!$(el).hasClass('orange'))
2049  
-        t.assert(!$(el).hasClass('green'))
2050  
-        t.assert($(el).hasClass('blue'))
2051  
-        el.className = ''
  2046
+        el.toggleClass('orange green blue')
  2047
+        t.assertFalse(el.hasClass('orange'))
  2048
+        t.assertFalse(el.hasClass('green'))
  2049
+        t.assertTrue(el.hasClass('blue'))
2052 2050
 
2053  
-        $('#toggle_element').toggleClass('orange', false)
2054  
-        t.assert(!$('#toggle_element').hasClass('orange'))
  2051
+        el.removeClass()
2055 2052
 
2056  
-        $('#toggle_element').toggleClass('orange', false)
2057  
-        t.assert(!$('#toggle_element').hasClass('orange'))
  2053
+        el.toggleClass('orange', false)
  2054
+        t.assertFalse(el.hasClass('orange'))
  2055
+        el.toggleClass('orange', false)
  2056
+        t.assertFalse(el.hasClass('orange'))
2058 2057
 
2059  
-        $('#toggle_element').toggleClass('orange', true)
2060  
-        t.assert($('#toggle_element').hasClass('orange'))
2061  
-
2062  
-        $('#toggle_element').toggleClass('orange', true)
2063  
-        t.assert($('#toggle_element').hasClass('orange'))
  2058
+        el.toggleClass('orange', true)
  2059
+        t.assertTrue(el.hasClass('orange'))
  2060
+        el.toggleClass('orange', true)
  2061
+        t.assertTrue(el.hasClass('orange'))
2064 2062
 
2065 2063
         //function argument
2066  
-        $('#toggle_element').toggleClass(function(idx,classes){
2067  
-          //test the value of "this"
2068  
-          t.assertEqualCollection($('#toggle_element'), $(this))
  2064
+        el.toggleClass(function(idx,classes){
  2065
+          t.assertIdentical(el.get(0), this)
2069 2066
           //test original classes are being passed
2070 2067
           t.assertEqual('orange', this.className)
2071 2068
           return "brown"
2072 2069
         })
2073  
-        t.assert($('#toggle_element').hasClass('brown'))
  2070
+        t.assertTrue(el.hasClass('brown'))
2074 2071
 
2075  
-        $('#toggle_element').toggleClass(function(idx,classes){
  2072
+        el.toggleClass(function(idx,classes){
2076 2073
           return "yellow"
2077  
-        },false)
2078  
-        t.assert(!$('#toggle_element').hasClass('yellow'))
  2074
+        }, false)
  2075
+        t.assertFalse(el.hasClass('yellow'))
2079 2076
 
2080  
-        $('#toggle_element').toggleClass(function(idx,classes){
  2077
+        el.toggleClass(function(idx,classes){
2081 2078
           return "yellow"
2082  
-        },true)
2083  
-        t.assert($('#toggle_element').hasClass('yellow'))
  2079
+        }, true)
  2080
+        t.assert(el.hasClass('yellow'))
2084 2081
       },
2085 2082
 
2086 2083
       testClassSVG: function(t){

0 notes on commit 025630b

Please sign in to comment.
Something went wrong with that request. Please try again.