rpc: add SetHeader method to Client (#21392)
Resolves #20163 Co-authored-by: Felix Lange <fjl@twurst.com>
This commit is contained in:
@@ -26,6 +26,7 @@ import (
|
||||
"os"
|
||||
"reflect"
|
||||
"runtime"
|
||||
"strings"
|
||||
"sync"
|
||||
"testing"
|
||||
"time"
|
||||
@@ -429,6 +430,42 @@ func TestClientNotificationStorm(t *testing.T) {
|
||||
doTest(23000, true)
|
||||
}
|
||||
|
||||
func TestClientSetHeader(t *testing.T) {
|
||||
var gotHeader bool
|
||||
srv := newTestServer()
|
||||
httpsrv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Header.Get("test") == "ok" {
|
||||
gotHeader = true
|
||||
}
|
||||
srv.ServeHTTP(w, r)
|
||||
}))
|
||||
defer httpsrv.Close()
|
||||
defer srv.Stop()
|
||||
|
||||
client, err := Dial(httpsrv.URL)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer client.Close()
|
||||
|
||||
client.SetHeader("test", "ok")
|
||||
if _, err := client.SupportedModules(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !gotHeader {
|
||||
t.Fatal("client did not set custom header")
|
||||
}
|
||||
|
||||
// Check that Content-Type can be replaced.
|
||||
client.SetHeader("content-type", "application/x-garbage")
|
||||
_, err = client.SupportedModules()
|
||||
if err == nil {
|
||||
t.Fatal("no error for invalid content-type header")
|
||||
} else if !strings.Contains(err.Error(), "Unsupported Media Type") {
|
||||
t.Fatalf("error is not related to content-type: %q", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestClientHTTP(t *testing.T) {
|
||||
server := newTestServer()
|
||||
defer server.Stop()
|
||||
|
Reference in New Issue
Block a user