88
99import XCTest
1010@testable import SocketIO
11+ import Starscream
1112
1213class SocketSideEffectTest : XCTestCase {
1314 func testInitialCurrentAck( ) {
@@ -86,6 +87,8 @@ class SocketSideEffectTest: XCTestCase {
8687 func testHandleOnceClientEvent( ) {
8788 let expect = expectation ( description: " handled event " )
8889
90+ socket. setTestStatus ( . connecting)
91+
8992 socket. once ( clientEvent: . connect) { data, ack in
9093 XCTAssertEqual ( self . socket. testHandlers. count, 0 )
9194 expect. fulfill ( )
@@ -249,6 +252,7 @@ class SocketSideEffectTest: XCTestCase {
249252 let expect = expectation ( description: " The client should call the timeout function " )
250253
251254 socket. setTestStatus ( . notConnected)
255+ socket. engine = TestEngine ( client: socket, url: socket. socketURL, options: nil )
252256
253257 socket. connect ( timeoutAfter: 0.5 , withHandler: {
254258 expect. fulfill ( )
@@ -261,6 +265,7 @@ class SocketSideEffectTest: XCTestCase {
261265 let expect = expectation ( description: " The client should not call the timeout function " )
262266
263267 socket. setTestStatus ( . notConnected)
268+ socket. engine = TestEngine ( client: socket, url: socket. socketURL, options: nil )
264269
265270 socket. on ( clientEvent: . connect) { data, ack in
266271 expect. fulfill ( )
@@ -283,6 +288,8 @@ class SocketSideEffectTest: XCTestCase {
283288 let nspString = " /swift "
284289
285290 socket. setTestStatus ( . notConnected)
291+ socket. nsp = nspString
292+ socket. engine = TestEngine ( client: socket, url: socket. socketURL, options: nil )
286293
287294 socket. on ( clientEvent: . connect) { data, ack in
288295 guard let nsp = data [ 0 ] as? String else {
@@ -390,3 +397,35 @@ struct ThrowingData : SocketData {
390397 }
391398
392399}
400+
401+ class TestEngine : SocketEngineSpec {
402+ var client : SocketEngineClient ? = nil
403+ private( set) var closed = false
404+ private( set) var connected = false
405+ var connectParams : [ String : Any ] ? = nil
406+ private( set) var cookies : [ HTTPCookie ] ? = nil
407+ private( set) var engineQueue = DispatchQueue . main
408+ private( set) var extraHeaders : [ String : String ] ? = nil
409+ private( set) var fastUpgrade = false
410+ private( set) var forcePolling = false
411+ private( set) var forceWebsockets = false
412+ private( set) var polling = false
413+ private( set) var probing = false
414+ private( set) var sid = " "
415+ private( set) var socketPath = " "
416+ private( set) var urlPolling = URL ( string: " http://localhost/ " ) !
417+ private( set) var urlWebSocket = URL ( string: " http://localhost/ " ) !
418+ private( set) var websocket = false
419+ private( set) var ws : WebSocket ? = nil
420+
421+ required init ( client: SocketEngineClient , url: URL , options: NSDictionary ? ) { }
422+
423+ func connect( ) { }
424+ func didError( reason: String ) { }
425+ func disconnect( reason: String ) { }
426+ func doFastUpgrade( ) { }
427+ func flushWaitingForPostToWebSocket( ) { }
428+ func parseEngineData( _ data: Data ) { }
429+ func parseEngineMessage( _ message: String ) { }
430+ func write( _ msg: String , withType type: SocketEnginePacketType , withData data: [ Data ] ) { }
431+ }
0 commit comments