diff --git a/Socket.IO-Client-Swift.xcodeproj/project.pbxproj b/Socket.IO-Client-Swift.xcodeproj/project.pbxproj index e664cfc..7a27c30 100644 --- a/Socket.IO-Client-Swift.xcodeproj/project.pbxproj +++ b/Socket.IO-Client-Swift.xcodeproj/project.pbxproj @@ -53,8 +53,8 @@ 7472A5EC1BB6ECE800CD4F59 /* SocketTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5764DF861B51F254004FF46E /* SocketTypes.swift */; }; 7472A5ED1BB6ECE800CD4F59 /* SwiftRegex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5764DF871B51F254004FF46E /* SwiftRegex.swift */; }; 7472A5EE1BB6ECE800CD4F59 /* WebSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5764DF881B51F254004FF46E /* WebSocket.swift */; }; - 7472C65C1BCAB53E003CA70D /* SocketNamespaceEmitTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7472C65B1BCAB53E003CA70D /* SocketNamespaceEmitTest.swift */; settings = {ASSET_TAGS = (); }; }; - 7472C65D1BCAB53E003CA70D /* SocketNamespaceEmitTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7472C65B1BCAB53E003CA70D /* SocketNamespaceEmitTest.swift */; settings = {ASSET_TAGS = (); }; }; + 7472C65C1BCAB53E003CA70D /* SocketNamespacePacketTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7472C65B1BCAB53E003CA70D /* SocketNamespacePacketTest.swift */; settings = {ASSET_TAGS = (); }; }; + 7472C65D1BCAB53E003CA70D /* SocketNamespacePacketTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7472C65B1BCAB53E003CA70D /* SocketNamespacePacketTest.swift */; settings = {ASSET_TAGS = (); }; }; 74781D5A1B7E83930042CACA /* SocketIOClientStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74781D591B7E83930042CACA /* SocketIOClientStatus.swift */; }; 74781D5B1B7E83930042CACA /* SocketIOClientStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74781D591B7E83930042CACA /* SocketIOClientStatus.swift */; }; 74781D5C1B7E83930042CACA /* SocketIOClientStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74781D591B7E83930042CACA /* SocketIOClientStatus.swift */; }; @@ -136,7 +136,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 = ""; }; - 7472C65B1BCAB53E003CA70D /* SocketNamespaceEmitTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketNamespaceEmitTest.swift; sourceTree = ""; }; + 7472C65B1BCAB53E003CA70D /* SocketNamespacePacketTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketNamespacePacketTest.swift; sourceTree = ""; }; 74781D591B7E83930042CACA /* SocketIOClientStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SocketIOClientStatus.swift; path = SocketIOClientSwift/SocketIOClientStatus.swift; sourceTree = ""; }; 749A7F8A1BA9D42D00782993 /* SocketAckEmitter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SocketAckEmitter.swift; path = SocketIOClientSwift/SocketAckEmitter.swift; sourceTree = ""; }; 74D765611B9F0D870028551C /* SocketStringReader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SocketStringReader.swift; path = SocketIOClientSwift/SocketStringReader.swift; sourceTree = ""; }; @@ -260,7 +260,7 @@ children = ( 94A20D601B99E22F00BF9E44 /* SocketAckManagerTest.swift */, 74F124EF1BC574CF002966F4 /* SocketBasicPacketTest.swift */, - 7472C65B1BCAB53E003CA70D /* SocketNamespaceEmitTest.swift */, + 7472C65B1BCAB53E003CA70D /* SocketNamespacePacketTest.swift */, 949FAE8C1B9B94E600073BE9 /* SocketParserTest.swift */, 74F124EC1BC572A8002966F4 /* SocketTestEngine.swift */, 572EF2471B51F18A00EEBB58 /* Supporting Files */, @@ -519,7 +519,7 @@ 945B653B1B5FCEEA0081E995 /* SocketIOClient.swift in Sources */, 74F124F01BC574CF002966F4 /* SocketBasicPacketTest.swift in Sources */, 949FAE8D1B9B94E600073BE9 /* SocketParserTest.swift in Sources */, - 7472C65C1BCAB53E003CA70D /* SocketNamespaceEmitTest.swift in Sources */, + 7472C65C1BCAB53E003CA70D /* SocketNamespacePacketTest.swift in Sources */, 945B65411B5FCEEA0081E995 /* WebSocket.swift in Sources */, 74F124E91BC56BFC002966F4 /* SocketEnginePacketType.swift in Sources */, ); @@ -574,7 +574,7 @@ 7458953D1BB59A0A0050ACC8 /* SocketParserTest.swift in Sources */, 74F124F11BC574CF002966F4 /* SocketBasicPacketTest.swift in Sources */, 74F124EB1BC56BFC002966F4 /* SocketEnginePacketType.swift in Sources */, - 7472C65D1BCAB53E003CA70D /* SocketNamespaceEmitTest.swift in Sources */, + 7472C65D1BCAB53E003CA70D /* SocketNamespacePacketTest.swift in Sources */, 749A7F901BA9D42D00782993 /* SocketAckEmitter.swift in Sources */, 74781D5D1B7E83930042CACA /* SocketIOClientStatus.swift in Sources */, ); diff --git a/SocketIO-MacTests/SocketNamespacePacketTest.swift b/SocketIO-MacTests/SocketNamespacePacketTest.swift new file mode 100644 index 0000000..a73948c --- /dev/null +++ b/SocketIO-MacTests/SocketNamespacePacketTest.swift @@ -0,0 +1,139 @@ +// +// SocketNamespacePacketTest.swift +// Socket.IO-Client-Swift +// +// Created by Erik Little on 10/11/15. +// +// + +import XCTest + +class SocketNamespacePacketTest: XCTestCase { + let data = "test".dataUsingEncoding(NSUTF8StringEncoding)! + let data2 = "test2".dataUsingEncoding(NSUTF8StringEncoding)! + + func testEmpyEmit() { + let expectedSendString = "2/swift,[\"test\"]" + let sendData = ["test"] + let packet = SocketPacket.packetFromEmit(sendData, id: -1, nsp: "/swift", ack: false) + + XCTAssertEqual(packet.packetString, expectedSendString) + } + + func testNullEmit() { + let expectedSendString = "2/swift,[\"test\",null]" + let sendData = ["test", NSNull()] + let packet = SocketPacket.packetFromEmit(sendData, id: -1, nsp: "/swift", ack: false) + + XCTAssertEqual(packet.packetString, expectedSendString) + } + + func testStringEmit() { + let expectedSendString = "2/swift,[\"test\",\"foo bar\"]" + let sendData = ["test", "foo bar"] + let packet = SocketPacket.packetFromEmit(sendData, id: -1, nsp: "/swift", ack: false) + + XCTAssertEqual(packet.packetString, expectedSendString) + } + + func testJSONEmit() { + let expectedSendString = "2/swift,[\"test\",{\"test\":\"hello\",\"hello\":1,\"foobar\":true,\"null\":null}]" + let sendData = ["test", ["foobar": true, "hello": 1, "test": "hello", "null": NSNull()]] + let packet = SocketPacket.packetFromEmit(sendData, id: -1, nsp: "/swift", ack: false) + + XCTAssertEqual(packet.packetString, expectedSendString) + } + + func testArrayEmit() { + let expectedSendString = "2/swift,[\"test\",[\"hello\",1,{\"test\":\"test\"}]]" + let sendData = ["test", ["hello", 1, ["test": "test"]]] + let packet = SocketPacket.packetFromEmit(sendData, id: -1, nsp: "/swift", ack: false) + + XCTAssertEqual(packet.packetString, expectedSendString) + } + + func testBinaryEmit() { + let expectedSendString = "51-/swift,[\"test\",{\"num\":0,\"_placeholder\":true}]" + let sendData = ["test", data] + let packet = SocketPacket.packetFromEmit(sendData, id: -1, nsp: "/swift", ack: false) + + XCTAssertEqual(packet.packetString, expectedSendString) + XCTAssertEqual(packet.binary, [data]) + } + + func testMultipleBinaryEmit() { + let expectedSendString = "52-/swift,[\"test\",{\"data1\":{\"num\":0,\"_placeholder\":true},\"data2\":{\"num\":1,\"_placeholder\":true}}]" + let sendData = ["test", ["data1": data, "data2": data2]] + let packet = SocketPacket.packetFromEmit(sendData, id: -1, nsp: "/swift", ack: false) + + XCTAssertEqual(packet.packetString, expectedSendString) + XCTAssertEqual(packet.binary, [data, data2]) + } + + func testEmitWithAck() { + let expectedSendString = "2/swift,0[\"test\"]" + let sendData = ["test"] + let packet = SocketPacket.packetFromEmit(sendData, id: 0, nsp: "/swift", ack: false) + + XCTAssertEqual(packet.packetString, expectedSendString) + } + + func testEmitDataWithAck() { + let expectedSendString = "51-/swift,0[\"test\",{\"num\":0,\"_placeholder\":true}]" + let sendData = ["test", data] + let packet = SocketPacket.packetFromEmit(sendData, id: 0, nsp: "/swift", ack: false) + + XCTAssertEqual(packet.packetString, expectedSendString) + XCTAssertEqual(packet.binary, [data]) + } + + // Acks + func testEmptyAck() { + let expectedSendString = "3/swift,0[]" + let packet = SocketPacket.packetFromEmit([], id: 0, nsp: "/swift", ack: true) + + XCTAssertEqual(packet.packetString, expectedSendString) + } + + func testNullAck() { + let expectedSendString = "3/swift,0[null]" + let sendData = [NSNull()] + let packet = SocketPacket.packetFromEmit(sendData, id: 0, nsp: "/swift", ack: true) + + XCTAssertEqual(packet.packetString, expectedSendString) + } + + func testStringAck() { + let expectedSendString = "3/swift,0[\"test\"]" + let sendData = ["test"] + let packet = SocketPacket.packetFromEmit(sendData, id: 0, nsp: "/swift", ack: true) + + XCTAssertEqual(packet.packetString, expectedSendString) + } + + func testJSONAck() { + let expectedSendString = "3/swift,0[{\"test\":\"hello\",\"hello\":1,\"foobar\":true,\"null\":null}]" + let sendData = [["foobar": true, "hello": 1, "test": "hello", "null": NSNull()]] + let packet = SocketPacket.packetFromEmit(sendData, id: 0, nsp: "/swift", ack: true) + + XCTAssertEqual(packet.packetString, expectedSendString) + } + + func testBinaryAck() { + let expectedSendString = "61-/swift,0[{\"num\":0,\"_placeholder\":true}]" + let sendData = [data] + let packet = SocketPacket.packetFromEmit(sendData, id: 0, nsp: "/swift", ack: true) + + XCTAssertEqual(packet.packetString, expectedSendString) + XCTAssertEqual(packet.binary, [data]) + } + + func testMultipleBinaryAck() { + let expectedSendString = "62-/swift,0[{\"data2\":{\"num\":0,\"_placeholder\":true},\"data1\":{\"num\":1,\"_placeholder\":true}}]" + let sendData = [["data1": data, "data2": data2]] + let packet = SocketPacket.packetFromEmit(sendData, id: 0, nsp: "/swift", ack: true) + + XCTAssertEqual(packet.packetString, expectedSendString) + XCTAssertEqual(packet.binary, [data2, data]) + } +}