basic emit tests

This commit is contained in:
Lukas Schmidt 2015-07-25 18:45:41 +02:00
parent 4b9db85a49
commit a07916fb2f
2 changed files with 194 additions and 0 deletions

View File

@ -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 = "<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>"; };
945B65421B63D9DB0081E995 /* ConvertedSocketTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConvertedSocketTest.swift; sourceTree = "<group>"; };
/* 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 */,

View File

@ -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)
}
}