8
8
9
9
import XCTest
10
10
@testable import SocketIO
11
+ import Starscream
11
12
12
13
class SocketSideEffectTest : XCTestCase {
13
14
func testInitialCurrentAck( ) {
@@ -86,6 +87,8 @@ class SocketSideEffectTest: XCTestCase {
86
87
func testHandleOnceClientEvent( ) {
87
88
let expect = expectation ( description: " handled event " )
88
89
90
+ socket. setTestStatus ( . connecting)
91
+
89
92
socket. once ( clientEvent: . connect) { data, ack in
90
93
XCTAssertEqual ( self . socket. testHandlers. count, 0 )
91
94
expect. fulfill ( )
@@ -249,6 +252,7 @@ class SocketSideEffectTest: XCTestCase {
249
252
let expect = expectation ( description: " The client should call the timeout function " )
250
253
251
254
socket. setTestStatus ( . notConnected)
255
+ socket. engine = TestEngine ( client: socket, url: socket. socketURL, options: nil )
252
256
253
257
socket. connect ( timeoutAfter: 0.5 , withHandler: {
254
258
expect. fulfill ( )
@@ -261,6 +265,7 @@ class SocketSideEffectTest: XCTestCase {
261
265
let expect = expectation ( description: " The client should not call the timeout function " )
262
266
263
267
socket. setTestStatus ( . notConnected)
268
+ socket. engine = TestEngine ( client: socket, url: socket. socketURL, options: nil )
264
269
265
270
socket. on ( clientEvent: . connect) { data, ack in
266
271
expect. fulfill ( )
@@ -283,6 +288,8 @@ class SocketSideEffectTest: XCTestCase {
283
288
let nspString = " /swift "
284
289
285
290
socket. setTestStatus ( . notConnected)
291
+ socket. nsp = nspString
292
+ socket. engine = TestEngine ( client: socket, url: socket. socketURL, options: nil )
286
293
287
294
socket. on ( clientEvent: . connect) { data, ack in
288
295
guard let nsp = data [ 0 ] as? String else {
@@ -390,3 +397,35 @@ struct ThrowingData : SocketData {
390
397
}
391
398
392
399
}
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