From 5c0bbde77be2a029e6d4c8180f17a3114be32867 Mon Sep 17 00:00:00 2001 From: Erik Little Date: Tue, 3 Oct 2017 20:06:55 -0400 Subject: [PATCH] add test for transport open calling connect --- SocketIO-MacTests/SocketSideEffectTest.swift | 29 ++++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/SocketIO-MacTests/SocketSideEffectTest.swift b/SocketIO-MacTests/SocketSideEffectTest.swift index 32a1951..e88fad3 100644 --- a/SocketIO-MacTests/SocketSideEffectTest.swift +++ b/SocketIO-MacTests/SocketSideEffectTest.swift @@ -252,6 +252,7 @@ class SocketSideEffectTest: XCTestCase { let expect = expectation(description: "The client should call the timeout function") socket.setTestStatus(.notConnected) + socket.nsp = "/someNamespace" socket.engine = TestEngine(client: socket, url: socket.socketURL, options: nil) socket.connect(timeoutAfter: 0.5, withHandler: { @@ -283,6 +284,23 @@ class SocketSideEffectTest: XCTestCase { waitForExpectations(timeout: 2) } + func testClientCallsConnectOnEngineOpen() { + let expect = expectation(description: "The client call the connect handler") + + socket.setTestStatus(.notConnected) + socket.engine = TestEngine(client: socket, url: socket.socketURL, options: nil) + + socket.on(clientEvent: .connect) {data, ack in + expect.fulfill() + } + + socket.connect(timeoutAfter: 0.5, withHandler: { + XCTFail("Should not call timeout handler if status is connected") + }) + + waitForExpectations(timeout: 2) + } + func testConnectIsCalledWithNamespace() { let expect = expectation(description: "The client should not call the timeout function") let nspString = "/swift" @@ -399,7 +417,7 @@ struct ThrowingData : SocketData { } class TestEngine : SocketEngineSpec { - var client: SocketEngineClient? = nil + weak var client: SocketEngineClient? private(set) var closed = false private(set) var connected = false var connectParams: [String: Any]? = nil @@ -418,9 +436,14 @@ class TestEngine : SocketEngineSpec { private(set) var websocket = false private(set) var ws: WebSocket? = nil - required init(client: SocketEngineClient, url: URL, options: NSDictionary?) { } + required init(client: SocketEngineClient, url: URL, options: NSDictionary?) { + self.client = client + } + + func connect() { + client?.engineDidOpen(reason: "Connect") + } - func connect() { } func didError(reason: String) { } func disconnect(reason: String) { } func doFastUpgrade() { }