Skip to content

Commit

Permalink
Merge branch 'r2.0.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
pl committed Apr 11, 2013
2 parents fd3b69f + bb23fe7 commit 8f42001
Show file tree
Hide file tree
Showing 10 changed files with 348 additions and 106 deletions.
10 changes: 10 additions & 0 deletions CHANGELOG.markdown
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Changelog

## 2.0.1 (2013-04-11)

[FIXED] Issues with disabling Flash transport

[FIXED] Error while checking for Flash support in some environments

[FIXED] Race condition on disconnections and retries

[FIXED] Reporting errors when connection was closed correctly

## 2.0.0 (2013-03-19)

[CHANGED] Completely redesigned connection strategy
Expand Down
2 changes: 1 addition & 1 deletion JFile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ target_dir './dist'

src_dir './src'

version '2.0.0'
version '2.0.1'

bundle 'pusher.js' do
license 'pusher-licence.js'
Expand Down
12 changes: 12 additions & 0 deletions spec/javascripts/unit/connection/connection_manager_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,18 @@ describe("ConnectionManager", function() {
expect(connection.send).not.toHaveBeenCalled();
expect(connection.send_event).not.toHaveBeenCalled();
});

it("should stop emitting received messages", function() {
var onMessage = jasmine.createSpy("onMessage");
manager.bind("message", onMessage);

manager.connect();
strategy._callback(null, {});
manager.disconnect();

connection.emit("message", {});
expect(onMessage).not.toHaveBeenCalled();
});
});

describe("on lost connection", function() {
Expand Down
132 changes: 132 additions & 0 deletions spec/javascripts/unit/connection/protocol_wrapper_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,30 @@ describe("ProtocolWrapper", function() {
expect(onClosed.calls.length).toEqual(1);
});

it("should not emit an error after receiving close code 1000", function() {
var onError = jasmine.createSpy("onError");
wrapper.bind("error", onError);

transport.emit("closed", {
code: 1000,
reason: "normal"
});

expect(onError).not.toHaveBeenCalled();
});

it("should not emit an error after receiving close code 1001", function() {
var onError = jasmine.createSpy("onError");
wrapper.bind("error", onError);

transport.emit("closed", {
code: 1001,
reason: "going away"
});

expect(onError).not.toHaveBeenCalled();
});

it("should emit 'backoff' when receiving close code 1002", function() {
var onConnected = jasmine.createSpy("onConnected");
var onBackoff = jasmine.createSpy("onBackoff");
Expand All @@ -257,6 +281,24 @@ describe("ProtocolWrapper", function() {
expect(onBackoff).toHaveBeenCalled();
});

it("should emit an error after receiving close code 1002", function() {
var onError = jasmine.createSpy("onError");
wrapper.bind("error", onError);

transport.emit("closed", {
code: 1002,
reason: "protocol error"
});

expect(onError).toHaveBeenCalledWith({
type: "PusherError",
data: {
code: 1002,
message: "protocol error"
}
});
});

it("should emit 'ssl_only' when receiving close code 4000", function() {
var onSSLOnly = jasmine.createSpy("onSSLOnly");
var onClosed = jasmine.createSpy("onClosed");
Expand All @@ -272,6 +314,24 @@ describe("ProtocolWrapper", function() {
expect(onClosed.calls.length).toEqual(1);
});

it("should emit an error after receiving close code 4000", function() {
var onError = jasmine.createSpy("onError");
wrapper.bind("error", onError);

transport.emit("closed", {
code: 4000,
reason: "SSL only"
});

expect(onError).toHaveBeenCalledWith({
type: "PusherError",
data: {
code: 4000,
message: "SSL only"
}
});
});

it("should emit 'refused' when receiving 4001-4099 close code", function() {
var onConnected = jasmine.createSpy("onConnected");
var onRefused = jasmine.createSpy("onRefused");
Expand All @@ -287,6 +347,24 @@ describe("ProtocolWrapper", function() {
expect(onRefused).toHaveBeenCalled();
});

it("should emit an error after receiving close code 4001-4099", function() {
var onError = jasmine.createSpy("onError");
wrapper.bind("error", onError);

transport.emit("closed", {
code: 4096,
reason: "refused"
});

expect(onError).toHaveBeenCalledWith({
type: "PusherError",
data: {
code: 4096,
message: "refused"
}
});
});

it("should emit 'backoff' when receiving 4100-4199 close code", function() {
var onConnected = jasmine.createSpy("onConnected");
var onBackoff = jasmine.createSpy("onBackoff");
Expand All @@ -302,6 +380,24 @@ describe("ProtocolWrapper", function() {
expect(onBackoff).toHaveBeenCalled();
});

it("should emit an error after receiving close code 4100-4199", function() {
var onError = jasmine.createSpy("onError");
wrapper.bind("error", onError);

transport.emit("closed", {
code: 4111,
reason: "backoff"
});

expect(onError).toHaveBeenCalledWith({
type: "PusherError",
data: {
code: 4111,
message: "backoff"
}
});
});

it("should emit 'retry' when receiving 4200-4299 close code", function() {
var onConnected = jasmine.createSpy("onConnected");
var onRetry = jasmine.createSpy("onRetry");
Expand All @@ -317,6 +413,24 @@ describe("ProtocolWrapper", function() {
expect(onRetry).toHaveBeenCalled();
});

it("should emit an error after receiving close code 4200-4299", function() {
var onError = jasmine.createSpy("onError");
wrapper.bind("error", onError);

transport.emit("closed", {
code: 4234,
reason: "retry"
});

expect(onError).toHaveBeenCalledWith({
type: "PusherError",
data: {
code: 4234,
message: "retry"
}
});
});

it("should emit 'refused' when receiving unknown close code", function() {
var onConnected = jasmine.createSpy("onConnected");
var onRefused = jasmine.createSpy("onRefused");
Expand All @@ -331,5 +445,23 @@ describe("ProtocolWrapper", function() {
expect(onConnected).not.toHaveBeenCalled();
expect(onRefused).toHaveBeenCalled();
});

it("should emit an error after receiving unknown close code", function() {
var onError = jasmine.createSpy("onError");
wrapper.bind("error", onError);

transport.emit("closed", {
code: 4301,
reason: "weird"
});

expect(onError).toHaveBeenCalledWith({
type: "PusherError",
data: {
code: 4301,
message: "weird"
}
});
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@ describe("AssistantToTheTransportManager", function() {
transportManager.isAlive.andReturn(false);
expect(assistant.isSupported()).toBe(false);
});

it("should pass the environment to the transport", function() {
assistant.isSupported({ disableFlash: true });
expect(transportClass.isSupported)
.toHaveBeenCalledWith({ disableFlash: true });
});
});

describe("#createConnection", function() {
Expand Down
Loading

0 comments on commit 8f42001

Please sign in to comment.