summaryrefslogtreecommitdiff
path: root/go/internal/gitlabnet/testserver/testserver.go
diff options
context:
space:
mode:
authorIgor <idrozdov@gitlab.com>2019-05-01 15:31:32 +0000
committerNick Thomas <nick@gitlab.com>2019-05-01 15:31:32 +0000
commitcffbe0ebd86a71ce719767153d1f227172646be5 (patch)
tree70c44f6e6af2f10379bfc2d288ee300b9c160346 /go/internal/gitlabnet/testserver/testserver.go
parent805bdd0d333a047b5fb92a4feb075a7db95cba56 (diff)
downloadgitlab-shell-cffbe0ebd86a71ce719767153d1f227172646be5.tar.gz
Support calling internal API using HTTPS
Diffstat (limited to 'go/internal/gitlabnet/testserver/testserver.go')
-rw-r--r--go/internal/gitlabnet/testserver/testserver.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/go/internal/gitlabnet/testserver/testserver.go b/go/internal/gitlabnet/testserver/testserver.go
index 3e6499d..bf896e6 100644
--- a/go/internal/gitlabnet/testserver/testserver.go
+++ b/go/internal/gitlabnet/testserver/testserver.go
@@ -1,6 +1,7 @@
package testserver
import (
+ "crypto/tls"
"io/ioutil"
"log"
"net"
@@ -9,6 +10,8 @@ import (
"os"
"path"
"path/filepath"
+
+ "gitlab.com/gitlab-org/gitlab-shell/go/internal/testhelper"
)
var (
@@ -50,6 +53,23 @@ func StartHttpServer(handlers []TestRequestHandler) (func(), string, error) {
return server.Close, server.URL, nil
}
+func StartHttpsServer(handlers []TestRequestHandler) (func(), string, error) {
+ 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)
+
+ if err != nil {
+ return nil, "", err
+ }
+
+ server.TLS = &tls.Config{Certificates: []tls.Certificate{cer}}
+ server.StartTLS()
+
+ return server.Close, server.URL, nil
+}
+
func cleanupSocket() {
os.RemoveAll(tempDir)
}