99 "testing"
1010
1111 "code.gitea.io/gitea/modules/setting"
12+ "code.gitea.io/gitea/modules/test"
1213
1314 "github.com/stretchr/testify/assert"
1415)
@@ -92,20 +93,8 @@ func Test_isGitRawOrLFSPath(t *testing.T) {
9293 true ,
9394 },
9495 }
95- lfsTests := []string {
96- "/owner/repo/info/lfs/" ,
97- "/owner/repo/info/lfs/objects/batch" ,
98- "/owner/repo/info/lfs/objects/oid/filename" ,
99- "/owner/repo/info/lfs/objects/oid" ,
100- "/owner/repo/info/lfs/objects" ,
101- "/owner/repo/info/lfs/verify" ,
102- "/owner/repo/info/lfs/locks" ,
103- "/owner/repo/info/lfs/locks/verify" ,
104- "/owner/repo/info/lfs/locks/123/unlock" ,
105- }
106-
107- origLFSStartServer := setting .LFS .StartServer
10896
97+ defer test .MockVariableValue (& setting .LFS .StartServer )()
10998 for _ , tt := range tests {
11099 t .Run (tt .path , func (t * testing.T ) {
111100 req , _ := http .NewRequest ("POST" , "http://localhost" + tt .path , nil )
@@ -116,6 +105,18 @@ func Test_isGitRawOrLFSPath(t *testing.T) {
116105 assert .Equal (t , tt .want , newAuthPathDetector (req ).isGitRawOrAttachOrLFSPath ())
117106 })
118107 }
108+
109+ lfsTests := []string {
110+ "/owner/repo/info/lfs/" ,
111+ "/owner/repo/info/lfs/objects/batch" ,
112+ "/owner/repo/info/lfs/objects/oid/filename" ,
113+ "/owner/repo/info/lfs/objects/oid" ,
114+ "/owner/repo/info/lfs/objects" ,
115+ "/owner/repo/info/lfs/verify" ,
116+ "/owner/repo/info/lfs/locks" ,
117+ "/owner/repo/info/lfs/locks/verify" ,
118+ "/owner/repo/info/lfs/locks/123/unlock" ,
119+ }
119120 for _ , tt := range lfsTests {
120121 t .Run (tt , func (t * testing.T ) {
121122 req , _ := http .NewRequest ("POST" , tt , nil )
@@ -128,5 +129,27 @@ func Test_isGitRawOrLFSPath(t *testing.T) {
128129 assert .Equalf (t , setting .LFS .StartServer , got , "isGitOrLFSPath(%q) = %v, want %v" , tt , got , setting .LFS .StartServer )
129130 })
130131 }
131- setting .LFS .StartServer = origLFSStartServer
132+ }
133+
134+ func Test_isFeedRequest (t * testing.T ) {
135+ tests := []struct {
136+ want bool
137+ path string
138+ }{
139+ {true , "/user.rss" },
140+ {true , "/user/repo.atom" },
141+ {false , "/user/repo" },
142+ {false , "/use/repo/file.rss" },
143+
144+ {true , "/org/repo/rss/branch/xxx" },
145+ {true , "/org/repo/atom/tag/xxx" },
146+ {false , "/org/repo/branch/main/rss/any" },
147+ {false , "/org/atom/any" },
148+ }
149+ for _ , tt := range tests {
150+ t .Run (tt .path , func (t * testing.T ) {
151+ req , _ := http .NewRequest ("GET" , "http://localhost" + tt .path , nil )
152+ assert .Equal (t , tt .want , newAuthPathDetector (req ).isFeedRequest (req ))
153+ })
154+ }
132155}
0 commit comments