From 298817ce5ca033f68b2e19be126be670b272ba12 Mon Sep 17 00:00:00 2001 From: Erik Date: Wed, 23 Dec 2015 14:00:06 -0500 Subject: [PATCH] refactor --- SocketIO-MacTests/SocketSideEffectTest.swift | 16 ++++++++++++++-- Source/SocketPacket.swift | 15 ++++----------- Source/SocketParser.swift | 2 +- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/SocketIO-MacTests/SocketSideEffectTest.swift b/SocketIO-MacTests/SocketSideEffectTest.swift index 84d391f..80c0ead 100644 --- a/SocketIO-MacTests/SocketSideEffectTest.swift +++ b/SocketIO-MacTests/SocketSideEffectTest.swift @@ -12,7 +12,7 @@ class SocketSideEffectTest: XCTestCase { let data = "test".dataUsingEncoding(NSUTF8StringEncoding)! let data2 = "test2".dataUsingEncoding(NSUTF8StringEncoding)! private var socket: SocketIOClient! - + override func setUp() { super.setUp() socket = SocketIOClient(socketURL: "") @@ -31,7 +31,7 @@ class SocketSideEffectTest: XCTestCase { func testSecondAck() { socket.emitWithAck("test")(timeoutAfter: 0) {data in} socket.emitWithAck("test")(timeoutAfter: 0) {data in} - + XCTAssertEqual(socket.currentAck, 1) } @@ -46,6 +46,18 @@ class SocketSideEffectTest: XCTestCase { waitForExpectationsWithTimeout(3, handler: nil) } + func testHandleAck2() { + let expectation = expectationWithDescription("handled ack2") + socket.emitWithAck("test")(timeoutAfter: 0) {data in + XCTAssertTrue(data.count == 2, "Wrong number of ack items") + expectation.fulfill() + } + + socket.parseSocketMessage("61-0[{\"_placeholder\":true,\"num\":0},{\"test\":true}]") + socket.parseBinaryData(NSData()) + waitForExpectationsWithTimeout(3, handler: nil) + } + func testHandleEvent() { let expectation = expectationWithDescription("handled event") socket.on("test") {data, ack in diff --git a/Source/SocketPacket.swift b/Source/SocketPacket.swift index 6eec07c..2fa9fd4 100644 --- a/Source/SocketPacket.swift +++ b/Source/SocketPacket.swift @@ -39,18 +39,11 @@ struct SocketPacket { case Connect, Disconnect, Event, Ack, Error, BinaryEvent, BinaryAck } - var args: [AnyObject]? { - var arr = data - - if data.count == 0 { - return nil + var args: [AnyObject] { + if type == .Event || type == .BinaryEvent && data.count != 0 { + return Array(data.dropFirst()) } else { - if type == .Event || type == .BinaryEvent { - arr.removeAtIndex(0) - return arr - } else { - return arr - } + return data } } diff --git a/Source/SocketParser.swift b/Source/SocketParser.swift index 49c77fd..ca067b2 100644 --- a/Source/SocketParser.swift +++ b/Source/SocketParser.swift @@ -41,7 +41,7 @@ class SocketParser { private static func handlePacket(pack: SocketPacket, withSocket socket: SocketIOClient) { switch pack.type { case .Event where isCorrectNamespace(pack.nsp, socket): - socket.handleEvent(pack.event, data: pack.args ?? [], + socket.handleEvent(pack.event, data: pack.args, isInternalMessage: false, withAck: pack.id) case .Ack where isCorrectNamespace(pack.nsp, socket): socket.handleAck(pack.id, data: pack.data)