work on side effect tests

This commit is contained in:
Erik 2015-10-11 13:11:18 -04:00
parent a88a859750
commit 32e1f55394
5 changed files with 71 additions and 3 deletions

View File

@ -55,6 +55,8 @@
7472A5EE1BB6ECE800CD4F59 /* WebSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5764DF881B51F254004FF46E /* WebSocket.swift */; }; 7472A5EE1BB6ECE800CD4F59 /* WebSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5764DF881B51F254004FF46E /* WebSocket.swift */; };
7472C65C1BCAB53E003CA70D /* SocketNamespacePacketTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7472C65B1BCAB53E003CA70D /* SocketNamespacePacketTest.swift */; settings = {ASSET_TAGS = (); }; }; 7472C65C1BCAB53E003CA70D /* SocketNamespacePacketTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7472C65B1BCAB53E003CA70D /* SocketNamespacePacketTest.swift */; settings = {ASSET_TAGS = (); }; };
7472C65D1BCAB53E003CA70D /* SocketNamespacePacketTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7472C65B1BCAB53E003CA70D /* SocketNamespacePacketTest.swift */; settings = {ASSET_TAGS = (); }; }; 7472C65D1BCAB53E003CA70D /* SocketNamespacePacketTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7472C65B1BCAB53E003CA70D /* SocketNamespacePacketTest.swift */; settings = {ASSET_TAGS = (); }; };
7472C65F1BCAC46E003CA70D /* SocketSideEffectTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7472C65E1BCAC46E003CA70D /* SocketSideEffectTest.swift */; settings = {ASSET_TAGS = (); }; };
7472C6601BCAC46E003CA70D /* SocketSideEffectTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7472C65E1BCAC46E003CA70D /* SocketSideEffectTest.swift */; settings = {ASSET_TAGS = (); }; };
74781D5A1B7E83930042CACA /* SocketIOClientStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74781D591B7E83930042CACA /* SocketIOClientStatus.swift */; }; 74781D5A1B7E83930042CACA /* SocketIOClientStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74781D591B7E83930042CACA /* SocketIOClientStatus.swift */; };
74781D5B1B7E83930042CACA /* SocketIOClientStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74781D591B7E83930042CACA /* SocketIOClientStatus.swift */; }; 74781D5B1B7E83930042CACA /* SocketIOClientStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74781D591B7E83930042CACA /* SocketIOClientStatus.swift */; };
74781D5C1B7E83930042CACA /* SocketIOClientStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74781D591B7E83930042CACA /* SocketIOClientStatus.swift */; }; 74781D5C1B7E83930042CACA /* SocketIOClientStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74781D591B7E83930042CACA /* SocketIOClientStatus.swift */; };
@ -137,6 +139,7 @@
5764DF871B51F254004FF46E /* SwiftRegex.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftRegex.swift; path = SocketIOClientSwift/SwiftRegex.swift; sourceTree = "<group>"; }; 5764DF871B51F254004FF46E /* SwiftRegex.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftRegex.swift; path = SocketIOClientSwift/SwiftRegex.swift; sourceTree = "<group>"; };
5764DF881B51F254004FF46E /* WebSocket.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = WebSocket.swift; path = SocketIOClientSwift/WebSocket.swift; sourceTree = "<group>"; }; 5764DF881B51F254004FF46E /* WebSocket.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = WebSocket.swift; path = SocketIOClientSwift/WebSocket.swift; sourceTree = "<group>"; };
7472C65B1BCAB53E003CA70D /* SocketNamespacePacketTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketNamespacePacketTest.swift; sourceTree = "<group>"; }; 7472C65B1BCAB53E003CA70D /* SocketNamespacePacketTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketNamespacePacketTest.swift; sourceTree = "<group>"; };
7472C65E1BCAC46E003CA70D /* SocketSideEffectTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketSideEffectTest.swift; sourceTree = "<group>"; };
74781D591B7E83930042CACA /* SocketIOClientStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SocketIOClientStatus.swift; path = SocketIOClientSwift/SocketIOClientStatus.swift; sourceTree = "<group>"; }; 74781D591B7E83930042CACA /* SocketIOClientStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SocketIOClientStatus.swift; path = SocketIOClientSwift/SocketIOClientStatus.swift; sourceTree = "<group>"; };
749A7F8A1BA9D42D00782993 /* SocketAckEmitter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SocketAckEmitter.swift; path = SocketIOClientSwift/SocketAckEmitter.swift; sourceTree = "<group>"; }; 749A7F8A1BA9D42D00782993 /* SocketAckEmitter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SocketAckEmitter.swift; path = SocketIOClientSwift/SocketAckEmitter.swift; sourceTree = "<group>"; };
74D765611B9F0D870028551C /* SocketStringReader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SocketStringReader.swift; path = SocketIOClientSwift/SocketStringReader.swift; sourceTree = "<group>"; }; 74D765611B9F0D870028551C /* SocketStringReader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SocketStringReader.swift; path = SocketIOClientSwift/SocketStringReader.swift; sourceTree = "<group>"; };
@ -262,6 +265,7 @@
74F124EF1BC574CF002966F4 /* SocketBasicPacketTest.swift */, 74F124EF1BC574CF002966F4 /* SocketBasicPacketTest.swift */,
7472C65B1BCAB53E003CA70D /* SocketNamespacePacketTest.swift */, 7472C65B1BCAB53E003CA70D /* SocketNamespacePacketTest.swift */,
949FAE8C1B9B94E600073BE9 /* SocketParserTest.swift */, 949FAE8C1B9B94E600073BE9 /* SocketParserTest.swift */,
7472C65E1BCAC46E003CA70D /* SocketSideEffectTest.swift */,
74F124EC1BC572A8002966F4 /* SocketTestEngine.swift */, 74F124EC1BC572A8002966F4 /* SocketTestEngine.swift */,
572EF2471B51F18A00EEBB58 /* Supporting Files */, 572EF2471B51F18A00EEBB58 /* Supporting Files */,
); );
@ -507,6 +511,7 @@
749A7F8C1BA9D42D00782993 /* SocketAckEmitter.swift in Sources */, 749A7F8C1BA9D42D00782993 /* SocketAckEmitter.swift in Sources */,
74F124ED1BC572A8002966F4 /* SocketTestEngine.swift in Sources */, 74F124ED1BC572A8002966F4 /* SocketTestEngine.swift in Sources */,
945B65371B5FCEEA0081E995 /* SocketEngine.swift in Sources */, 945B65371B5FCEEA0081E995 /* SocketEngine.swift in Sources */,
7472C65F1BCAC46E003CA70D /* SocketSideEffectTest.swift in Sources */,
945B65351B5FCEEA0081E995 /* SocketAckManager.swift in Sources */, 945B65351B5FCEEA0081E995 /* SocketAckManager.swift in Sources */,
945B65401B5FCEEA0081E995 /* SwiftRegex.swift in Sources */, 945B65401B5FCEEA0081E995 /* SwiftRegex.swift in Sources */,
945B653C1B5FCEEA0081E995 /* SocketLogger.swift in Sources */, 945B653C1B5FCEEA0081E995 /* SocketLogger.swift in Sources */,
@ -562,6 +567,7 @@
7472A5E51BB6ECE800CD4F59 /* SocketEventHandler.swift in Sources */, 7472A5E51BB6ECE800CD4F59 /* SocketEventHandler.swift in Sources */,
74F124EE1BC572A8002966F4 /* SocketTestEngine.swift in Sources */, 74F124EE1BC572A8002966F4 /* SocketTestEngine.swift in Sources */,
7472A5E61BB6ECE800CD4F59 /* SocketFixUTF8.swift in Sources */, 7472A5E61BB6ECE800CD4F59 /* SocketFixUTF8.swift in Sources */,
7472C6601BCAC46E003CA70D /* SocketSideEffectTest.swift in Sources */,
7472A5E71BB6ECE800CD4F59 /* SocketIOClient.swift in Sources */, 7472A5E71BB6ECE800CD4F59 /* SocketIOClient.swift in Sources */,
7472A5E81BB6ECE800CD4F59 /* SocketLogger.swift in Sources */, 7472A5E81BB6ECE800CD4F59 /* SocketLogger.swift in Sources */,
7472A5E91BB6ECE800CD4F59 /* SocketPacket.swift in Sources */, 7472A5E91BB6ECE800CD4F59 /* SocketPacket.swift in Sources */,

