@@ -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