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:
Diffstat (limited to 'internal/auth/auth_test.go')
-rw-r--r--internal/auth/auth_test.go21
1 files changed, 16 insertions, 5 deletions
diff --git a/internal/auth/auth_test.go b/internal/auth/auth_test.go
index c082cfdf..0278b595 100644
--- a/internal/auth/auth_test.go
+++ b/internal/auth/auth_test.go
@@ -10,10 +10,11 @@ import (
"testing"
"github.com/gorilla/sessions"
+ "github.com/stretchr/testify/mock"
"github.com/stretchr/testify/require"
+ "gitlab.com/gitlab-org/gitlab-pages/internal/domain"
"gitlab.com/gitlab-org/gitlab-pages/internal/request"
- "gitlab.com/gitlab-org/gitlab-pages/internal/source"
)
func createAuth(t *testing.T) *Auth {
@@ -29,6 +30,16 @@ func defaultCookieStore() sessions.Store {
return createCookieStore("something-very-secret")
}
+type mockSource struct {
+ mock.Mock
+}
+
+func (m *mockSource) GetDomain(name string) (*domain.Domain, error) {
+ args := m.Called(name)
+
+ return args.Get(0).(*domain.Domain), args.Error(1)
+}
+
// Gorilla's sessions use request context to save session
// Which makes session sharable between test code and actually manipulating session
// Which leads to negative side effects: we can't test encryption, and cookie params
@@ -56,7 +67,7 @@ func TestTryAuthenticate(t *testing.T) {
require.NoError(t, err)
r := request.WithHTTPSFlag(&http.Request{URL: reqURL}, true)
- require.Equal(t, false, auth.TryAuthenticate(result, r, source.NewDomains()))
+ require.Equal(t, false, auth.TryAuthenticate(result, r, new(mockSource)))
}
func TestTryAuthenticateWithError(t *testing.T) {
@@ -67,7 +78,7 @@ func TestTryAuthenticateWithError(t *testing.T) {
require.NoError(t, err)
r := request.WithHTTPSFlag(&http.Request{URL: reqURL}, true)
- require.Equal(t, true, auth.TryAuthenticate(result, r, source.NewDomains()))
+ require.Equal(t, true, auth.TryAuthenticate(result, r, new(mockSource)))
require.Equal(t, 401, result.Code)
}
@@ -84,7 +95,7 @@ func TestTryAuthenticateWithCodeButInvalidState(t *testing.T) {
session.Values["state"] = "state"
session.Save(r, result)
- require.Equal(t, true, auth.TryAuthenticate(result, r, source.NewDomains()))
+ require.Equal(t, true, auth.TryAuthenticate(result, r, new(mockSource)))
require.Equal(t, 401, result.Code)
}
@@ -124,7 +135,7 @@ func testTryAuthenticateWithCodeAndState(t *testing.T, https bool) {
})
result := httptest.NewRecorder()
- require.Equal(t, true, auth.TryAuthenticate(result, r, source.NewDomains()))
+ require.Equal(t, true, auth.TryAuthenticate(result, r, new(mockSource)))
require.Equal(t, 302, result.Code)
require.Equal(t, "https://pages.gitlab-example.com/project/", result.Header().Get("Location"))
require.Equal(t, 600, result.Result().Cookies()[0].MaxAge)