MCPcopy
hub / github.com/coder/websocket / TestAccept

Function TestAccept

accept_test.go:19–208  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

17)
18
19func TestAccept(t *testing.T) {
20 t.Parallel()
21
22 t.Run("badClientHandshake", func(t *testing.T) {
23 t.Parallel()
24
25 w := httptest.NewRecorder()
26 r := httptest.NewRequest("GET", "/", nil)
27
28 _, err := Accept(w, r, nil)
29 assert.Contains(t, err, "protocol violation")
30 })
31
32 t.Run("badOrigin", func(t *testing.T) {
33 t.Parallel()
34
35 w := httptest.NewRecorder()
36 r := httptest.NewRequest("GET", "/", nil)
37 r.Header.Set("Connection", "Upgrade")
38 r.Header.Set("Upgrade", "websocket")
39 r.Header.Set("Sec-WebSocket-Version", "13")
40 r.Header.Set("Sec-WebSocket-Key", xrand.Base64(16))
41 r.Header.Set("Origin", "harhar.com")
42
43 _, err := Accept(w, r, nil)
44 assert.Contains(t, err, `request Origin "harhar.com" is not a valid URL with a host`)
45 })
46
47 // #247
48 t.Run("unauthorizedOriginErrorMessage", func(t *testing.T) {
49 t.Parallel()
50
51 w := httptest.NewRecorder()
52 r := httptest.NewRequest("GET", "/", nil)
53 r.Header.Set("Connection", "Upgrade")
54 r.Header.Set("Upgrade", "websocket")
55 r.Header.Set("Sec-WebSocket-Version", "13")
56 r.Header.Set("Sec-WebSocket-Key", xrand.Base64(16))
57 r.Header.Set("Origin", "https://harhar.com")
58
59 _, err := Accept(w, r, nil)
60 assert.Contains(t, err, `request Origin "harhar.com" is not authorized for Host "example.com"`)
61 })
62
63 t.Run("badCompression", func(t *testing.T) {
64 t.Parallel()
65
66 newRequest := func(extensions string) *http.Request {
67 r := httptest.NewRequest("GET", "/", nil)
68 r.Header.Set("Connection", "Upgrade")
69 r.Header.Set("Upgrade", "websocket")
70 r.Header.Set("Sec-WebSocket-Version", "13")
71 r.Header.Set("Sec-WebSocket-Key", xrand.Base64(16))
72 r.Header.Set("Sec-WebSocket-Extensions", extensions)
73 return r
74 }
75 errHijack := errors.New("hijack error")
76 newResponseWriter := func() http.ResponseWriter {

Callers

nothing calls this directly

Calls 10

ContainsFunction · 0.92
Base64Function · 0.92
ErrorIsFunction · 0.92
EqualFunction · 0.92
SuccessFunction · 0.92
optsMethod · 0.80
AcceptFunction · 0.70
StringMethod · 0.45
CloseMethod · 0.45
CloseNowMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…