work on side effect tests
This commit is contained in:
parent
a88a859750
commit
32e1f55394
@ -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 */,
|
||||||
|
|||||||
57
SocketIO-MacTests/SocketSideEffectTest.swift
Normal file
57
SocketIO-MacTests/SocketSideEffectTest.swift
Normal 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)
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -80,7 +80,6 @@ class SocketTestEngine: NSObject, SocketEngineSpec {
|
|||||||
expectation?.fulfill()
|
expectation?.fulfill()
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
print(sendString)
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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]()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user