refactored iOS testcases
Add test cases for complex data structure (JSON, multiple data emit) without binary Buffer attached
This commit is contained in:
parent
bf3e28df81
commit
1b08411ed4
@ -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 = "<group>"; };
|
||||
94ADAC4A1B6632DD00FD79AE /* SocketAcknowledgementTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketAcknowledgementTest.swift; sourceTree = "<group>"; };
|
||||
94CB8F0A1B6E48B90019ED53 /* SocketTestCases.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketTestCases.swift; sourceTree = "<group>"; };
|
||||
94CB8F0C1B6E66E60019ED53 /* AbstractSocketTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AbstractSocketTest.swift; sourceTree = "<group>"; };
|
||||
/* 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 */,
|
||||
|
||||
104
SocketIO-iOSTests/AbstractSocketTest.swift
Normal file
104
SocketIO-iOSTests/AbstractSocketTest.swift
Normal file
@ -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<AnyObject>, 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<AnyObject>, 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)
|
||||
}
|
||||
}
|
||||
@ -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<AnyObject>, 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)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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<AnyObject>).count, 2)
|
||||
XCTAssertEqual((json.valueForKey("testArray")! as! Array<AnyObject>).last! as! Int, 1)
|
||||
let string = NSString(data: (json.valueForKey("testArray")! as! Array<AnyObject>).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<AnyObject> {
|
||||
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<AnyObject>, 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)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,10 +8,11 @@
|
||||
|
||||
import XCTest
|
||||
|
||||
class SocketNamespaceEmitTest: SocketEmitTest {
|
||||
class SocketNamespaceEmitTest: 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
|
||||
@ -19,62 +20,64 @@ class SocketNamespaceEmitTest: SocketEmitTest {
|
||||
"forcePolling": false,
|
||||
"forceWebsockets": false,// default false
|
||||
"path": "",
|
||||
"nsp": "/swift",
|
||||
"extraHeaders": headers])
|
||||
"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)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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<AnyObject>, callback:NormalCallback)->(), testKind:TestKind) {
|
||||
let testName = "testMultipleItems"
|
||||
static func testMultipleItemsWithBuffer(abstractSocketMultipleSend:(testName:String, emitData:Array<AnyObject>, 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<AnyObject> {
|
||||
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<AnyObject>, 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<AnyObject> {
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user