You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by fi...@apache.org on 2012/05/31 20:07:51 UTC
[2/4] js commit: adding more tests for channel
adding more tests for channel
Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/commit/bd23ea50
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/tree/bd23ea50
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/diff/bd23ea50
Branch: refs/heads/master
Commit: bd23ea50b49fdd6ceee5f2528eb88cf917b53168
Parents: 71c7a27
Author: Fil Maj <ma...@gmail.com>
Authored: Thu May 31 10:53:29 2012 -0700
Committer: Fil Maj <ma...@gmail.com>
Committed: Thu May 31 10:53:29 2012 -0700
----------------------------------------------------------------------
test/test.channel.js | 56 ++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 53 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/bd23ea50/test/test.channel.js
----------------------------------------------------------------------
diff --git a/test/test.channel.js b/test/test.channel.js
index d64e770..34984e9 100644
--- a/test/test.channel.js
+++ b/test/test.channel.js
@@ -40,6 +40,16 @@ describe("channel", function () {
expect(c.numHandlers).toEqual(initialLength);
});
+ it("should not change number of handlers when subscribing same function multiple times", function() {
+ var initialLength = c.numHandlers;
+ var handler = function(){};
+
+ c.subscribe(handler);
+ c.subscribe(handler);
+ c.subscribe(handler);
+
+ expect(c.numHandlers).toEqual(initialLength+1);
+ });
});
describe("unsubscribe method", function() {
@@ -79,9 +89,9 @@ describe("channel", function () {
c.unsubscribe(secondHandler);
expect(c.numHandlers).toEqual(0);
-
- c.subscribe(firstHandler);
- c.subscribe(firstHandler);
+ });
+ it("should not decrement handlers length more than once if unsubing a single handler", function() {
+ var firstHandler = function(){};
c.subscribe(firstHandler);
expect(c.numHandlers).toEqual(1);
@@ -92,7 +102,47 @@ describe("channel", function () {
c.unsubscribe(firstHandler);
expect(c.numHandlers).toEqual(0);
+ });
+ });
+
+ describe("fire method", function() {
+ it("should fire all subscribed handlers", function() {
+ var handler = jasmine.createSpy();
+ var anotherOne = jasmine.createSpy();
+
+ c.subscribe(handler);
+ c.subscribe(anotherOne);
+
+ c.fire();
+
+ expect(handler).toHaveBeenCalled();
+ expect(anotherOne).toHaveBeenCalled();
+ });
+ it("should not fire a handler that was unsubscribed", function() {
+ var handler = jasmine.createSpy();
+ var anotherOne = jasmine.createSpy();
+
+ c.subscribe(handler);
+ c.subscribe(anotherOne);
+ c.unsubscribe(handler);
+
+ c.fire();
+
+ expect(handler).not.toHaveBeenCalled();
+ expect(anotherOne).toHaveBeenCalled();
+ });
+ it("should not fire a handler more than once if it was subscribed more than once", function() {
+ var count = 0;
+ var handler = jasmine.createSpy().andCallFake(function() { count++; });
+
+ c.subscribe(handler);
+ c.subscribe(handler);
+ c.subscribe(handler);
+
+ c.fire();
+ expect(handler).toHaveBeenCalled();
+ expect(count).toEqual(1);
});
});
});