View File

@ -0,0 +1,57 @@
//
// SocketSideEffectTest.swift
// Socket.IO-Client-Swift
//
// Created by Erik Little on 10/11/15.
//
//
import XCTest
class SocketSideEffectTest: XCTestCase {
private var socket: SocketIOClient!
override func setUp() {
super.setUp()
socket = SocketIOClient(socketURL: "")
socket.setTestable()
}
func testInitialCurrentAck() {
XCTAssertEqual(socket.currentAck, -1)
}
func testFirstAck() {
socket.emitWithAck("test")(timeoutAfter: 0) {data in}
XCTAssertEqual(socket.currentAck, 0)
}
func testSecondAck() {
socket.emitWithAck("test")(timeoutAfter: 0) {data in}
socket.emitWithAck("test")(timeoutAfter: 0) {data in}
XCTAssertEqual(self.socket.currentAck, 1)
}
func testHandleAck() {
let expectation = expectationWithDescription("handled ack")
socket.emitWithAck("test")(timeoutAfter: 0) {data in
XCTAssertEqual(data[0] as? String, "hello world")
expectation.fulfill()
}
socket.handleAck(0, data: ["hello world"])
waitForExpectationsWithTimeout(3, handler: nil)
}
func testHandleEvent() {
let expectation = expectationWithDescription("handled event")
socket.on("test") {data, ack in
XCTAssertEqual(data[0] as? String, "hello world")
expectation.fulfill()
}
socket.parseSocketMessage("2[\"test\",\"hello world\"]")
waitForExpectationsWithTimeout(3, handler: nil)
}
}

