diff options
Diffstat (limited to 'internal/gitlabnet/testserver/testserver.go')
-rw-r--r-- | internal/gitlabnet/testserver/testserver.go | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/internal/gitlabnet/testserver/testserver.go b/internal/gitlabnet/testserver/testserver.go deleted file mode 100644 index f3b7b71..0000000 --- a/internal/gitlabnet/testserver/testserver.go +++ /dev/null @@ -1,82 +0,0 @@ -package testserver - -import ( - "crypto/tls" - "io/ioutil" - "log" - "net" - "net/http" - "net/http/httptest" - "os" - "path" - "path/filepath" - "testing" - - "github.com/stretchr/testify/require" - - "gitlab.com/gitlab-org/gitlab-shell/internal/testhelper" -) - -var ( - tempDir, _ = ioutil.TempDir("", "gitlab-shell-test-api") - testSocket = path.Join(tempDir, "internal.sock") -) - -type TestRequestHandler struct { - Path string - Handler func(w http.ResponseWriter, r *http.Request) -} - -func StartSocketHttpServer(t *testing.T, handlers []TestRequestHandler) (string, func()) { - err := os.MkdirAll(filepath.Dir(testSocket), 0700) - require.NoError(t, err) - - socketListener, err := net.Listen("unix", testSocket) - require.NoError(t, err) - - server := http.Server{ - Handler: buildHandler(handlers), - // We'll put this server through some nasty stuff we don't want - // in our test output - ErrorLog: log.New(ioutil.Discard, "", 0), - } - go server.Serve(socketListener) - - url := "http+unix://" + testSocket - - return url, cleanupSocket -} - -func StartHttpServer(t *testing.T, handlers []TestRequestHandler) (string, func()) { - server := httptest.NewServer(buildHandler(handlers)) - - return server.URL, server.Close -} - -func StartHttpsServer(t *testing.T, handlers []TestRequestHandler) (string, func()) { - crt := path.Join(testhelper.TestRoot, "certs/valid/server.crt") - key := path.Join(testhelper.TestRoot, "certs/valid/server.key") - - server := httptest.NewUnstartedServer(buildHandler(handlers)) - cer, err := tls.LoadX509KeyPair(crt, key) - require.NoError(t, err) - - server.TLS = &tls.Config{Certificates: []tls.Certificate{cer}} - server.StartTLS() - - return server.URL, server.Close -} - -func cleanupSocket() { - os.RemoveAll(tempDir) -} - -func buildHandler(handlers []TestRequestHandler) http.Handler { - h := http.NewServeMux() - - for _, handler := range handlers { - h.HandleFunc(handler.Path, handler.Handler) - } - - return h -} |