From b1b9a7edaf273ad28fbde9748b5a714aed48beef Mon Sep 17 00:00:00 2001 From: Lukas Schmidt Date: Tue, 28 Jul 2015 14:25:15 +0200 Subject: [PATCH] more tests --- .../project.pbxproj | 8 ++ .../SocketAcknowledgementTest.swift | 93 +++++++++++++++++++ SocketIO-iOSTests/SocketEmitTest.swift | 37 ++++---- .../SocketNamespaceEmitTest.swift | 9 -- SocketIO-iOSTests/TestKind.swift | 13 +++ 5 files changed, 133 insertions(+), 27 deletions(-) create mode 100644 SocketIO-iOSTests/SocketAcknowledgementTest.swift create mode 100644 SocketIO-iOSTests/TestKind.swift diff --git a/Socket.IO-Client-Swift.xcodeproj/project.pbxproj b/Socket.IO-Client-Swift.xcodeproj/project.pbxproj index c3dc8fc..03e8493 100644 --- a/Socket.IO-Client-Swift.xcodeproj/project.pbxproj +++ b/Socket.IO-Client-Swift.xcodeproj/project.pbxproj @@ -38,6 +38,7 @@ 5764DFA01B51F254004FF46E /* SwiftRegex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5764DF871B51F254004FF46E /* SwiftRegex.swift */; }; 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 */; }; 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 */; }; @@ -53,6 +54,7 @@ 945B65411B5FCEEA0081E995 /* WebSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5764DF881B51F254004FF46E /* WebSocket.swift */; }; 945B65431B63D9DB0081E995 /* SocketEmitTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 945B65421B63D9DB0081E995 /* SocketEmitTest.swift */; }; 94ADAC491B652D3300FD79AE /* SocketNamespaceEmitTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94ADAC481B652D3300FD79AE /* SocketNamespaceEmitTest.swift */; }; + 94ADAC4B1B6632DD00FD79AE /* SocketAcknowledgementTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94ADAC4A1B6632DD00FD79AE /* SocketAcknowledgementTest.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -97,8 +99,10 @@ 5764DF861B51F254004FF46E /* SocketTypes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SocketTypes.swift; path = SocketIOClientSwift/SocketTypes.swift; sourceTree = ""; }; 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 = ""; }; 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 = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -180,7 +184,9 @@ children = ( 945B65421B63D9DB0081E995 /* SocketEmitTest.swift */, 94ADAC481B652D3300FD79AE /* SocketNamespaceEmitTest.swift */, + 94ADAC4A1B6632DD00FD79AE /* SocketAcknowledgementTest.swift */, 572EF2291B51F16C00EEBB58 /* Supporting Files */, + 941A4AB91B67A56C00C42318 /* TestKind.swift */, ); path = "SocketIO-iOSTests"; sourceTree = ""; @@ -446,11 +452,13 @@ 945B65391B5FCEEA0081E995 /* SocketEventHandler.swift in Sources */, 945B65371B5FCEEA0081E995 /* SocketEngine.swift in Sources */, 945B65351B5FCEEA0081E995 /* SocketAckManager.swift in Sources */, + 941A4ABA1B67A56C00C42318 /* TestKind.swift in Sources */, 945B65431B63D9DB0081E995 /* SocketEmitTest.swift in Sources */, 945B65401B5FCEEA0081E995 /* SwiftRegex.swift in Sources */, 945B653C1B5FCEEA0081E995 /* SocketLogger.swift in Sources */, 945B65381B5FCEEA0081E995 /* SocketEngineClient.swift in Sources */, 945B65361B5FCEEA0081E995 /* SocketAnyEvent.swift in Sources */, + 94ADAC4B1B6632DD00FD79AE /* SocketAcknowledgementTest.swift in Sources */, 945B653F1B5FCEEA0081E995 /* SocketTypes.swift in Sources */, 945B653B1B5FCEEA0081E995 /* SocketIOClient.swift in Sources */, 94ADAC491B652D3300FD79AE /* SocketNamespaceEmitTest.swift in Sources */, diff --git a/SocketIO-iOSTests/SocketAcknowledgementTest.swift b/SocketIO-iOSTests/SocketAcknowledgementTest.swift new file mode 100644 index 0000000..e8f6633 --- /dev/null +++ b/SocketIO-iOSTests/SocketAcknowledgementTest.swift @@ -0,0 +1,93 @@ +// +// SocketAcknowledgementTest.swift +// Socket.IO-Client-Swift +// +// Created by Lukas Schmidt on 27.07.15. +// +// + +import XCTest + +class SocketAcknowledgementTest: 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 abstractSocketEmitTest(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) + } + +} diff --git a/SocketIO-iOSTests/SocketEmitTest.swift b/SocketIO-iOSTests/SocketEmitTest.swift index 1e599c5..f6a16d2 100644 --- a/SocketIO-iOSTests/SocketEmitTest.swift +++ b/SocketIO-iOSTests/SocketEmitTest.swift @@ -10,11 +10,10 @@ import XCTest import Foundation class SocketEmitTest: XCTestCase { - private static let TEST_TIMEOUT = 20.0 + static let TEST_TIMEOUT = 5.0 var socket:SocketIOClient! - - let headers = ["testing": "blah", "testing2": "b/:lah"] + var testKind = TestKind.Emit override func setUp() { super.setUp() @@ -53,7 +52,7 @@ class SocketEmitTest: XCTestCase { } func testEmit() { - let testName = "testEmit" + let testName = "basicTest" func didGetEmit(result:NSArray?, ack:AckEmitter?) { } @@ -61,7 +60,7 @@ class SocketEmitTest: XCTestCase { } func testEmitNull() { - let testName = "testEmitNull" + let testName = "testNull" func didGetEmit(result:NSArray?, ack:AckEmitter?) { if let _ = result?.firstObject as? NSNull { @@ -74,7 +73,7 @@ class SocketEmitTest: XCTestCase { } func testEmitBinary() { - let testName = "testEmitBinary" + let testName = "testBinary" func didGetEmit(result:NSArray?, ack:AckEmitter?) { if let data = result?.firstObject as? NSData { let string = NSString(data: data, encoding: NSUTF8StringEncoding)! @@ -88,11 +87,12 @@ class SocketEmitTest: XCTestCase { } func testArrayEmit() { - let testName = "testEmitArray" + 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") } @@ -101,7 +101,7 @@ class SocketEmitTest: XCTestCase { } func testStringEmit() { - let testName = "testStringEmit" + let testName = "testString" func didGetEmit(result:NSArray?, ack:AckEmitter?) { if let string = result?.firstObject as? String { XCTAssertEqual(string, "polo") @@ -113,7 +113,7 @@ class SocketEmitTest: XCTestCase { } func testBoolEmit() { - let testName = "testBoolEmit" + let testName = "testBool" func didGetEmit(result:NSArray?, ack:AckEmitter?) { if let bool = result?.firstObject as? NSNumber { XCTAssertTrue(bool.boolValue) @@ -125,7 +125,7 @@ class SocketEmitTest: XCTestCase { } func testIntegerEmit() { - let testName = "testIntegerEmit" + let testName = "testInteger" func didGetEmit(result:NSArray?, ack:AckEmitter?) { if let integer = result?.firstObject as? Int { XCTAssertEqual(integer, 20) @@ -137,7 +137,7 @@ class SocketEmitTest: XCTestCase { } func testDoubleEmit() { - let testName = "testDoubleEmit" + let testName = "testDouble" func didGetEmit(result:NSArray?, ack:AckEmitter?) { if let double = result?.firstObject as? NSNumber { XCTAssertEqual(double.floatValue, 1.2) @@ -149,7 +149,7 @@ class SocketEmitTest: XCTestCase { } func testJSONEmit() { - let testName = "testJSONEmit" + let testName = "testJSON" func didGetEmit(result:NSArray?, ack:AckEmitter?) { if let json = result?.firstObject as? NSDictionary { XCTAssertEqual(json.valueForKey("testString")! as! String, "test") @@ -168,7 +168,7 @@ class SocketEmitTest: XCTestCase { } func testUnicodeEmit() { - let testName = "testUnicodeEmit" + let testName = "testUnicode" func didGetEmit(result:NSArray?, ack:AckEmitter?) { if let unicode = result?.firstObject as? String { XCTAssertEqual(unicode, "🚄") @@ -180,7 +180,7 @@ class SocketEmitTest: XCTestCase { } func testMultipleItemsEmit() { - let testName = "testMultipleItemsEmit" + let testName = "testMultipleItems" let expection = self.expectationWithDescription(testName) func didGetEmit(result:NSArray?, ack:AckEmitter?) { XCTAssertEqual(result!.count, 5) @@ -225,17 +225,18 @@ class SocketEmitTest: XCTestCase { func abstractSocketEmitTest(testName:String, emitData:AnyObject?, callback:NormalCallback){ - let expection = self.expectationWithDescription(testName) + let finalTestname = testName + testKind.rawValue + let expection = self.expectationWithDescription(finalTestname) func didGetEmit(result:NSArray?, ack:AckEmitter?) { callback(result, ack) expection.fulfill() } - socket.on(testName + "Return", callback: didGetEmit) + socket.on(finalTestname + "Return", callback: didGetEmit) if let emitData = emitData { - socket.emit(testName, emitData) + socket.emit(finalTestname, emitData) } else { - socket.emit(testName) + socket.emit(finalTestname) } waitForExpectationsWithTimeout(SocketEmitTest.TEST_TIMEOUT, handler: nil) diff --git a/SocketIO-iOSTests/SocketNamespaceEmitTest.swift b/SocketIO-iOSTests/SocketNamespaceEmitTest.swift index 8e50c11..945a242 100644 --- a/SocketIO-iOSTests/SocketNamespaceEmitTest.swift +++ b/SocketIO-iOSTests/SocketNamespaceEmitTest.swift @@ -12,13 +12,6 @@ class SocketNamespaceEmitTest: SocketEmitTest { override func setUp() { super.setUp() - if testCytube { - socket = SocketIOClient(socketURL: "https://cytu.be:10443", opts: [ - "forcePolling": false, - "forceWebsockets": false, - "log": true - ]) - } else { socket = SocketIOClient(socketURL: "127.0.0.1:8080", opts: [ "reconnects": true, // default true "reconnectAttempts": -1, // default -1 @@ -28,9 +21,7 @@ class SocketNamespaceEmitTest: SocketEmitTest { "path": "", "nsp": "/swift", "extraHeaders": headers]) - } openConnection() - } override func tearDown() { diff --git a/SocketIO-iOSTests/TestKind.swift b/SocketIO-iOSTests/TestKind.swift new file mode 100644 index 0000000..d83c59b --- /dev/null +++ b/SocketIO-iOSTests/TestKind.swift @@ -0,0 +1,13 @@ +// +// TestKind.swift +// Socket.IO-Client-Swift +// +// Created by Lukas Schmidt on 28.07.15. +// +// + +import Foundation + +enum TestKind: String { + case Emit, Acknowledgement +} \ No newline at end of file