@@ -10,89 +10,79 @@ import XCTest
10
10
@testable import SocketIO
11
11
12
12
class SocketSideEffectTest : XCTestCase {
13
- let data = " test " . data ( using: String . Encoding. utf8) !
14
- let data2 = " test2 " . data ( using: String . Encoding. utf8) !
15
- private var socket : SocketIOClient !
16
-
17
- override func setUp( ) {
18
- super. setUp ( )
19
- socket = SocketIOClient ( socketURL: URL ( string: " http://localhost/ " ) !)
20
- socket. setTestable ( )
21
- }
22
-
23
13
func testInitialCurrentAck( ) {
24
14
XCTAssertEqual ( socket. currentAck, - 1 )
25
15
}
26
-
16
+
27
17
func testFirstAck( ) {
28
18
socket. emitWithAck ( " test " ) . timingOut ( after: 0 ) { data in }
29
19
XCTAssertEqual ( socket. currentAck, 0 )
30
20
}
31
-
21
+
32
22
func testSecondAck( ) {
33
23
socket. emitWithAck ( " test " ) . timingOut ( after: 0 ) { data in }
34
24
socket. emitWithAck ( " test " ) . timingOut ( after: 0 ) { data in }
35
-
25
+
36
26
XCTAssertEqual ( socket. currentAck, 1 )
37
27
}
38
-
28
+
39
29
func testHandleAck( ) {
40
30
let expect = expectation ( description: " handled ack " )
41
31
socket. emitWithAck ( " test " ) . timingOut ( after: 0 ) { data in
42
32
XCTAssertEqual ( data [ 0 ] as? String , " hello world " )
43
33
expect. fulfill ( )
44
34
}
45
-
35
+
46
36
socket. parseSocketMessage ( " 30[ \" hello world \" ] " )
47
37
waitForExpectations ( timeout: 3 , handler: nil )
48
38
}
49
-
39
+
50
40
func testHandleAck2( ) {
51
41
let expect = expectation ( description: " handled ack2 " )
52
42
socket. emitWithAck ( " test " ) . timingOut ( after: 0 ) { data in
53
43
XCTAssertTrue ( data. count == 2 , " Wrong number of ack items " )
54
44
expect. fulfill ( )
55
45
}
56
-
46
+
57
47
socket. parseSocketMessage ( " 61-0[{ \" _placeholder \" :true, \" num \" :0},{ \" test \" :true}] " )
58
48
socket. parseBinaryData ( Data ( ) )
59
49
waitForExpectations ( timeout: 3 , handler: nil )
60
50
}
61
-
51
+
62
52
func testHandleEvent( ) {
63
53
let expect = expectation ( description: " handled event " )
64
54
socket. on ( " test " ) { data, ack in
65
55
XCTAssertEqual ( data [ 0 ] as? String , " hello world " )
66
56
expect. fulfill ( )
67
57
}
68
-
58
+
69
59
socket. parseSocketMessage ( " 2[ \" test \" , \" hello world \" ] " )
70
60
waitForExpectations ( timeout: 3 , handler: nil )
71
61
}
72
-
62
+
73
63
func testHandleStringEventWithQuotes( ) {
74
64
let expect = expectation ( description: " handled event " )
75
65
socket. on ( " test " ) { data, ack in
76
66
XCTAssertEqual ( data [ 0 ] as? String , " \" hello world \" " )
77
67
expect. fulfill ( )
78
68
}
79
-
69
+
80
70
socket. parseSocketMessage ( " 2[ \" test \" , \" \\ \" hello world \\ \" \" ] " )
81
71
waitForExpectations ( timeout: 3 , handler: nil )
82
72
}
83
-
73
+
84
74
func testHandleOnceEvent( ) {
85
75
let expect = expectation ( description: " handled event " )
86
76
socket. once ( " test " ) { data, ack in
87
77
XCTAssertEqual ( data [ 0 ] as? String , " hello world " )
88
78
XCTAssertEqual ( self . socket. testHandlers. count, 0 )
89
79
expect. fulfill ( )
90
80
}
91
-
81
+
92
82
socket. parseSocketMessage ( " 2[ \" test \" , \" hello world \" ] " )
93
83
waitForExpectations ( timeout: 3 , handler: nil )
94
84
}
95
-
85
+
96
86
func testOffWithEvent( ) {
97
87
socket. on ( " test " ) { data, ack in }
98
88
XCTAssertEqual ( socket. testHandlers. count, 1 )
@@ -101,7 +91,7 @@ class SocketSideEffectTest: XCTestCase {
101
91
socket. off ( " test " )
102
92
XCTAssertEqual ( socket. testHandlers. count, 0 )
103
93
}
104
-
94
+
105
95
func testOffWithId( ) {
106
96
let handler = socket. on ( " test " ) { data, ack in }
107
97
XCTAssertEqual ( socket. testHandlers. count, 1 )
@@ -110,19 +100,19 @@ class SocketSideEffectTest: XCTestCase {
110
100
socket. off ( id: handler)
111
101
XCTAssertEqual ( socket. testHandlers. count, 1 )
112
102
}
113
-
103
+
114
104
func testHandlesErrorPacket( ) {
115
105
let expect = expectation ( description: " Handled error " )
116
106
socket. on ( " error " ) { data, ack in
117
107
if let error = data [ 0 ] as? String , error == " test error " {
118
108
expect. fulfill ( )
119
109
}
120
110
}
121
-
111
+
122
112
socket. parseSocketMessage ( " 4 \" test error \" " )
123
113
waitForExpectations ( timeout: 3 , handler: nil )
124
114
}
125
-
115
+
126
116
func testHandleBinaryEvent( ) {
127
117
let expect = expectation ( description: " handled binary event " )
128
118
socket. on ( " test " ) { data, ack in
@@ -131,12 +121,12 @@ class SocketSideEffectTest: XCTestCase {
131
121
expect. fulfill ( )
132
122
}
133
123
}
134
-
124
+
135
125
socket. parseSocketMessage ( " 51-[ \" test \" ,{ \" test \" :{ \" _placeholder \" :true, \" num \" :0}}] " )
136
126
socket. parseBinaryData ( data)
137
127
waitForExpectations ( timeout: 3 , handler: nil )
138
128
}
139
-
129
+
140
130
func testHandleMultipleBinaryEvent( ) {
141
131
let expect = expectation ( description: " handled multiple binary event " )
142
132
socket. on ( " test " ) { data, ack in
@@ -147,22 +137,53 @@ class SocketSideEffectTest: XCTestCase {
147
137
expect. fulfill ( )
148
138
}
149
139
}
150
-
140
+
151
141
socket. parseSocketMessage ( " 52-[ \" test \" ,{ \" test \" :{ \" _placeholder \" :true, \" num \" :0}, \" test2 \" :{ \" _placeholder \" :true, \" num \" :1}}] " )
152
142
socket. parseBinaryData ( data)
153
143
socket. parseBinaryData ( data2)
154
144
waitForExpectations ( timeout: 3 , handler: nil )
155
145
}
156
-
146
+
157
147
func testSocketManager( ) {
158
148
let manager = SocketClientManager . sharedManager
159
149
manager [ " test " ] = socket
160
-
150
+
161
151
XCTAssert ( manager [ " test " ] === socket, " failed to get socket " )
162
-
152
+
163
153
manager [ " test " ] = nil
164
-
154
+
165
155
XCTAssert ( manager [ " test " ] == nil , " socket not removed " )
166
156
167
157
}
158
+
159
+ func testChangingStatusCallsStatusChangeHandler( ) {
160
+ let expect = expectation ( description: " The client should announce when the status changes " )
161
+ let statusChange = SocketIOClientStatus . connecting
162
+
163
+ socket. on ( " statusChange " ) { data, ack in
164
+ guard let status = data [ 0 ] as? SocketIOClientStatus else {
165
+ XCTFail ( " Status should be one of the defined statuses " )
166
+
167
+ return
168
+ }
169
+
170
+ XCTAssertEqual ( status, statusChange, " The status changed should be the one set " )
171
+
172
+ expect. fulfill ( )
173
+ }
174
+
175
+ socket. setTestStatus ( statusChange)
176
+
177
+ waitForExpectations ( timeout: 0.2 )
178
+ }
179
+
180
+ let data = " test " . data ( using: String . Encoding. utf8) !
181
+ let data2 = " test2 " . data ( using: String . Encoding. utf8) !
182
+ private var socket : SocketIOClient !
183
+
184
+ override func setUp( ) {
185
+ super. setUp ( )
186
+ socket = SocketIOClient ( socketURL: URL ( string: " http://localhost/ " ) !)
187
+ socket. setTestable ( )
188
+ }
168
189
}
0 commit comments