@@ -9,7 +9,10 @@ import (
99 "net/url"
1010 "testing"
1111
12+ "code.gitea.io/gitea/modules/util"
13+
1214 "github.com/stretchr/testify/assert"
15+ "github.com/stretchr/testify/require"
1316)
1417
1518func TestGitSmartHTTP (t * testing.T ) {
@@ -18,51 +21,55 @@ func TestGitSmartHTTP(t *testing.T) {
1821
1922func testGitSmartHTTP (t * testing.T , u * url.URL ) {
2023 kases := []struct {
21- p string
22- code int
24+ method , path string
25+ code int
2326 }{
2427 {
25- p : "user2/repo1/info/refs" ,
28+ path : "user2/repo1/info/refs" ,
2629 code : http .StatusOK ,
2730 },
2831 {
29- p : "user2/repo1/HEAD" ,
32+ method : "HEAD" ,
33+ path : "user2/repo1/info/refs" ,
34+ code : http .StatusOK ,
35+ },
36+ {
37+ path : "user2/repo1/HEAD" ,
3038 code : http .StatusOK ,
3139 },
3240 {
33- p : "user2/repo1/objects/info/alternates" ,
41+ path : "user2/repo1/objects/info/alternates" ,
3442 code : http .StatusNotFound ,
3543 },
3644 {
37- p : "user2/repo1/objects/info/http-alternates" ,
45+ path : "user2/repo1/objects/info/http-alternates" ,
3846 code : http .StatusNotFound ,
3947 },
4048 {
41- p : "user2/repo1/../../custom/conf/app.ini" ,
49+ path : "user2/repo1/../../custom/conf/app.ini" ,
4250 code : http .StatusNotFound ,
4351 },
4452 {
45- p : "user2/repo1/objects/info/../../../../custom/conf/app.ini" ,
53+ path : "user2/repo1/objects/info/../../../../custom/conf/app.ini" ,
4654 code : http .StatusNotFound ,
4755 },
4856 {
49- p : `user2/repo1/objects/info/..\..\..\..\custom\conf\app.ini` ,
57+ path : `user2/repo1/objects/info/..\..\..\..\custom\conf\app.ini` ,
5058 code : http .StatusBadRequest ,
5159 },
5260 }
5361
5462 for _ , kase := range kases {
55- t .Run (kase .p , func (t * testing.T ) {
56- p := u .String () + kase .p
57- req , err := http .NewRequest ("GET" , p , nil )
58- assert .NoError (t , err )
63+ t .Run (kase .path , func (t * testing.T ) {
64+ req , err := http .NewRequest (util .IfZero (kase .method , "GET" ), u .String ()+ kase .path , nil )
65+ require .NoError (t , err )
5966 req .SetBasicAuth ("user2" , userPassword )
6067 resp , err := http .DefaultClient .Do (req )
61- assert .NoError (t , err )
68+ require .NoError (t , err )
6269 defer resp .Body .Close ()
6370 assert .EqualValues (t , kase .code , resp .StatusCode )
6471 _ , err = io .ReadAll (resp .Body )
65- assert .NoError (t , err )
72+ require .NoError (t , err )
6673 })
6774 }
6875}
0 commit comments