Skip to content

Commit 8e43672

Browse files
committed
add more tests
1 parent eeae063 commit 8e43672

File tree

2 files changed

+63
-8
lines changed

2 files changed

+63
-8
lines changed

modules/setting/service_test.go

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,14 @@ import (
77
"testing"
88

99
"code.gitea.io/gitea/modules/structs"
10+
"code.gitea.io/gitea/modules/test"
1011

1112
"github.com/gobwas/glob"
1213
"github.com/stretchr/testify/assert"
1314
)
1415

1516
func TestLoadServices(t *testing.T) {
16-
oldService := Service
17-
defer func() {
18-
Service = oldService
19-
}()
17+
defer test.MockVariableValue(&Service)()
2018

2119
cfg, err := NewConfigProviderFromData(`
2220
[service]
@@ -48,10 +46,7 @@ EMAIL_DOMAIN_BLOCKLIST = d3, *.b
4846
}
4947

5048
func TestLoadServiceVisibilityModes(t *testing.T) {
51-
oldService := Service
52-
defer func() {
53-
Service = oldService
54-
}()
49+
defer test.MockVariableValue(&Service)()
5550

5651
kases := map[string]func(){
5752
`
@@ -130,3 +125,33 @@ ALLOWED_USER_VISIBILITY_MODES = public, limit, privated
130125
})
131126
}
132127
}
128+
129+
func TestLoadServiceRequireSignInView(t *testing.T) {
130+
defer test.MockVariableValue(&Service)()
131+
132+
cfg, err := NewConfigProviderFromData(`
133+
[service]
134+
`)
135+
assert.NoError(t, err)
136+
loadServiceFrom(cfg)
137+
assert.False(t, Service.RequireSignInViewStrict)
138+
assert.False(t, Service.BlockAnonymousAccessExpensive)
139+
140+
cfg, err = NewConfigProviderFromData(`
141+
[service]
142+
REQUIRE_SIGNIN_VIEW = true
143+
`)
144+
assert.NoError(t, err)
145+
loadServiceFrom(cfg)
146+
assert.True(t, Service.RequireSignInViewStrict)
147+
assert.False(t, Service.BlockAnonymousAccessExpensive)
148+
149+
cfg, err = NewConfigProviderFromData(`
150+
[service]
151+
REQUIRE_SIGNIN_VIEW = expensive
152+
`)
153+
assert.NoError(t, err)
154+
loadServiceFrom(cfg)
155+
assert.False(t, Service.RequireSignInViewStrict)
156+
assert.True(t, Service.BlockAnonymousAccessExpensive)
157+
}

tests/integration/signin_test.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
"code.gitea.io/gitea/modules/test"
1717
"code.gitea.io/gitea/modules/translation"
1818
"code.gitea.io/gitea/modules/web"
19+
"code.gitea.io/gitea/routers"
1920
"code.gitea.io/gitea/services/context"
2021
"code.gitea.io/gitea/tests"
2122

@@ -166,3 +167,32 @@ func TestEnablePasswordSignInFormAndEnablePasskeyAuth(t *testing.T) {
166167
AssertHTMLElement(t, doc, ".signin-passkey", true)
167168
})
168169
}
170+
171+
func TestRequireSignInView(t *testing.T) {
172+
defer tests.PrepareTestEnv(t)()
173+
t.Run("NoRequireSignInView", func(t *testing.T) {
174+
require.False(t, setting.Service.RequireSignInViewStrict)
175+
require.False(t, setting.Service.BlockAnonymousAccessExpensive)
176+
req := NewRequest(t, "GET", "/user2/repo1/src/branch/master")
177+
MakeRequest(t, req, http.StatusOK)
178+
})
179+
t.Run("RequireSignInView", func(t *testing.T) {
180+
defer test.MockVariableValue(&setting.Service.RequireSignInViewStrict, true)()
181+
defer test.MockVariableValue(&testWebRoutes, routers.NormalRoutes())()
182+
req := NewRequest(t, "GET", "/user2/repo1/src/branch/master")
183+
resp := MakeRequest(t, req, http.StatusSeeOther)
184+
assert.Equal(t, "/user/login", resp.Header().Get("Location"))
185+
})
186+
t.Run("BlockAnonymousAccessExpensive", func(t *testing.T) {
187+
defer test.MockVariableValue(&setting.Service.RequireSignInViewStrict, false)()
188+
defer test.MockVariableValue(&setting.Service.BlockAnonymousAccessExpensive, true)()
189+
defer test.MockVariableValue(&testWebRoutes, routers.NormalRoutes())()
190+
191+
req := NewRequest(t, "GET", "/user2/repo1")
192+
MakeRequest(t, req, http.StatusOK)
193+
194+
req = NewRequest(t, "GET", "/user2/repo1/src/branch/master")
195+
resp := MakeRequest(t, req, http.StatusSeeOther)
196+
assert.Equal(t, "/user/login", resp.Header().Get("Location"))
197+
})
198+
}

0 commit comments

Comments
 (0)