This commit is contained in:
Erik 2015-12-23 14:00:06 -05:00
parent 8cf3aebf9f
commit 298817ce5c
3 changed files with 19 additions and 14 deletions

View File

@ -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

View File

@ -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
}
}

View File

@ -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)