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.go33
1 files changed, 20 insertions, 13 deletions
diff --git a/internal/auth/auth_test.go b/internal/auth/auth_test.go
index 711dea78..ffaf5b6f 100644
--- a/internal/auth/auth_test.go
+++ b/internal/auth/auth_test.go
@@ -29,6 +29,18 @@ func defaultCookieStore() sessions.Store {
return createCookieStore("something-very-secret")
}
+type domainMock struct {
+ projectID uint64
+}
+
+func (dm *domainMock) GetProjectID(r *http.Request) uint64 {
+ return dm.projectID
+}
+
+func (dm *domainMock) ServeNotFoundAuthFailed(w http.ResponseWriter, r *http.Request) {
+ w.WriteHeader(http.StatusNotFound)
+}
+
// 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
@@ -180,10 +192,9 @@ func TestCheckAuthenticationWhenAccess(t *testing.T) {
session, _ := store.Get(r, "gitlab-pages")
session.Values["access_token"] = "abc"
session.Save(r, result)
-
- contentServed, authFailed := auth.CheckAuthentication(result, r, 1000)
+ contentServed := auth.CheckAuthentication(result, r, &domainMock{projectID: 1000})
require.False(t, contentServed)
- require.False(t, authFailed)
+
// content wasn't served so the default response from CheckAuthentication should be 200
require.Equal(t, 200, result.Code)
}
@@ -222,11 +233,10 @@ func TestCheckAuthenticationWhenNoAccess(t *testing.T) {
session.Values["access_token"] = "abc"
session.Save(r, result)
- contentServed, authFailed := auth.CheckAuthentication(result, r, 1000)
- require.False(t, contentServed)
- require.True(t, authFailed)
+ contentServed := auth.CheckAuthentication(result, r, &domainMock{projectID: 1000})
+ require.True(t, contentServed)
// content wasn't served so the default response from CheckAuthentication should be 200
- require.Equal(t, 200, result.Code)
+ require.Equal(t, 404, result.Code)
}
func TestCheckAuthenticationWhenInvalidToken(t *testing.T) {
@@ -263,9 +273,8 @@ func TestCheckAuthenticationWhenInvalidToken(t *testing.T) {
session.Values["access_token"] = "abc"
session.Save(r, result)
- contentServed, authFailed := auth.CheckAuthentication(result, r, 1000)
+ contentServed := auth.CheckAuthentication(result, r, &domainMock{projectID: 1000})
require.True(t, contentServed)
- require.False(t, authFailed)
require.Equal(t, 302, result.Code)
}
@@ -303,9 +312,8 @@ func TestCheckAuthenticationWithoutProject(t *testing.T) {
session.Values["access_token"] = "abc"
session.Save(r, result)
- contentServed, authFailed := auth.CheckAuthenticationWithoutProject(result, r)
+ contentServed := auth.CheckAuthenticationWithoutProject(result, r, &domainMock{projectID: 0})
require.False(t, contentServed)
- require.False(t, authFailed)
require.Equal(t, 200, result.Code)
}
@@ -342,9 +350,8 @@ func TestCheckAuthenticationWithoutProjectWhenInvalidToken(t *testing.T) {
session.Values["access_token"] = "abc"
session.Save(r, result)
- contentServed, authFailed := auth.CheckAuthenticationWithoutProject(result, r)
+ contentServed := auth.CheckAuthenticationWithoutProject(result, r, &domainMock{projectID: 0})
require.True(t, contentServed)
- require.False(t, authFailed)
require.Equal(t, 302, result.Code)
}