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

Function TestPartialJSONRead

json_test.go:40–91  ·  json_test.go::TestPartialJSONRead
(t *testing.T)

Source from the content-addressed store, hash-verified

38}
39
40func TestPartialJSONRead(t *testing.T) {
41 var buf0, buf1 bytes.Buffer
42 wc := newTestConn(nil, &buf0, true)
43 rc := newTestConn(&buf0, &buf1, false)
44
45 var v struct {
46 A int
47 B string
48 }
49 v.A = 1
50 v.B = "hello"
51
52 messageCount := 0
53
54 // Partial JSON values.
55
56 data, err := json.Marshal(v)
57 if err != nil {
58 t.Fatal(err)
59 }
60 for i := len(data) - 1; i >= 0; i-- {
61 if err := wc.WriteMessage(TextMessage, data[:i]); err != nil {
62 t.Fatal(err)
63 }
64 messageCount++
65 }
66
67 // Whitespace.
68
69 if err := wc.WriteMessage(TextMessage, []byte(" ")); err != nil {
70 t.Fatal(err)
71 }
72 messageCount++
73
74 // Close.
75
76 if err := wc.WriteMessage(CloseMessage, FormatCloseMessage(CloseNormalClosure, "")); err != nil {
77 t.Fatal(err)
78 }
79
80 for i := 0; i < messageCount; i++ {
81 err := rc.ReadJSON(&v)
82 if err != io.ErrUnexpectedEOF {
83 t.Error("read", i, err)
84 }
85 }
86
87 err = rc.ReadJSON(&v)
88 if _, ok := err.(*CloseError); !ok {
89 t.Error("final", err)
90 }
91}
92
93func TestDeprecatedJSON(t *testing.T) {
94 var buf bytes.Buffer

Callers

nothing calls this directly

Calls 5

newTestConnFunction · 0.85
FormatCloseMessageFunction · 0.85
WriteMessageMethod · 0.80
ReadJSONMethod · 0.80
ErrorMethod · 0.45

Tested by

no test coverage detected