MCPcopy
hub / github.com/gorilla/websocket / TestControl

Function TestControl

conn_test.go:152–186  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

150}
151
152func TestControl(t *testing.T) {
153 const message = "this is a ping/pong messsage"
154 for _, isServer := range []bool{true, false} {
155 for _, isWriteControl := range []bool{true, false} {
156 name := fmt.Sprintf("s:%v, wc:%v", isServer, isWriteControl)
157 var connBuf bytes.Buffer
158 wc := newTestConn(nil, &connBuf, isServer)
159 rc := newTestConn(&connBuf, nil, !isServer)
160 if isWriteControl {
161 wc.WriteControl(PongMessage, []byte(message), time.Now().Add(time.Second))
162 } else {
163 w, err := wc.NextWriter(PongMessage)
164 if err != nil {
165 t.Errorf("%s: wc.NextWriter() returned %v", name, err)
166 continue
167 }
168 if _, err := w.Write([]byte(message)); err != nil {
169 t.Errorf("%s: w.Write() returned %v", name, err)
170 continue
171 }
172 if err := w.Close(); err != nil {
173 t.Errorf("%s: w.Close() returned %v", name, err)
174 continue
175 }
176 var actualMessage string
177 rc.SetPongHandler(func(s string) error { actualMessage = s; return nil })
178 rc.NextReader()
179 if actualMessage != message {
180 t.Errorf("%s: pong=%q, want %q", name, actualMessage, message)
181 continue
182 }
183 }
184 }
185 }
186}
187
188// simpleBufferPool is an implementation of BufferPool for TestWriteBufferPool.
189type simpleBufferPool struct {

Callers

nothing calls this directly

Calls 7

newTestConnFunction · 0.85
WriteControlMethod · 0.80
NextWriterMethod · 0.80
SetPongHandlerMethod · 0.80
NextReaderMethod · 0.80
WriteMethod · 0.45
CloseMethod · 0.45

Tested by

no test coverage detected