diff --git a/Socket.IO-Client-Swift.xcodeproj/project.pbxproj b/Socket.IO-Client-Swift.xcodeproj/project.pbxproj index 05ec9e0..653762f 100644 --- a/Socket.IO-Client-Swift.xcodeproj/project.pbxproj +++ b/Socket.IO-Client-Swift.xcodeproj/project.pbxproj @@ -57,6 +57,7 @@ 94ADAC491B652D3300FD79AE /* SocketNamespaceEmitTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94ADAC481B652D3300FD79AE /* SocketNamespaceEmitTest.swift */; }; 94ADAC4B1B6632DD00FD79AE /* SocketAcknowledgementTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94ADAC4A1B6632DD00FD79AE /* SocketAcknowledgementTest.swift */; }; 94CB8F0B1B6E48B90019ED53 /* SocketTestCases.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94CB8F0A1B6E48B90019ED53 /* SocketTestCases.swift */; }; + 94CB8F0D1B6E66E60019ED53 /* AbstractSocketTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94CB8F0C1B6E66E60019ED53 /* AbstractSocketTest.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -107,6 +108,7 @@ 94ADAC481B652D3300FD79AE /* SocketNamespaceEmitTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketNamespaceEmitTest.swift; sourceTree = ""; }; 94ADAC4A1B6632DD00FD79AE /* SocketAcknowledgementTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketAcknowledgementTest.swift; sourceTree = ""; }; 94CB8F0A1B6E48B90019ED53 /* SocketTestCases.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketTestCases.swift; sourceTree = ""; }; + 94CB8F0C1B6E66E60019ED53 /* AbstractSocketTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AbstractSocketTest.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -192,6 +194,7 @@ 94242BB71B67B0E500AAAC9D /* SocketNamespaceAcknowledgementTest.swift */, 941A4AB91B67A56C00C42318 /* TestKind.swift */, 94CB8F0A1B6E48B90019ED53 /* SocketTestCases.swift */, + 94CB8F0C1B6E66E60019ED53 /* AbstractSocketTest.swift */, 572EF2291B51F16C00EEBB58 /* Supporting Files */, ); path = "SocketIO-iOSTests"; @@ -460,6 +463,7 @@ 945B65371B5FCEEA0081E995 /* SocketEngine.swift in Sources */, 945B65351B5FCEEA0081E995 /* SocketAckManager.swift in Sources */, 941A4ABA1B67A56C00C42318 /* TestKind.swift in Sources */, + 94CB8F0D1B6E66E60019ED53 /* AbstractSocketTest.swift in Sources */, 945B65431B63D9DB0081E995 /* SocketEmitTest.swift in Sources */, 945B65401B5FCEEA0081E995 /* SwiftRegex.swift in Sources */, 945B653C1B5FCEEA0081E995 /* SocketLogger.swift in Sources */, diff --git a/SocketIO-iOSTests/AbstractSocketTest.swift b/SocketIO-iOSTests/AbstractSocketTest.swift new file mode 100644 index 0000000..ee1e335 --- /dev/null +++ b/SocketIO-iOSTests/AbstractSocketTest.swift @@ -0,0 +1,104 @@ +// +// AbstractSocketTest.swift +// Socket.IO-Client-Swift +// +// Created by Lukas Schmidt on 02.08.15. +// +// + +import XCTest + +class AbstractSocketTest: XCTestCase { + static let TEST_TIMEOUT = 4.0 + var socket:SocketIOClient! + var testKind:TestKind? + + override func tearDown() { + super.tearDown() + socket.close(fast: false) + } + + func openConnection() { + let expection = self.expectationWithDescription("connect") + socket.on("connect") {data, ack in + expection.fulfill() + } + socket.connect() + XCTAssertTrue(socket.connecting) + waitForExpectationsWithTimeout(5, handler: nil) + } + + func generateTestName(rawTestName:String) ->String { + return rawTestName + testKind!.rawValue + } + + func checkConnectionStatus() { + XCTAssertTrue(socket.connected) + XCTAssertFalse(socket.connecting) + XCTAssertFalse(socket.reconnecting) + XCTAssertFalse(socket.closed) + XCTAssertFalse(socket.secure) + } + + func socketMultipleEmit(testName:String, emitData:Array, callback:NormalCallback){ + let finalTestname = generateTestName(testName) + let expection = self.expectationWithDescription(finalTestname) + func didGetEmit(result:NSArray?, ack:AckEmitter?) { + callback(result, ack) + expection.fulfill() + } + + socket.emit(finalTestname, withItems: emitData) + socket.on(finalTestname + "Return", callback: didGetEmit) + waitForExpectationsWithTimeout(SocketEmitTest.TEST_TIMEOUT, handler: nil) + } + + + func socketEmit(testName:String, emitData:AnyObject?, callback:NormalCallback){ + let finalTestname = generateTestName(testName) + let expection = self.expectationWithDescription(finalTestname) + func didGetEmit(result:NSArray?, ack:AckEmitter?) { + callback(result, ack) + expection.fulfill() + } + + socket.on(finalTestname + "Return", callback: didGetEmit) + if let emitData = emitData { + socket.emit(finalTestname, emitData) + } else { + socket.emit(finalTestname) + } + + waitForExpectationsWithTimeout(SocketEmitTest.TEST_TIMEOUT, handler: nil) + } + + func socketAcknwoledgeMultiple(testName:String, Data:Array, callback:NormalCallback){ + let finalTestname = generateTestName(testName) + let expection = self.expectationWithDescription(finalTestname) + func didGetResult(result:NSArray?) { + callback(result, nil) + expection.fulfill() + } + + socket.emitWithAck(finalTestname, withItems: Data)(timeoutAfter: 5, callback: didGetResult) + waitForExpectationsWithTimeout(SocketEmitTest.TEST_TIMEOUT, handler: nil) + } + + func socketAcknwoledge(testName:String, Data:AnyObject?, callback:NormalCallback){ + let finalTestname = generateTestName(testName) + let expection = self.expectationWithDescription(finalTestname) + func didGet(result:NSArray?) { + callback(result, nil) + expection.fulfill() + } + var ack:OnAckCallback! + if let Data = Data { + ack = socket.emitWithAck(finalTestname, Data) + } else { + ack = socket.emitWithAck(finalTestname) + } + ack(timeoutAfter: 20, callback: didGet) + + waitForExpectationsWithTimeout(SocketEmitTest.TEST_TIMEOUT, handler: nil) + } +} diff --git a/SocketIO-iOSTests/SocketAcknowledgementTest.swift b/SocketIO-iOSTests/SocketAcknowledgementTest.swift index 7c27622..801e852 100644 --- a/SocketIO-iOSTests/SocketAcknowledgementTest.swift +++ b/SocketIO-iOSTests/SocketAcknowledgementTest.swift @@ -8,7 +8,8 @@ import XCTest -class SocketAcknowledgementTest: SocketEmitTest { +class SocketAcknowledgementTest: AbstractSocketTest { + override func setUp() { super.setUp() testKind = TestKind.Acknowledgement @@ -18,92 +19,64 @@ class SocketAcknowledgementTest: SocketEmitTest { "reconnectWait": 5, // default 10 "forcePolling": false, "forceWebsockets": false,// default false - "path": "", - "extraHeaders": headers]) + "path": ""]) openConnection() } - override func testConnectionStatus() { - super.testConnectionStatus() + func testConnectionStatus() { + super.checkConnectionStatus() } - override func testEmit() { - super.testEmit() + func testBasic() { + SocketTestCases.testBasic(socketAcknwoledge) } - override func testEmitNull() { - super.testEmitNull() + func testNull() { + SocketTestCases.testNull(socketAcknwoledge) } - override func testEmitBinary() { - super.testEmitBinary() + func testBinary() { + SocketTestCases.testBinary(socketAcknwoledge) } - override func testArrayEmit() { - super.testArrayEmit() + func testArray() { + SocketTestCases.testArray(socketAcknwoledge) } - override func testStringEmit() { - super.testStringEmit() + func testString() { + SocketTestCases.testString(socketAcknwoledge) } - override func testBoolEmit() { - super.testBoolEmit() + func testBool() { + SocketTestCases.testBool(socketAcknwoledge) } - override func testIntegerEmit() { - super.testIntegerEmit() + func testInteger() { + SocketTestCases.testInteger(socketAcknwoledge) } - override func testDoubleEmit() { - super.testDoubleEmit() + func testDouble() { + SocketTestCases.testDouble(socketAcknwoledge) } - override func testJSONEmit() { - super.testJSONEmit() + func testJSON() { + SocketTestCases.testJSON(socketAcknwoledge) } - func testJSONWithoutBuffer() { - SocketTestCases.testJSONEmit(abstractSocketEmit, testKind: self.testKind) + func testJSONWithBuffer() { + SocketTestCases.testJSONWithBuffer(socketAcknwoledge) } - override func testUnicodeEmit() { - super.testUnicodeEmit() + func testUnicode() { + SocketTestCases.testUnicode(socketAcknwoledge) } - override func testMultipleItemsEmit() { - super.testMultipleItemsEmit() + func testMultipleItems() { + SocketTestCases.testMultipleItems(socketAcknwoledgeMultiple) } - override func abstractSocketMultipleEmit(testName:String, emitData:Array, callback:NormalCallback){ - let finalTestname = generateTestName(testName) - let expection = self.expectationWithDescription(finalTestname) - func didGetEmit(result:NSArray?) { - callback(result, nil) - expection.fulfill() - } - - socket.emitWithAck(finalTestname, withItems: emitData)(timeoutAfter: 5, callback: didGetEmit) - waitForExpectationsWithTimeout(SocketEmitTest.TEST_TIMEOUT, handler: nil) - - } - - override func abstractSocketEmit(testName:String, emitData:AnyObject?, callback:NormalCallback){ - let finalTestname = testName + testKind.rawValue - let expection = self.expectationWithDescription(finalTestname) - func didGetEmit(result:NSArray?) { - callback(result, nil) - expection.fulfill() - } - var ack:OnAckCallback! - if let emitData = emitData { - ack = socket.emitWithAck(finalTestname, emitData) - } else { - ack = socket.emitWithAck(finalTestname) - } - ack(timeoutAfter: 20, callback: didGetEmit) - - waitForExpectationsWithTimeout(SocketEmitTest.TEST_TIMEOUT, handler: nil) + func testMultipleWithBuffer() { + SocketTestCases.testMultipleItemsWithBuffer(socketAcknwoledgeMultiple) } } diff --git a/SocketIO-iOSTests/SocketEmitTest.swift b/SocketIO-iOSTests/SocketEmitTest.swift index cbdaeff..a970444 100644 --- a/SocketIO-iOSTests/SocketEmitTest.swift +++ b/SocketIO-iOSTests/SocketEmitTest.swift @@ -9,22 +9,17 @@ import XCTest import Foundation -class SocketEmitTest: XCTestCase { - static let TEST_TIMEOUT = 15.0 - var socket:SocketIOClient! - let headers = ["testing": "blah", "testing2": "b/:lah"] - var testKind = TestKind.Emit - +class SocketEmitTest: AbstractSocketTest { override func setUp() { super.setUp() + testKind = TestKind.Emit socket = SocketIOClient(socketURL: "127.0.0.1:8080", opts: [ "reconnects": true, // default true "reconnectAttempts": -1, // default -1 "reconnectWait": 5, // default 10 "forcePolling": false, "forceWebsockets": false,// default false - "path": "", - "extraHeaders": headers] + "path": ""] ) openConnection() } @@ -34,227 +29,60 @@ class SocketEmitTest: XCTestCase { super.tearDown() } - func openConnection() { - let expection = self.expectationWithDescription("connect") - socket.on("connect") {data, ack in - expection.fulfill() - } - socket.connect() - XCTAssertTrue(socket.connecting) - waitForExpectationsWithTimeout(5, handler: nil) - } - func testConnectionStatus() { - XCTAssertTrue(socket.connected) - XCTAssertFalse(socket.connecting) - XCTAssertFalse(socket.reconnecting) - XCTAssertFalse(socket.closed) - XCTAssertFalse(socket.secure) + super.checkConnectionStatus() } - func testEmit() { - let testName = "basicTest" - func didGetEmit(result:NSArray?, ack:AckEmitter?) { - - } - abstractSocketEmit(testName, emitData: nil, callback: didGetEmit) + func testBasic() { + SocketTestCases.testBasic(socketEmit) } - func testEmitNull() { - let testName = "testNull" - func didGetEmit(result:NSArray?, ack:AckEmitter?) { - if let _ = result?.firstObject as? NSNull { - - }else - { - XCTFail("Should have NSNull as result") - } - } - abstractSocketEmit(testName, emitData: NSNull(), callback: didGetEmit) + func testNull() { + SocketTestCases.testNull(socketEmit) } - func testEmitBinary() { - let testName = "testBinary" - func didGetEmit(result:NSArray?, ack:AckEmitter?) { - if let data = result?.firstObject as? NSData { - let string = NSString(data: data, encoding: NSUTF8StringEncoding)! - XCTAssertEqual(string, "gakgakgak2") - }else { - XCTFail("Should have NSData as result") - } - } - let data = NSString(string: "gakgakgak2").dataUsingEncoding(NSUTF8StringEncoding)! - abstractSocketEmit(testName, emitData: data, callback: didGetEmit) + func testBinary() { + SocketTestCases.testBinary(socketEmit) } - func testArrayEmit() { - let testName = "testArray" - func didGetEmit(result:NSArray?, ack:AckEmitter?) { - if let array = result?.firstObject as? NSArray { - XCTAssertEqual(array.count, 2) - XCTAssertEqual(array.firstObject! as! String, "test3") - XCTAssertEqual(array.lastObject! as! String, "test4") - }else { - XCTFail("Should have NSArray as result") - } - } - abstractSocketEmit(testName, emitData: ["test1", "test2"], callback: didGetEmit) + func testArray() { + SocketTestCases.testArray(socketEmit) } - func testStringEmit() { - let testName = "testString" - func didGetEmit(result:NSArray?, ack:AckEmitter?) { - if let string = result?.firstObject as? String { - XCTAssertEqual(string, "polo") - }else { - XCTFail("Should have String as result") - } - } - abstractSocketEmit(testName, emitData: "marco", callback: didGetEmit) + func testString() { + SocketTestCases.testString(socketEmit) } - func testBoolEmit() { - let testName = "testBool" - func didGetEmit(result:NSArray?, ack:AckEmitter?) { - if let bool = result?.firstObject as? NSNumber { - XCTAssertTrue(bool.boolValue) - }else { - XCTFail("Should have Boolean as result") - } - } - abstractSocketEmit(testName, emitData: false, callback: didGetEmit) + func testBool() { + SocketTestCases.testBool(socketEmit) } - func testIntegerEmit() { - let testName = "testInteger" - func didGetEmit(result:NSArray?, ack:AckEmitter?) { - if let integer = result?.firstObject as? Int { - XCTAssertEqual(integer, 20) - }else { - XCTFail("Should have Integer as result") - } - } - abstractSocketEmit(testName, emitData: 10, callback: didGetEmit) + func testInteger() { + SocketTestCases.testInteger(socketEmit) } - func testDoubleEmit() { - let testName = "testDouble" - func didGetEmit(result:NSArray?, ack:AckEmitter?) { - if let double = result?.firstObject as? NSNumber { - XCTAssertEqual(double.floatValue, 1.2) - }else { - XCTFail("Should have Double as result") - } - } - abstractSocketEmit(testName, emitData: 1.1, callback: didGetEmit) + func testDouble() { + SocketTestCases.testDouble(socketEmit) } - func testJSONEmit() { - let testName = "testJSON" - func didGetEmit(result:NSArray?, ack:AckEmitter?) { - if let json = result?.firstObject as? NSDictionary { - XCTAssertEqual(json.valueForKey("testString")! as! String, "test") - XCTAssertEqual(json.valueForKey("testNumber")! as! Int, 15) - XCTAssertEqual((json.valueForKey("testArray")! as! Array).count, 2) - XCTAssertEqual((json.valueForKey("testArray")! as! Array).last! as! Int, 1) - let string = NSString(data: (json.valueForKey("testArray")! as! Array).first! as! NSData, encoding: NSUTF8StringEncoding)! - XCTAssertEqual(string, "gakgakgak2") - }else { - XCTFail("Should have NSDictionary as result") - } - } - let json = ["name": "test", "testArray": ["hallo"], "nestedTest": ["test": "test"], "number": 15] - - abstractSocketEmit(testName, emitData: json, callback: didGetEmit) + func testJSON() { + SocketTestCases.testJSON(socketEmit) } - func testUnicodeEmit() { - let testName = "testUnicode" - func didGetEmit(result:NSArray?, ack:AckEmitter?) { - if let unicode = result?.firstObject as? String { - XCTAssertEqual(unicode, "🚄") - }else { - XCTFail("Should have String as result") - } - } - abstractSocketEmit(testName, emitData: "🚀", callback: didGetEmit) + func testJSONWithBuffer() { + SocketTestCases.testJSONWithBuffer(socketEmit) } - func testMultipleItemsEmit() { - let testName = "testMultipleItems" - func didGetEmit(result:NSArray?, ack:AckEmitter?) { - XCTAssertEqual(result!.count, 5) - if let array = result?.firstObject as? Array { - XCTAssertEqual(array.last! as! Int, 2) - XCTAssertEqual(array.first! as! Int, 1) - }else { - XCTFail("Should have Array as result") - } - if let dict = result?[1] as? NSDictionary { - XCTAssertEqual(dict.valueForKey("test") as! String, "bob") - - }else { - XCTFail("Should have NSDictionary as result") - } - if let number = result?[2] as? Int { - XCTAssertEqual(number, 25) - - }else { - XCTFail("Should have Integer as result") - } - if let string = result?[3] as? String { - XCTAssertEqual(string, "polo") - - }else { - XCTFail("Should have Integer as result") - } - if let data = result?[4] as? NSData { - let string = NSString(data: data, encoding: NSUTF8StringEncoding)! - XCTAssertEqual(string, "gakgakgak2") - }else { - XCTFail("Should have NSData as result") - } - } - let data = NSString(string: "gakgakgak2").dataUsingEncoding(NSUTF8StringEncoding)! - let emitArray = [["test1", "test2"], ["test": "test"], 15, "marco", data] - abstractSocketMultipleEmit(testName, emitData: emitArray, callback: didGetEmit) + func testUnicode() { + SocketTestCases.testUnicode(socketEmit) } - func generateTestName(rawTestName:String) ->String { - return rawTestName + testKind.rawValue + func testMultipleItems() { + SocketTestCases.testMultipleItems(socketMultipleEmit) } - func abstractSocketMultipleEmit(testName:String, emitData:Array, callback:NormalCallback){ - let finalTestname = generateTestName(testName) - let expection = self.expectationWithDescription(finalTestname) - func didGetEmit(result:NSArray?, ack:AckEmitter?) { - callback(result, ack) - expection.fulfill() - } - - socket.emit(finalTestname, withItems: emitData) - socket.on(finalTestname + "Return", callback: didGetEmit) - waitForExpectationsWithTimeout(SocketEmitTest.TEST_TIMEOUT, handler: nil) - - } - - - func abstractSocketEmit(testName:String, emitData:AnyObject?, callback:NormalCallback){ - let finalTestname = generateTestName(testName) - let expection = self.expectationWithDescription(finalTestname) - func didGetEmit(result:NSArray?, ack:AckEmitter?) { - callback(result, ack) - expection.fulfill() - } - - socket.on(finalTestname + "Return", callback: didGetEmit) - if let emitData = emitData { - socket.emit(finalTestname, emitData) - } else { - socket.emit(finalTestname) - } - - waitForExpectationsWithTimeout(SocketEmitTest.TEST_TIMEOUT, handler: nil) + func testMultipleWithBuffer() { + SocketTestCases.testMultipleItemsWithBuffer(socketMultipleEmit) } } diff --git a/SocketIO-iOSTests/SocketNamespaceAcknowledgementTest.swift b/SocketIO-iOSTests/SocketNamespaceAcknowledgementTest.swift index a8d715e..d25fecf 100644 --- a/SocketIO-iOSTests/SocketNamespaceAcknowledgementTest.swift +++ b/SocketIO-iOSTests/SocketNamespaceAcknowledgementTest.swift @@ -8,7 +8,7 @@ import XCTest -class SocketNamespaceAcknowledgementTest: SocketAcknowledgementTest { +class SocketNamespaceAcknowledgementTest: AbstractSocketTest { override func setUp() { super.setUp() @@ -20,56 +20,63 @@ class SocketNamespaceAcknowledgementTest: SocketAcknowledgementTest { "forcePolling": false, "forceWebsockets": false,// default false "path": "", - "nsp": "/swift", - "extraHeaders": headers]) + "nsp": "/swift"]) openConnection() } - override func testConnectionStatus() { - super.testConnectionStatus() + func testConnectionStatus() { + super.checkConnectionStatus() } - override func testEmit() { - super.testEmit() + func testBasic() { + SocketTestCases.testBasic(socketAcknwoledge) } - override func testEmitNull() { - super.testEmitNull() + func testNull() { + SocketTestCases.testNull(socketAcknwoledge) } - override func testEmitBinary() { - super.testEmitBinary() + func testBinary() { + SocketTestCases.testBinary(socketAcknwoledge) } - override func testArrayEmit() { - super.testArrayEmit() + func testArray() { + SocketTestCases.testArray(socketAcknwoledge) } - override func testStringEmit() { - super.testStringEmit() + func testString() { + SocketTestCases.testString(socketAcknwoledge) } - override func testBoolEmit() { - super.testBoolEmit() + func testBool() { + SocketTestCases.testBool(socketAcknwoledge) } - override func testIntegerEmit() { - super.testIntegerEmit() + func testInteger() { + SocketTestCases.testInteger(socketAcknwoledge) } - override func testDoubleEmit() { - super.testDoubleEmit() + func testDouble() { + SocketTestCases.testDouble(socketAcknwoledge) } - override func testJSONEmit() { - super.testJSONEmit() + func testJSON() { + SocketTestCases.testJSON(socketAcknwoledge) } - override func testUnicodeEmit() { - super.testUnicodeEmit() + func testJSONWithBuffer() { + SocketTestCases.testJSONWithBuffer(socketAcknwoledge) } - override func testMultipleItemsEmit() { - super.testMultipleItemsEmit() + func testUnicode() { + SocketTestCases.testUnicode(socketAcknwoledge) + } + + func testMultipleItems() { + SocketTestCases.testMultipleItems(socketAcknwoledgeMultiple) + } + + func testMultipleWithBuffer() { + SocketTestCases.testMultipleItemsWithBuffer(socketAcknwoledgeMultiple) } } diff --git a/SocketIO-iOSTests/SocketNamespaceEmitTest.swift b/SocketIO-iOSTests/SocketNamespaceEmitTest.swift index 945a242..057fcc1 100644 --- a/SocketIO-iOSTests/SocketNamespaceEmitTest.swift +++ b/SocketIO-iOSTests/SocketNamespaceEmitTest.swift @@ -8,73 +8,76 @@ import XCTest -class SocketNamespaceEmitTest: SocketEmitTest { +class SocketNamespaceEmitTest: AbstractSocketTest { override func setUp() { super.setUp() - socket = SocketIOClient(socketURL: "127.0.0.1:8080", opts: [ - "reconnects": true, // default true - "reconnectAttempts": -1, // default -1 - "reconnectWait": 5, // default 10 - "forcePolling": false, - "forceWebsockets": false,// default false - "path": "", - "nsp": "/swift", - "extraHeaders": headers]) + testKind = TestKind.Emit + socket = SocketIOClient(socketURL: "127.0.0.1:8080", opts: [ + "reconnects": true, // default true + "reconnectAttempts": -1, // default -1 + "reconnectWait": 5, // default 10 + "forcePolling": false, + "forceWebsockets": false,// default false + "path": "", + "nsp": "/swift"]) openConnection() } - override func tearDown() { - socket.close(fast: false) - super.tearDown() + func testConnectionStatus() { + super.checkConnectionStatus() } - override func testConnectionStatus() { - super.testConnectionStatus() + func testBasic() { + SocketTestCases.testBasic(socketEmit) } - override func testEmit() { - super.testEmit() + func testNull() { + SocketTestCases.testNull(socketEmit) } - override func testEmitNull() { - super.testEmitNull() + func testBinary() { + SocketTestCases.testBinary(socketEmit) } - override func testEmitBinary() { - super.testEmitBinary() + func testArray() { + SocketTestCases.testArray(socketEmit) } - override func testArrayEmit() { - super.testArrayEmit() + func testString() { + SocketTestCases.testString(socketEmit) } - override func testStringEmit() { - super.testStringEmit() + func testBool() { + SocketTestCases.testBool(socketEmit) } - override func testBoolEmit() { - super.testBoolEmit() + func testInteger() { + SocketTestCases.testInteger(socketEmit) } - override func testIntegerEmit() { - super.testIntegerEmit() + func testDouble() { + SocketTestCases.testDouble(socketEmit) } - override func testDoubleEmit() { - super.testDoubleEmit() + func testJSON() { + SocketTestCases.testJSON(socketEmit) } - override func testJSONEmit() { - super.testJSONEmit() + func testJSONWithBuffer() { + SocketTestCases.testJSONWithBuffer(socketEmit) } - override func testUnicodeEmit() { - super.testUnicodeEmit() + func testUnicode() { + SocketTestCases.testUnicode(socketEmit) } - override func testMultipleItemsEmit() { - super.testMultipleItemsEmit() + func testMultipleItems() { + SocketTestCases.testMultipleItems(socketMultipleEmit) + } + + func testMultipleWithBuffer() { + SocketTestCases.testMultipleItemsWithBuffer(socketMultipleEmit) } } diff --git a/SocketIO-iOSTests/SocketTestCases.swift b/SocketIO-iOSTests/SocketTestCases.swift index 53c4489..e17718e 100644 --- a/SocketIO-iOSTests/SocketTestCases.swift +++ b/SocketIO-iOSTests/SocketTestCases.swift @@ -12,7 +12,7 @@ import Foundation class SocketTestCases: NSObject { typealias SocketSendFunction = (testName:String, emitData:AnyObject?, callback:NormalCallback)->() - static func testBasic(abstractSocketSend:SocketSendFunction, testKind:TestKind) { + static func testBasic(abstractSocketSend:SocketSendFunction) { let testName = "basicTest" func didGetResult(result:NSArray?, ack:AckEmitter?) { @@ -20,7 +20,7 @@ class SocketTestCases: NSObject { abstractSocketSend(testName: testName, emitData: nil, callback: didGetResult) } - static func testNull(abstractSocketSend:SocketSendFunction, testKind:TestKind) { + static func testNull(abstractSocketSend:SocketSendFunction) { let testName = "testNull" func didGetResult(result:NSArray?, ack:AckEmitter?) { if let _ = result?.firstObject as? NSNull { @@ -33,7 +33,7 @@ class SocketTestCases: NSObject { abstractSocketSend(testName: testName, emitData: NSNull(), callback: didGetResult) } - static func testBinary(abstractSocketSend:SocketSendFunction, testKind:TestKind) { + static func testBinary(abstractSocketSend:SocketSendFunction) { let testName = "testBinary" func didGetResult(result:NSArray?, ack:AckEmitter?) { if let data = result?.firstObject as? NSData { @@ -47,7 +47,7 @@ class SocketTestCases: NSObject { abstractSocketSend(testName: testName, emitData: data, callback: didGetResult) } - static func testArray(abstractSocketSend:SocketSendFunction, testKind:TestKind) { + static func testArray(abstractSocketSend:SocketSendFunction) { let testName = "testArray" func didGetResult(result:NSArray?, ack:AckEmitter?) { if let array = result?.firstObject as? NSArray { @@ -61,7 +61,7 @@ class SocketTestCases: NSObject { abstractSocketSend(testName: testName, emitData: ["test1", "test2"], callback: didGetResult) } - static func testString(abstractSocketSend:SocketSendFunction, testKind:TestKind) { + static func testString(abstractSocketSend:SocketSendFunction) { let testName = "testString" func didGetResult(result:NSArray?, ack:AckEmitter?) { if let string = result?.firstObject as? String { @@ -73,7 +73,7 @@ class SocketTestCases: NSObject { abstractSocketSend(testName: testName, emitData: "marco", callback: didGetResult) } - static func testBool(abstractSocketSend:SocketSendFunction, testKind:TestKind) { + static func testBool(abstractSocketSend:SocketSendFunction) { let testName = "testBool" func didGetResult(result:NSArray?, ack:AckEmitter?) { if let bool = result?.firstObject as? NSNumber { @@ -85,7 +85,7 @@ class SocketTestCases: NSObject { abstractSocketSend(testName: testName, emitData: false, callback: didGetResult) } - static func testInteger(abstractSocketSend:SocketSendFunction, testKind:TestKind) { + static func testInteger(abstractSocketSend:SocketSendFunction) { let testName = "testInteger" func didGetResult(result:NSArray?, ack:AckEmitter?) { if let integer = result?.firstObject as? Int { @@ -97,7 +97,7 @@ class SocketTestCases: NSObject { abstractSocketSend(testName: testName, emitData: 10, callback: didGetResult) } - static func testDouble(abstractSocketSend:SocketSendFunction, testKind:TestKind) { + static func testDouble(abstractSocketSend:SocketSendFunction) { let testName = "testDouble" func didGetResult(result:NSArray?, ack:AckEmitter?) { if let double = result?.firstObject as? NSNumber { @@ -109,8 +109,8 @@ class SocketTestCases: NSObject { abstractSocketSend(testName: testName, emitData: 1.1, callback: didGetResult) } - static func testJSON(abstractSocketSend:SocketSendFunction, testKind:TestKind) { - let testName = "testJSON" + static func testJSONWithBuffer(abstractSocketSend:SocketSendFunction) { + let testName = "testJSONWithBuffer" func didGetResult(result:NSArray?, ack:AckEmitter?) { if let json = result?.firstObject as? NSDictionary { XCTAssertEqual(json.valueForKey("testString")! as! String, "test") @@ -128,8 +128,8 @@ class SocketTestCases: NSObject { abstractSocketSend(testName: testName, emitData: json, callback: didGetResult) } - static func testJSONWithoutBuffer(abstractSocketSend:SocketSendFunction, testKind:TestKind) { - let testName = "testJSONWithoutBuffer" + static func testJSON(abstractSocketSend:SocketSendFunction) { + let testName = "testJSON" func didGetResult(result:NSArray?, ack:AckEmitter?) { if let json = result?.firstObject as? NSDictionary { XCTAssertEqual(json.valueForKey("testString")! as! String, "test") @@ -147,7 +147,7 @@ class SocketTestCases: NSObject { abstractSocketSend(testName: testName, emitData: json, callback: didGetResult) } - static func testUnicode(abstractSocketSend:SocketSendFunction, testKind:TestKind) { + static func testUnicode(abstractSocketSend:SocketSendFunction) { let testName = "testUnicode" func didGetResult(result:NSArray?, ack:AckEmitter?) { if let unicode = result?.firstObject as? String { @@ -159,10 +159,14 @@ class SocketTestCases: NSObject { abstractSocketSend(testName: testName, emitData: "🚀", callback: didGetResult) } - static func testMultipleItems(abstractSocketMultipleSend:(testName:String, emitData:Array, callback:NormalCallback)->(), testKind:TestKind) { - let testName = "testMultipleItems" + static func testMultipleItemsWithBuffer(abstractSocketMultipleSend:(testName:String, emitData:Array, callback:NormalCallback)->()) { + let testName = "testMultipleItemsWithBuffer" func didGetResult(result:NSArray?, ack:AckEmitter?) { XCTAssertEqual(result!.count, 5) + if result!.count != 5 { + XCTFail("Fatal Fail. Lost some Data") + return + } if let array = result?.firstObject as? Array { XCTAssertEqual(array.last! as! Int, 2) XCTAssertEqual(array.first! as! Int, 1) @@ -198,4 +202,45 @@ class SocketTestCases: NSObject { let emitArray = [["test1", "test2"], ["test": "test"], 15, "marco", data] abstractSocketMultipleSend(testName: testName, emitData: emitArray, callback: didGetResult) } + + static func testMultipleItems(abstractSocketMultipleSend:(testName:String, emitData:Array, callback:NormalCallback)->()) { + let testName = "testMultipleItems" + func didGetResult(result:NSArray?, ack:AckEmitter?) { + XCTAssertEqual(result!.count, 5) + if result!.count != 5 { + XCTFail("Fatal Fail. Lost some Data") + return + } + if let array = result?.firstObject as? Array { + XCTAssertEqual(array.last! as! Int, 2) + XCTAssertEqual(array.first! as! Int, 1) + }else { + XCTFail("Should have Array as result") + } + if let dict = result?[1] as? NSDictionary { + XCTAssertEqual(dict.valueForKey("test") as! String, "bob") + + }else { + XCTFail("Should have NSDictionary as result") + } + if let number = result?[2] as? Int { + XCTAssertEqual(number, 25) + + }else { + XCTFail("Should have Integer as result") + } + if let string = result?[3] as? String { + XCTAssertEqual(string, "polo") + }else { + XCTFail("Should have Integer as result") + } + if let bool = result?[4] as? NSNumber { + XCTAssertFalse(bool.boolValue) + }else { + XCTFail("Should have NSNumber as result") + } + } + let emitArray = [["test1", "test2"], ["test": "test"], 15, "marco", false] + abstractSocketMultipleSend(testName: testName, emitData: emitArray, callback: didGetResult) + } }