Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfeistel <6742251-feistel@users.noreply.gitlab.com>2021-07-21 17:10:59 +0300
committerfeistel <6742251-feistel@users.noreply.gitlab.com>2021-07-22 15:26:08 +0300
commit8b78197eeccc03ef7ca7f2d3c15f3781e9a46611 (patch)
tree6dad68f944095849c90d9a3f7b17a9036e6577c1
parent7a9c492b619078aed6f9c3f95cf21640afd63100 (diff)
Add auth handlers to stub gitlab server
-rw-r--r--test/acceptance/helpers_test.go39
1 files changed, 35 insertions, 4 deletions
diff --git a/test/acceptance/helpers_test.go b/test/acceptance/helpers_test.go
index 2aa7041d..11c0f381 100644
--- a/test/acceptance/helpers_test.go
+++ b/test/acceptance/helpers_test.go
@@ -273,10 +273,6 @@ func RunPagesProcessWithAuth(t *testing.T, pagesBinary string, listeners []Liste
return cleanup2
}
-func RunPagesProcessWithGitlabServer(t *testing.T, pagesBinary string, listeners []ListenSpec, promPort string, gitlabServer string) func() {
- return runPagesProcessWithGitlabServer(t, pagesBinary, listeners, promPort, nil, gitlabServer)
-}
-
func RunPagesProcessWithGitlabServerWithSSLCertFile(t *testing.T, pagesBinary string, listeners []ListenSpec, promPort string, sslCertFile string, gitlabServer string) func() {
return runPagesProcessWithGitlabServer(t, pagesBinary, listeners, promPort,
[]string{"SSL_CERT_FILE=" + sslCertFile}, gitlabServer)
@@ -581,6 +577,8 @@ type stubOpts struct {
m sync.RWMutex
apiCalled bool
statusReadyCount int
+ authHandler http.HandlerFunc
+ userHandler http.HandlerFunc
statusHandler http.HandlerFunc
pagesHandler http.HandlerFunc
pagesStatusResponse int
@@ -616,6 +614,20 @@ func NewGitlabDomainsSourceStub(t *testing.T, opts *stubOpts) *httptest.Server {
mux.HandleFunc("/api/v4/internal/pages", pagesHandler)
+ authHandler := defaultAuthHandler(t, opts)
+ if opts.authHandler != nil {
+ authHandler = opts.authHandler
+ }
+
+ mux.HandleFunc("/oauth/token", authHandler)
+
+ userHandler := defaultUserHandler(t, opts)
+ if opts.userHandler != nil {
+ userHandler = opts.userHandler
+ }
+
+ mux.HandleFunc("/api/v4/user", userHandler)
+
return httptest.NewServer(mux)
}
@@ -679,6 +691,25 @@ func defaultAPIHandler(t *testing.T, opts *stubOpts) http.HandlerFunc {
}
}
+func defaultAuthHandler(t *testing.T, opts *stubOpts) http.HandlerFunc {
+ return func(w http.ResponseWriter, r *http.Request) {
+ require.Equal(t, "POST", r.Method)
+ err := json.NewEncoder(w).Encode(struct {
+ AccessToken string `json:"access_token"`
+ }{
+ AccessToken: "abc",
+ })
+ require.NoError(t, err)
+ }
+}
+
+func defaultUserHandler(t *testing.T, opts *stubOpts) http.HandlerFunc {
+ return func(w http.ResponseWriter, r *http.Request) {
+ require.Equal(t, "Bearer abc", r.Header.Get("Authorization"))
+ w.WriteHeader(http.StatusOK)
+ }
+}
+
func newConfigFile(t *testing.T, configs ...string) string {
t.Helper()