       $li_second.removeClass('dos due')
       expect(getClass($li_second)).toEqual(['two'])
 
-    it 'should remove all classes from an element', ->
+    it 'should remove all classes from an element if called without arguments', ->
       $li_second.removeClass()
       expect(getClass($li_second)).toEqual([''])
+
+    it 'should remove all classes from an element if called with empty string', ->
+      $li_second[0].className = 'test multiple'
+      $li_second.removeClass('')
+      expect(getClass($li_second)).toEqual([''])

      $li_second.addClass('dos two due')
      expect(getClass($li_second)).toEqual(['dos', 'two', 'due'])

  describe 'removeClass()', ->
    it 'should remove a class from an element', ->
      $li_first.removeClass('uno')
      expect(getClass($li_first)).toEqual(['first', 'active'])

      expect($li_second.html()).toEqual(content)

  describe 'val()', ->
    it 'should return undefined for a non existing element', ->
      expect($('#noexists').val()).toEqual(undefined)

    it 'should not fail when called on an empty set', ->
      expect(-> $('#noexists').val()).not.toThrow()

    it 'should return the value of an element', ->
      value = document.getElementById('name').value
      expect($input.val()).toEqual(value)

    it 'should set the value of an element', ->
      content = 'changed'
      $input.val(content)
      expect($input[0].value).toEqual(content)

  describe 'addClass()', ->
    it 'should not fail when called on an empty set', ->
      expect(-> $('#noexists').addClass('noexists')).not.toThrow()

    it 'should add a class to an element', ->
      $li_first.addClass('uno')
      expect(getClass($li_first)).toEqual(['first', 'active', 'uno'])
