45 lines
944 B
Go
45 lines
944 B
Go
package httpp3
|
|
|
|
import (
|
|
"crypto/tls"
|
|
"io"
|
|
"net/http"
|
|
"testing"
|
|
|
|
"github.com/quic-go/quic-go/http3"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/bluenviron/mediamtx/internal/test"
|
|
)
|
|
|
|
func TestServer(t *testing.T) {
|
|
// test that Server can be initialized and reached by a simple GET request
|
|
s := &Server{
|
|
Address: "127.0.0.1:18443",
|
|
Handler: http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
|
|
w.WriteHeader(http.StatusOK)
|
|
}),
|
|
Parent: test.NilLogger,
|
|
}
|
|
err := s.Initialize()
|
|
require.NoError(t, err)
|
|
defer s.Close()
|
|
|
|
tr := &http3.Transport{
|
|
TLSClientConfig: &tls.Config{
|
|
InsecureSkipVerify: true, //nolint:gosec
|
|
},
|
|
}
|
|
defer tr.Close() //nolint:errcheck
|
|
hc := &http.Client{Transport: tr}
|
|
|
|
res, err := hc.Get("https://127.0.0.1:18443/")
|
|
require.NoError(t, err)
|
|
defer res.Body.Close()
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
|
|
|
_, err = io.ReadAll(res.Body)
|
|
require.NoError(t, err)
|
|
}
|