View File

@ -80,7 +80,6 @@ class SocketTestEngine: NSObject, SocketEngineSpec {
expectation?.fulfill() expectation?.fulfill()
return true return true
} else { } else {
print(sendString)
return false return false
} }
} }

View File

@ -13,6 +13,7 @@ class SocketParserTest: XCTestCase {
//Format key: message; namespace-data-binary-id //Format key: message; namespace-data-binary-id
static let packetTypes: Dictionary<String, (String, [AnyObject], [NSData], Int)> = [ static let packetTypes: Dictionary<String, (String, [AnyObject], [NSData], Int)> = [
"0": ("/", [], [], -1), "1": ("/", [], [], -1), "0": ("/", [], [], -1), "1": ("/", [], [], -1),
"25[\"test\"]": ("/", ["test"], [], 5),
"2/swift,[\"testArrayEmitReturn\",[\"test3\",\"test4\"]]": ("/swift", ["testArrayEmitReturn", ["test3", "test4"]], [], -1), "2/swift,[\"testArrayEmitReturn\",[\"test3\",\"test4\"]]": ("/swift", ["testArrayEmitReturn", ["test3", "test4"]], [], -1),
"51-/swift,[\"testMultipleItemsWithBufferEmitReturn\",[1,2],{\"test\":\"bob\"},25,\"polo\",{\"_placeholder\":true,\"num\":0}]": ("/swift", ["testMultipleItemsWithBufferEmitReturn", [1, 2], ["test": "bob"], 25, "polo", "~~0"], [], -1), "51-/swift,[\"testMultipleItemsWithBufferEmitReturn\",[1,2],{\"test\":\"bob\"},25,\"polo\",{\"_placeholder\":true,\"num\":0}]": ("/swift", ["testMultipleItemsWithBufferEmitReturn", [1, 2], ["test": "bob"], 25, "polo", "~~0"], [], -1),
"3/swift,0[[\"test3\",\"test4\"]]": ("/swift", [["test3", "test4"]], [], 0), "3/swift,0[[\"test3\",\"test4\"]]": ("/swift", [["test3", "test4"]], [], 0),
@ -43,6 +44,11 @@ class SocketParserTest: XCTestCase {
validateParseResult(message) validateParseResult(message)
} }
func testNamespaceEvent() {
let message = "25[\"test\"]"
validateParseResult(message)
}
func testNameSpaceArrayParse() { func testNameSpaceArrayParse() {
let message = "2/swift,[\"testArrayEmitReturn\",[\"test3\",\"test4\"]]" let message = "2/swift,[\"testArrayEmitReturn\",[\"test3\",\"test4\"]]"
validateParseResult(message) validateParseResult(message)

View File

@ -50,8 +50,8 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
private var connectParams: [String: AnyObject]? private var connectParams: [String: AnyObject]?
private var reconnectTimer: NSTimer? private var reconnectTimer: NSTimer?
private var ackHandlers = SocketAckManager() private var ackHandlers = SocketAckManager()
private var currentAck = -1
private(set) var currentAck = -1
var waitingData = [SocketPacket]() var waitingData = [SocketPacket]()
/** /**