diff --git a/Socket.IO-Client-Swift.xcodeproj/project.pbxproj b/Socket.IO-Client-Swift.xcodeproj/project.pbxproj index 03e8493..de8ab5f 100644 --- a/Socket.IO-Client-Swift.xcodeproj/project.pbxproj +++ b/Socket.IO-Client-Swift.xcodeproj/project.pbxproj @@ -39,6 +39,7 @@ 5764DFA11B51F254004FF46E /* WebSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5764DF881B51F254004FF46E /* WebSocket.swift */; }; 5764DFA21B51F254004FF46E /* WebSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5764DF881B51F254004FF46E /* WebSocket.swift */; }; 941A4ABA1B67A56C00C42318 /* TestKind.swift in Sources */ = {isa = PBXBuildFile; fileRef = 941A4AB91B67A56C00C42318 /* TestKind.swift */; }; + 94242BB81B67B0E500AAAC9D /* SocketNamespaceAcknowledgementTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94242BB71B67B0E500AAAC9D /* SocketNamespaceAcknowledgementTest.swift */; }; 945B65351B5FCEEA0081E995 /* SocketAckManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5764DF7C1B51F254004FF46E /* SocketAckManager.swift */; }; 945B65361B5FCEEA0081E995 /* SocketAnyEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5764DF7D1B51F254004FF46E /* SocketAnyEvent.swift */; }; 945B65371B5FCEEA0081E995 /* SocketEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5764DF7E1B51F254004FF46E /* SocketEngine.swift */; }; @@ -100,6 +101,7 @@ 5764DF871B51F254004FF46E /* SwiftRegex.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SwiftRegex.swift; path = SocketIOClientSwift/SwiftRegex.swift; sourceTree = ""; }; 5764DF881B51F254004FF46E /* WebSocket.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = WebSocket.swift; path = SocketIOClientSwift/WebSocket.swift; sourceTree = ""; }; 941A4AB91B67A56C00C42318 /* TestKind.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestKind.swift; sourceTree = ""; }; + 94242BB71B67B0E500AAAC9D /* SocketNamespaceAcknowledgementTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketNamespaceAcknowledgementTest.swift; sourceTree = ""; }; 945B65421B63D9DB0081E995 /* SocketEmitTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketEmitTest.swift; sourceTree = ""; }; 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 = ""; }; @@ -183,10 +185,11 @@ isa = PBXGroup; children = ( 945B65421B63D9DB0081E995 /* SocketEmitTest.swift */, - 94ADAC481B652D3300FD79AE /* SocketNamespaceEmitTest.swift */, 94ADAC4A1B6632DD00FD79AE /* SocketAcknowledgementTest.swift */, - 572EF2291B51F16C00EEBB58 /* Supporting Files */, + 94ADAC481B652D3300FD79AE /* SocketNamespaceEmitTest.swift */, + 94242BB71B67B0E500AAAC9D /* SocketNamespaceAcknowledgementTest.swift */, 941A4AB91B67A56C00C42318 /* TestKind.swift */, + 572EF2291B51F16C00EEBB58 /* Supporting Files */, ); path = "SocketIO-iOSTests"; sourceTree = ""; @@ -463,6 +466,7 @@ 945B653B1B5FCEEA0081E995 /* SocketIOClient.swift in Sources */, 94ADAC491B652D3300FD79AE /* SocketNamespaceEmitTest.swift in Sources */, 945B65411B5FCEEA0081E995 /* WebSocket.swift in Sources */, + 94242BB81B67B0E500AAAC9D /* SocketNamespaceAcknowledgementTest.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/SocketIO-iOSTests/SocketAcknowledgementTest.swift b/SocketIO-iOSTests/SocketAcknowledgementTest.swift index e8f6633..81247d9 100644 --- a/SocketIO-iOSTests/SocketAcknowledgementTest.swift +++ b/SocketIO-iOSTests/SocketAcknowledgementTest.swift @@ -19,7 +19,6 @@ class SocketAcknowledgementTest: SocketEmitTest { "forcePolling": false, "forceWebsockets": false,// default false "path": "", - "nsp": "/swift", "extraHeaders": headers]) openConnection() } @@ -72,7 +71,7 @@ class SocketAcknowledgementTest: SocketEmitTest { super.testMultipleItemsEmit() } - override func abstractSocketEmitTest(testName:String, emitData:AnyObject?, callback:NormalCallback){ + override func abstractSocketEmit(testName:String, emitData:AnyObject?, callback:NormalCallback){ let finalTestname = testName + testKind.rawValue let expection = self.expectationWithDescription(finalTestname) func didGetEmit(result:NSArray?) { diff --git a/SocketIO-iOSTests/SocketEmitTest.swift b/SocketIO-iOSTests/SocketEmitTest.swift index f6a16d2..7516224 100644 --- a/SocketIO-iOSTests/SocketEmitTest.swift +++ b/SocketIO-iOSTests/SocketEmitTest.swift @@ -56,7 +56,7 @@ class SocketEmitTest: XCTestCase { func didGetEmit(result:NSArray?, ack:AckEmitter?) { } - abstractSocketEmitTest(testName, emitData: nil, callback: didGetEmit) + abstractSocketEmit(testName, emitData: nil, callback: didGetEmit) } func testEmitNull() { @@ -69,7 +69,7 @@ class SocketEmitTest: XCTestCase { XCTFail("Should have NSNull as result") } } - abstractSocketEmitTest(testName, emitData: NSNull(), callback: didGetEmit) + abstractSocketEmit(testName, emitData: NSNull(), callback: didGetEmit) } func testEmitBinary() { @@ -83,7 +83,7 @@ class SocketEmitTest: XCTestCase { } } let data = NSString(string: "gakgakgak2").dataUsingEncoding(NSUTF8StringEncoding)! - abstractSocketEmitTest(testName, emitData: data, callback: didGetEmit) + abstractSocketEmit(testName, emitData: data, callback: didGetEmit) } func testArrayEmit() { @@ -97,7 +97,7 @@ class SocketEmitTest: XCTestCase { XCTFail("Should have NSArray as result") } } - abstractSocketEmitTest(testName, emitData: ["test1", "test2"], callback: didGetEmit) + abstractSocketEmit(testName, emitData: ["test1", "test2"], callback: didGetEmit) } func testStringEmit() { @@ -109,7 +109,7 @@ class SocketEmitTest: XCTestCase { XCTFail("Should have String as result") } } - abstractSocketEmitTest(testName, emitData: "marco", callback: didGetEmit) + abstractSocketEmit(testName, emitData: "marco", callback: didGetEmit) } func testBoolEmit() { @@ -121,7 +121,7 @@ class SocketEmitTest: XCTestCase { XCTFail("Should have Boolean as result") } } - abstractSocketEmitTest(testName, emitData: false, callback: didGetEmit) + abstractSocketEmit(testName, emitData: false, callback: didGetEmit) } func testIntegerEmit() { @@ -133,7 +133,7 @@ class SocketEmitTest: XCTestCase { XCTFail("Should have Integer as result") } } - abstractSocketEmitTest(testName, emitData: 10, callback: didGetEmit) + abstractSocketEmit(testName, emitData: 10, callback: didGetEmit) } func testDoubleEmit() { @@ -145,7 +145,7 @@ class SocketEmitTest: XCTestCase { XCTFail("Should have Double as result") } } - abstractSocketEmitTest(testName, emitData: 1.1, callback: didGetEmit) + abstractSocketEmit(testName, emitData: 1.1, callback: didGetEmit) } func testJSONEmit() { @@ -164,7 +164,7 @@ class SocketEmitTest: XCTestCase { } let json = ["name": "test", "testArray": ["hallo"], "nestedTest": ["test": "test"], "number": 15] - abstractSocketEmitTest(testName, emitData: json, callback: didGetEmit) + abstractSocketEmit(testName, emitData: json, callback: didGetEmit) } func testUnicodeEmit() { @@ -176,12 +176,11 @@ class SocketEmitTest: XCTestCase { XCTFail("Should have String as result") } } - abstractSocketEmitTest(testName, emitData: "🚀", callback: didGetEmit) + abstractSocketEmit(testName, emitData: "🚀", callback: didGetEmit) } func testMultipleItemsEmit() { let testName = "testMultipleItems" - let expection = self.expectationWithDescription(testName) func didGetEmit(result:NSArray?, ack:AckEmitter?) { XCTAssertEqual(result!.count, 5) if let array = result?.firstObject as? Array { @@ -215,17 +214,33 @@ class SocketEmitTest: XCTestCase { }else { XCTFail("Should have NSData as result") } - expection.fulfill() } let data = NSString(string: "gakgakgak2").dataUsingEncoding(NSUTF8StringEncoding)! - socket.emit(testName, withItems: [["test1", "test2"], ["test": "test"], 15, "marco", data]) - socket.on(testName + "Return", callback: didGetEmit) + let emitArray = [["test1", "test2"], ["test": "test"], 15, "marco", data] + abstractSocketMultipleEmit(testName, emitData: emitArray, callback: didGetEmit) + } + + func generateTestName(rawTestName:String) ->String { + return rawTestName + testKind.rawValue + } + + 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 abstractSocketEmitTest(testName:String, emitData:AnyObject?, callback:NormalCallback){ - let finalTestname = testName + testKind.rawValue + 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) diff --git a/SocketIO-iOSTests/SocketNamespaceAcknowledgementTest.swift b/SocketIO-iOSTests/SocketNamespaceAcknowledgementTest.swift new file mode 100644 index 0000000..318ba76 --- /dev/null +++ b/SocketIO-iOSTests/SocketNamespaceAcknowledgementTest.swift @@ -0,0 +1,95 @@ +// +// SocketNamespaceAcknowledgementTest.swift +// Socket.IO-Client-Swift +// +// Created by Lukas Schmidt on 28.07.15. +// +// + +import XCTest + +class SocketNamespaceAcknowledgementTest: SocketEmitTest { + + override func setUp() { + super.setUp() + testKind = TestKind.Acknowledgement + 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]) + openConnection() + } + + override func testConnectionStatus() { + super.testConnectionStatus() + } + + override func testEmit() { + super.testEmit() + } + + override func testEmitNull() { + super.testEmitNull() + } + + override func testEmitBinary() { + super.testEmitBinary() + } + + override func testArrayEmit() { + super.testArrayEmit() + } + + override func testStringEmit() { + super.testStringEmit() + } + + override func testBoolEmit() { + super.testBoolEmit() + } + + override func testIntegerEmit() { + super.testIntegerEmit() + } + + override func testDoubleEmit() { + super.testDoubleEmit() + } + + override func testJSONEmit() { + super.testJSONEmit() + } + + override func testUnicodeEmit() { + super.testUnicodeEmit() + } + + override func testMultipleItemsEmit() { + super.testMultipleItemsEmit() + } + + 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) + } + + +}