MCPcopy Create free account
hub / github.com/facebook/time / TestPostHandshakeRequestFormat

Function TestPostHandshakeRequestFormat

ntrip/client_test.go:144–190  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

142}
143
144func TestPostHandshakeRequestFormat(t *testing.T) {
145 client, server := net.Pipe()
146 defer server.Close()
147
148 cfg := Config{
149 Caster: "caster.example.com:2101",
150 Mountpoint: "/MOUNT01",
151 Password: "secret",
152 Username: "user1",
153 UserAgent: "NTRIP MyApp/1.0",
154 Version: 2,
155 Chunked: true,
156 }
157 ntripClient := NewClient(cfg)
158
159 errCh := make(chan error, 1)
160 go func() {
161 errCh <- ntripClient.postHandshake(client)
162 }()
163
164 reader := bufio.NewReader(server)
165 var requestLine string
166 headers := map[string]string{}
167 for {
168 line, err := reader.ReadString('\n')
169 require.NoError(t, err)
170 line = strings.TrimRight(line, "\r\n")
171 if line == "" {
172 break
173 }
174 if requestLine == "" {
175 requestLine = line
176 continue
177 }
178 k, v, _ := strings.Cut(line, ": ")
179 headers[k] = v
180 }
181
182 require.Equal(t, "POST /MOUNT01 HTTP/1.1", requestLine)
183 require.Equal(t, "caster.example.com:2101", headers["Host"])
184 require.Equal(t, "Ntrip/2.0", headers["Ntrip-Version"])
185 require.Equal(t, "NTRIP MyApp/1.0", headers["User-Agent"])
186 require.Equal(t, "chunked", headers["Transfer-Encoding"])
187 want := base64.StdEncoding.EncodeToString([]byte("user1:secret"))
188 require.Equal(t, "Basic "+want, headers["Authorization"])
189 require.NoError(t, <-errCh)
190}
191
192func TestClientWriteChunked(t *testing.T) {
193 client, server := net.Pipe()

Callers

nothing calls this directly

Calls 3

postHandshakeMethod · 0.95
NewClientFunction · 0.70
CloseMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…