diff options
| author | Igor Minar | 2011-09-15 21:20:38 +0200 |
|---|---|---|
| committer | Igor Minar | 2011-09-16 02:44:29 +0200 |
| commit | 6b7ddf414de82720bbf547b2fa661bf5fcec7bb6 (patch) | |
| tree | 009ad32aac321ee7965d3df0350fb9dfa104e25b /test | |
| parent | 8259f101389afc1b5b1f044b2b07bf6f8f44fc83 (diff) | |
| download | angular.js-6b7ddf414de82720bbf547b2fa661bf5fcec7bb6.tar.bz2 | |
feat(jqLite): add support for unbind()
supports these invocation types:
- foo.unbind();
- foo.unbind('eventType');
- foo.unbind('eventType', fn);
more info: http://api.jquery.com/unbind/
Diffstat (limited to 'test')
| -rw-r--r-- | test/jqLiteSpec.js | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/test/jqLiteSpec.js b/test/jqLiteSpec.js index 6578022c..0ebb1717 100644 --- a/test/jqLiteSpec.js +++ b/test/jqLiteSpec.js @@ -450,6 +450,102 @@ describe('jqLite', function(){ }); + describe('unbind', function() { + it('should do nothing when no listener was registered with bound', function() { + var aElem = jqLite(a); + + aElem.unbind(); + aElem.unbind('click'); + aElem.unbind('click', function() {}); + }); + + + it('should deregister all listeners', function() { + var aElem = jqLite(a), + clickSpy = jasmine.createSpy('click'), + mouseoverSpy = jasmine.createSpy('mouseover'); + + aElem.bind('click', clickSpy); + aElem.bind('mouseover', mouseoverSpy); + + browserTrigger(a, 'click'); + expect(clickSpy).toHaveBeenCalledOnce(); + browserTrigger(a, 'mouseover'); + expect(mouseoverSpy).toHaveBeenCalledOnce(); + + clickSpy.reset(); + mouseoverSpy.reset(); + + aElem.unbind(); + + browserTrigger(a, 'click'); + expect(clickSpy).not.toHaveBeenCalled(); + browserTrigger(a, 'mouseover'); + expect(mouseoverSpy).not.toHaveBeenCalled(); + }); + + + it('should deregister listeners for specific type', function() { + var aElem = jqLite(a), + clickSpy = jasmine.createSpy('click'), + mouseoverSpy = jasmine.createSpy('mouseover'); + + aElem.bind('click', clickSpy); + aElem.bind('mouseover', mouseoverSpy); + + browserTrigger(a, 'click'); + expect(clickSpy).toHaveBeenCalledOnce(); + browserTrigger(a, 'mouseover'); + expect(mouseoverSpy).toHaveBeenCalledOnce(); + + clickSpy.reset(); + mouseoverSpy.reset(); + + aElem.unbind('click'); + + browserTrigger(a, 'click'); + expect(clickSpy).not.toHaveBeenCalled(); + browserTrigger(a, 'mouseover'); + expect(mouseoverSpy).toHaveBeenCalledOnce(); + + mouseoverSpy.reset(); + + aElem.unbind('mouseover'); + browserTrigger(a, 'mouseover'); + expect(mouseoverSpy).not.toHaveBeenCalled(); + }); + + + it('should deregister specific listener', function() { + var aElem = jqLite(a), + clickSpy1 = jasmine.createSpy('click1'), + clickSpy2 = jasmine.createSpy('click2'); + + aElem.bind('click', clickSpy1); + aElem.bind('click', clickSpy2); + + browserTrigger(a, 'click'); + expect(clickSpy1).toHaveBeenCalledOnce(); + expect(clickSpy2).toHaveBeenCalledOnce(); + + clickSpy1.reset(); + clickSpy2.reset(); + + aElem.unbind('click', clickSpy1); + + browserTrigger(a, 'click'); + expect(clickSpy1).not.toHaveBeenCalled(); + expect(clickSpy2).toHaveBeenCalledOnce(); + + clickSpy2.reset(); + + aElem.unbind('click', clickSpy2); + browserTrigger(a, 'click'); + expect(clickSpy2).not.toHaveBeenCalled(); + }); + }); + + describe('replaceWith', function(){ it('should replaceWith', function(){ var root = jqLite('<div>').html('before-<div></div>after'); |
