9
9
"net"
10
10
"net/http"
11
11
"net/http/httptest"
12
+ "nhooyr.io/websocket/internal/test/xrand"
12
13
"strings"
13
14
"testing"
14
15
@@ -36,7 +37,7 @@ func TestAccept(t *testing.T) {
36
37
r .Header .Set ("Connection" , "Upgrade" )
37
38
r .Header .Set ("Upgrade" , "websocket" )
38
39
r .Header .Set ("Sec-WebSocket-Version" , "13" )
39
- r .Header .Set ("Sec-WebSocket-Key" , "meow123" )
40
+ r .Header .Set ("Sec-WebSocket-Key" , xrand . Base64 ( 16 ) )
40
41
r .Header .Set ("Origin" , "harhar.com" )
41
42
42
43
_ , err := Accept (w , r , nil )
@@ -52,7 +53,7 @@ func TestAccept(t *testing.T) {
52
53
r .Header .Set ("Connection" , "Upgrade" )
53
54
r .Header .Set ("Upgrade" , "websocket" )
54
55
r .Header .Set ("Sec-WebSocket-Version" , "13" )
55
- r .Header .Set ("Sec-WebSocket-Key" , "meow123" )
56
+ r .Header .Set ("Sec-WebSocket-Key" , xrand . Base64 ( 16 ) )
56
57
r .Header .Set ("Origin" , "https://harhar.com" )
57
58
58
59
_ , err := Accept (w , r , nil )
@@ -116,7 +117,7 @@ func TestAccept(t *testing.T) {
116
117
r .Header .Set ("Connection" , "Upgrade" )
117
118
r .Header .Set ("Upgrade" , "websocket" )
118
119
r .Header .Set ("Sec-WebSocket-Version" , "13" )
119
- r .Header .Set ("Sec-WebSocket-Key" , "meow123" )
120
+ r .Header .Set ("Sec-WebSocket-Key" , xrand . Base64 ( 16 ) )
120
121
121
122
_ , err := Accept (w , r , nil )
122
123
assert .Contains (t , err , `http.ResponseWriter does not implement http.Hijacker` )
@@ -136,7 +137,7 @@ func TestAccept(t *testing.T) {
136
137
r .Header .Set ("Connection" , "Upgrade" )
137
138
r .Header .Set ("Upgrade" , "websocket" )
138
139
r .Header .Set ("Sec-WebSocket-Version" , "13" )
139
- r .Header .Set ("Sec-WebSocket-Key" , "meow123" )
140
+ r .Header .Set ("Sec-WebSocket-Key" , xrand . Base64 ( 16 ) )
140
141
141
142
_ , err := Accept (w , r , nil )
142
143
assert .Contains (t , err , `failed to hijack connection` )
@@ -183,21 +184,39 @@ func Test_verifyClientHandshake(t *testing.T) {
183
184
},
184
185
},
185
186
{
186
- name : "badWebSocketKey " ,
187
+ name : "missingWebSocketKey " ,
187
188
h : map [string ]string {
188
189
"Connection" : "Upgrade" ,
189
190
"Upgrade" : "websocket" ,
190
191
"Sec-WebSocket-Version" : "13" ,
191
192
"Sec-WebSocket-Key" : "" ,
192
193
},
193
194
},
195
+ {
196
+ name : "shortWebSocketKey" ,
197
+ h : map [string ]string {
198
+ "Connection" : "Upgrade" ,
199
+ "Upgrade" : "websocket" ,
200
+ "Sec-WebSocket-Version" : "13" ,
201
+ "Sec-WebSocket-Key" : xrand .Base64 (15 ),
202
+ },
203
+ },
204
+ {
205
+ name : "invalidWebSocketKey" ,
206
+ h : map [string ]string {
207
+ "Connection" : "Upgrade" ,
208
+ "Upgrade" : "websocket" ,
209
+ "Sec-WebSocket-Version" : "13" ,
210
+ "Sec-WebSocket-Key" : "notbase64" ,
211
+ },
212
+ },
194
213
{
195
214
name : "badHTTPVersion" ,
196
215
h : map [string ]string {
197
216
"Connection" : "Upgrade" ,
198
217
"Upgrade" : "websocket" ,
199
218
"Sec-WebSocket-Version" : "13" ,
200
- "Sec-WebSocket-Key" : "meow123" ,
219
+ "Sec-WebSocket-Key" : xrand . Base64 ( 16 ) ,
201
220
},
202
221
http1 : true ,
203
222
},
@@ -207,7 +226,7 @@ func Test_verifyClientHandshake(t *testing.T) {
207
226
"Connection" : "keep-alive, Upgrade" ,
208
227
"Upgrade" : "websocket" ,
209
228
"Sec-WebSocket-Version" : "13" ,
210
- "Sec-WebSocket-Key" : "meow123" ,
229
+ "Sec-WebSocket-Key" : xrand . Base64 ( 16 ) ,
211
230
},
212
231
success : true ,
213
232
},
0 commit comments