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

Function TestHost

client_server_test.go:572–751  ·  view source on GitHub ↗

TestHost tests handling of host names and confirms that it matches net/http.

(t *testing.T)

Source from the content-addressed store, hash-verified

570
571// TestHost tests handling of host names and confirms that it matches net/http.
572func TestHost(t *testing.T) {
573
574 upgrader := Upgrader{}
575 handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
576 if IsWebSocketUpgrade(r) {
577 c, err := upgrader.Upgrade(w, r, http.Header{"X-Test-Host": {r.Host}})
578 if err != nil {
579 t.Fatal(err)
580 }
581 c.Close()
582 } else {
583 w.Header().Set("X-Test-Host", r.Host)
584 }
585 })
586
587 server := httptest.NewServer(handler)
588 defer server.Close()
589
590 tlsServer := httptest.NewTLSServer(handler)
591 defer tlsServer.Close()
592
593 addrs := map[*httptest.Server]string{server: server.Listener.Addr().String(), tlsServer: tlsServer.Listener.Addr().String()}
594 wsProtos := map[*httptest.Server]string{server: "ws://", tlsServer: "wss://"}
595 httpProtos := map[*httptest.Server]string{server: "http://", tlsServer: "https://"}
596
597 // Avoid log noise from net/http server by logging to testing.T
598 server.Config.ErrorLog = log.New(testLogWriter{t}, "", 0)
599 tlsServer.Config.ErrorLog = server.Config.ErrorLog
600
601 cas := rootCAs(t, tlsServer)
602
603 tests := []struct {
604 fail bool // true if dial / get should fail
605 server *httptest.Server // server to use
606 url string // host for request URI
607 header string // optional request host header
608 tls string // optional host for tls ServerName
609 wantAddr string // expected host for dial
610 wantHeader string // expected request header on server
611 insecureSkipVerify bool
612 }{
613 {
614 server: server,
615 url: addrs[server],
616 wantAddr: addrs[server],
617 wantHeader: addrs[server],
618 },
619 {
620 server: tlsServer,
621 url: addrs[tlsServer],
622 wantAddr: addrs[tlsServer],
623 wantHeader: addrs[tlsServer],
624 },
625
626 {
627 server: server,
628 url: addrs[server],
629 header: "badhost.com",

Callers

nothing calls this directly

Calls 8

UpgradeMethod · 0.95
DialMethod · 0.95
IsWebSocketUpgradeFunction · 0.85
rootCAsFunction · 0.85
StringMethod · 0.80
DialMethod · 0.65
GetMethod · 0.65
CloseMethod · 0.45

Tested by

no test coverage detected