From a07916fb2f437ff3f18392ae2bb70461a5843fd7 Mon Sep 17 00:00:00 2001 From: Lukas Schmidt Date: Sat, 25 Jul 2015 18:45:41 +0200 Subject: [PATCH] basic emit tests --- .../project.pbxproj | 4 + SocketIO-iOSTests/ConvertedSocketTest.swift | 190 ++++++++++++++++++ 2 files changed, 194 insertions(+) create mode 100644 SocketIO-iOSTests/ConvertedSocketTest.swift diff --git a/Socket.IO-Client-Swift.xcodeproj/project.pbxproj b/Socket.IO-Client-Swift.xcodeproj/project.pbxproj index acac5a0..01c833d 100644 --- a/Socket.IO-Client-Swift.xcodeproj/project.pbxproj +++ b/Socket.IO-Client-Swift.xcodeproj/project.pbxproj @@ -52,6 +52,7 @@ 945B653F1B5FCEEA0081E995 /* SocketTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5764DF861B51F254004FF46E /* SocketTypes.swift */; }; 945B65401B5FCEEA0081E995 /* SwiftRegex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5764DF871B51F254004FF46E /* SwiftRegex.swift */; }; 945B65411B5FCEEA0081E995 /* WebSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5764DF881B51F254004FF46E /* WebSocket.swift */; }; + 945B65431B63D9DB0081E995 /* ConvertedSocketTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 945B65421B63D9DB0081E995 /* ConvertedSocketTest.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -97,6 +98,7 @@ 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 = ""; }; + 945B65421B63D9DB0081E995 /* ConvertedSocketTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConvertedSocketTest.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -176,6 +178,7 @@ 572EF2281B51F16C00EEBB58 /* SocketIO-iOSTests */ = { isa = PBXGroup; children = ( + 945B65421B63D9DB0081E995 /* ConvertedSocketTest.swift */, 572EF22B1B51F16C00EEBB58 /* SocketIO_iOSTests.swift */, 572EF2291B51F16C00EEBB58 /* Supporting Files */, ); @@ -443,6 +446,7 @@ 945B65391B5FCEEA0081E995 /* SocketEventHandler.swift in Sources */, 945B65371B5FCEEA0081E995 /* SocketEngine.swift in Sources */, 945B65351B5FCEEA0081E995 /* SocketAckManager.swift in Sources */, + 945B65431B63D9DB0081E995 /* ConvertedSocketTest.swift in Sources */, 945B65401B5FCEEA0081E995 /* SwiftRegex.swift in Sources */, 572EF22C1B51F16C00EEBB58 /* SocketIO_iOSTests.swift in Sources */, 945B653C1B5FCEEA0081E995 /* SocketLogger.swift in Sources */, diff --git a/SocketIO-iOSTests/ConvertedSocketTest.swift b/SocketIO-iOSTests/ConvertedSocketTest.swift new file mode 100644 index 0000000..fed9352 --- /dev/null +++ b/SocketIO-iOSTests/ConvertedSocketTest.swift @@ -0,0 +1,190 @@ +// +// ConvertedSocketTest.swift +// Socket.IO-Client-Swift +// +// Created by Lukas Schmidt on 25.07.15. +// +// + +import XCTest +import Foundation + +class ConvertedSocketTest: XCTestCase { + + var socket:SocketIOClient! + + + let headers = ["testing": "blah", "testing2": "b/:lah"] + let testCytube = false + + 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 + "reconnectWait": 5, // default 10 + "forcePolling": false, + "forceWebsockets": false,// default false + "nsp": "/swift", + "path": "", + "extraHeaders": headers, + // "connectParams": [ + // "test": 2.1, + // "d": "{}" + // ], + //"cookies": cookieArray + ]) + } + openConnection() + } + + override func tearDown() { + + 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) + } + + func testEmit() { + let testName = "testEmit" + func didGetEmit(result:NSArray?, ack:AckEmitter?) { + + } + abstractSocketEmitTest(testName, emitData: nil, callback: didGetEmit) + } + + func testEmitNull() { + let testName = "testEmitNull" + func didGetEmit(result:NSArray?, ack:AckEmitter?) { + if let _ = result?.firstObject as? NSNull { + + }else + { + XCTFail("Should have NSNull as result") + } + } + abstractSocketEmitTest(testName, emitData: NSNull(), callback: didGetEmit) + } + + func testEmitBinary() { + let testName = "testEmitBinary" + 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)! + abstractSocketEmitTest(testName, emitData: data, callback: didGetEmit) + } + + func testArrayEmit() { + let testName = "testEmitArray" + func didGetEmit(result:NSArray?, ack:AckEmitter?) { + if let array = result?.firstObject as? NSArray { + XCTAssertEqual(array.count, 2) + XCTAssertEqual(array.firstObject! as! String, "test3") + }else { + XCTFail("Should have NSArray as result") + } + } + abstractSocketEmitTest(testName, emitData: ["test1", "test2"], callback: didGetEmit) + } + + func testStringEmit() { + let testName = "testStringEmit" + func didGetEmit(result:NSArray?, ack:AckEmitter?) { + if let string = result?.firstObject as? String { + XCTAssertEqual(string, "polo") + }else { + XCTFail("Should have String as result") + } + } + abstractSocketEmitTest(testName, emitData: "marco", callback: didGetEmit) + } + + func testBoolEmit() { + let testName = "testBoolEmit" + func didGetEmit(result:NSArray?, ack:AckEmitter?) { + if let bool = result?.firstObject as? NSNumber { + XCTAssertTrue(bool.boolValue) + }else { + XCTFail("Should have Boolean as result") + } + } + abstractSocketEmitTest(testName, emitData: false, callback: didGetEmit) + } + + func testIntegerEmit() { + let testName = "testIntegerEmit" + func didGetEmit(result:NSArray?, ack:AckEmitter?) { + if let integer = result?.firstObject as? Int { + XCTAssertEqual(integer, 20) + }else { + XCTFail("Should have Integer as result") + } + } + abstractSocketEmitTest(testName, emitData: 10, callback: didGetEmit) + } + + func testDoubleEmit() { + let testName = "testDoubleEmit" + func didGetEmit(result:NSArray?, ack:AckEmitter?) { + if let double = result?.firstObject as? NSNumber { + XCTAssertEqual(double.floatValue, 1.2) + }else { + XCTFail("Should have String as result") + } + } + abstractSocketEmitTest(testName, emitData: 1.1, callback: didGetEmit) + } + + + func abstractSocketEmitTest(testName:String, emitData:AnyObject?, callback:NormalCallback){ + let expection = self.expectationWithDescription(testName) + func didGetEmit(result:NSArray?, ack:AckEmitter?) { + callback(result, ack) + expection.fulfill() + } + + socket.on(testName + "Return", callback: didGetEmit) + if let emitData = emitData { + socket.emit(testName, emitData) + } else { + socket.emit(testName) + } + + waitForExpectationsWithTimeout(5, handler: nil) + } + + func testCloseConnection() { +// socket.close(fast: false) +// XCTAssertTrue(socket.closed) + } + +}