aboutsummaryrefslogtreecommitdiffstats
path: root/test/jqLiteSpec.js
diff options
context:
space:
mode:
authorIgor Minar2011-09-15 21:20:38 +0200
committerIgor Minar2011-09-16 02:44:29 +0200
commit6b7ddf414de82720bbf547b2fa661bf5fcec7bb6 (patch)
tree009ad32aac321ee7965d3df0350fb9dfa104e25b /test/jqLiteSpec.js
parent8259f101389afc1b5b1f044b2b07bf6f8f44fc83 (diff)
downloadangular.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/jqLiteSpec.js')
-rw-r--r--test/jqLiteSpec.js96
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');