@@ -9,7 +9,10 @@ import (
9
9
"net/url"
10
10
"testing"
11
11
12
+ "code.gitea.io/gitea/modules/util"
13
+
12
14
"github.com/stretchr/testify/assert"
15
+ "github.com/stretchr/testify/require"
13
16
)
14
17
15
18
func TestGitSmartHTTP (t * testing.T ) {
@@ -18,51 +21,55 @@ func TestGitSmartHTTP(t *testing.T) {
18
21
19
22
func testGitSmartHTTP (t * testing.T , u * url.URL ) {
20
23
kases := []struct {
21
- p string
22
- code int
24
+ method , path string
25
+ code int
23
26
}{
24
27
{
25
- p : "user2/repo1/info/refs" ,
28
+ path : "user2/repo1/info/refs" ,
26
29
code : http .StatusOK ,
27
30
},
28
31
{
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" ,
30
38
code : http .StatusOK ,
31
39
},
32
40
{
33
- p : "user2/repo1/objects/info/alternates" ,
41
+ path : "user2/repo1/objects/info/alternates" ,
34
42
code : http .StatusNotFound ,
35
43
},
36
44
{
37
- p : "user2/repo1/objects/info/http-alternates" ,
45
+ path : "user2/repo1/objects/info/http-alternates" ,
38
46
code : http .StatusNotFound ,
39
47
},
40
48
{
41
- p : "user2/repo1/../../custom/conf/app.ini" ,
49
+ path : "user2/repo1/../../custom/conf/app.ini" ,
42
50
code : http .StatusNotFound ,
43
51
},
44
52
{
45
- p : "user2/repo1/objects/info/../../../../custom/conf/app.ini" ,
53
+ path : "user2/repo1/objects/info/../../../../custom/conf/app.ini" ,
46
54
code : http .StatusNotFound ,
47
55
},
48
56
{
49
- p : `user2/repo1/objects/info/..\..\..\..\custom\conf\app.ini` ,
57
+ path : `user2/repo1/objects/info/..\..\..\..\custom\conf\app.ini` ,
50
58
code : http .StatusBadRequest ,
51
59
},
52
60
}
53
61
54
62
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 )
59
66
req .SetBasicAuth ("user2" , userPassword )
60
67
resp , err := http .DefaultClient .Do (req )
61
- assert .NoError (t , err )
68
+ require .NoError (t , err )
62
69
defer resp .Body .Close ()
63
70
assert .EqualValues (t , kase .code , resp .StatusCode )
64
71
_ , err = io .ReadAll (resp .Body )
65
- assert .NoError (t , err )
72
+ require .NoError (t , err )
66
73
})
67
74
}
68
75
}
0 commit comments