@@ -10,11 +10,13 @@ import (
1010 "code.gitea.io/gitea/models/unittest"
1111 "code.gitea.io/gitea/modules/gitrepo"
1212 api "code.gitea.io/gitea/modules/structs"
13+ "code.gitea.io/gitea/routers/api/v1/utils"
1314 "code.gitea.io/gitea/services/contexttest"
1415
1516 _ "code.gitea.io/gitea/models/actions"
1617
1718 "github.com/stretchr/testify/assert"
19+ "github.com/stretchr/testify/require"
1820)
1921
2022func TestMain (m * testing.M ) {
@@ -64,18 +66,13 @@ func TestGetContents(t *testing.T) {
6466 defer ctx .Repo .GitRepo .Close ()
6567
6668 treePath := "README.md"
67- ref := ctx .Repo .Repository .DefaultBranch
69+ refCommit , err := utils .ResolveRefCommit (ctx , ctx .Repo .Repository , ctx .Repo .Repository .DefaultBranch )
70+ require .NoError (t , err )
6871
6972 expectedContentsResponse := getExpectedReadmeContentsResponse ()
7073
7174 t .Run ("Get README.md contents with GetContents(ctx, )" , func (t * testing.T ) {
72- fileContentResponse , err := GetContents (ctx , ctx .Repo .Repository , treePath , ref , false )
73- assert .Equal (t , expectedContentsResponse , fileContentResponse )
74- assert .NoError (t , err )
75- })
76-
77- t .Run ("Get README.md contents with ref as empty string (should then use the repo's default branch) with GetContents(ctx, )" , func (t * testing.T ) {
78- fileContentResponse , err := GetContents (ctx , ctx .Repo .Repository , treePath , "" , false )
75+ fileContentResponse , err := GetContents (ctx , ctx .Repo .Repository , refCommit , treePath , false )
7976 assert .Equal (t , expectedContentsResponse , fileContentResponse )
8077 assert .NoError (t , err )
8178 })
@@ -92,7 +89,8 @@ func TestGetContentsOrListForDir(t *testing.T) {
9289 defer ctx .Repo .GitRepo .Close ()
9390
9491 treePath := "" // root dir
95- ref := ctx .Repo .Repository .DefaultBranch
92+ refCommit , err := utils .ResolveRefCommit (ctx , ctx .Repo .Repository , ctx .Repo .Repository .DefaultBranch )
93+ require .NoError (t , err )
9694
9795 readmeContentsResponse := getExpectedReadmeContentsResponse ()
9896 // because will be in a list, doesn't have encoding and content
@@ -104,13 +102,7 @@ func TestGetContentsOrListForDir(t *testing.T) {
104102 }
105103
106104 t .Run ("Get root dir contents with GetContentsOrList(ctx, )" , func (t * testing.T ) {
107- fileContentResponse , err := GetContentsOrList (ctx , ctx .Repo .Repository , treePath , ref )
108- assert .EqualValues (t , expectedContentsListResponse , fileContentResponse )
109- assert .NoError (t , err )
110- })
111-
112- t .Run ("Get root dir contents with ref as empty string (should then use the repo's default branch) with GetContentsOrList(ctx, )" , func (t * testing.T ) {
113- fileContentResponse , err := GetContentsOrList (ctx , ctx .Repo .Repository , treePath , "" )
105+ fileContentResponse , err := GetContentsOrList (ctx , ctx .Repo .Repository , refCommit , treePath )
114106 assert .EqualValues (t , expectedContentsListResponse , fileContentResponse )
115107 assert .NoError (t , err )
116108 })
@@ -127,18 +119,13 @@ func TestGetContentsOrListForFile(t *testing.T) {
127119 defer ctx .Repo .GitRepo .Close ()
128120
129121 treePath := "README.md"
130- ref := ctx .Repo .Repository .DefaultBranch
122+ refCommit , err := utils .ResolveRefCommit (ctx , ctx .Repo .Repository , ctx .Repo .Repository .DefaultBranch )
123+ require .NoError (t , err )
131124
132125 expectedContentsResponse := getExpectedReadmeContentsResponse ()
133126
134127 t .Run ("Get README.md contents with GetContentsOrList(ctx, )" , func (t * testing.T ) {
135- fileContentResponse , err := GetContentsOrList (ctx , ctx .Repo .Repository , treePath , ref )
136- assert .EqualValues (t , expectedContentsResponse , fileContentResponse )
137- assert .NoError (t , err )
138- })
139-
140- t .Run ("Get README.md contents with ref as empty string (should then use the repo's default branch) with GetContentsOrList(ctx, )" , func (t * testing.T ) {
141- fileContentResponse , err := GetContentsOrList (ctx , ctx .Repo .Repository , treePath , "" )
128+ fileContentResponse , err := GetContentsOrList (ctx , ctx .Repo .Repository , refCommit , treePath )
142129 assert .EqualValues (t , expectedContentsResponse , fileContentResponse )
143130 assert .NoError (t , err )
144131 })
@@ -155,24 +142,16 @@ func TestGetContentsErrors(t *testing.T) {
155142 defer ctx .Repo .GitRepo .Close ()
156143
157144 repo := ctx .Repo .Repository
158- treePath := "README.md"
159- ref := repo . DefaultBranch
145+ refCommit , err := utils . ResolveRefCommit ( ctx , ctx . Repo . Repository , ctx . Repo . Repository . DefaultBranch )
146+ require . NoError ( t , err )
160147
161148 t .Run ("bad treePath" , func (t * testing.T ) {
162149 badTreePath := "bad/tree.md"
163- fileContentResponse , err := GetContents (ctx , repo , badTreePath , ref , false )
150+ fileContentResponse , err := GetContents (ctx , repo , refCommit , badTreePath , false )
164151 assert .Error (t , err )
165152 assert .EqualError (t , err , "object does not exist [id: , rel_path: bad]" )
166153 assert .Nil (t , fileContentResponse )
167154 })
168-
169- t .Run ("bad ref" , func (t * testing.T ) {
170- badRef := "bad_ref"
171- fileContentResponse , err := GetContents (ctx , repo , treePath , badRef , false )
172- assert .Error (t , err )
173- assert .EqualError (t , err , "object does not exist [id: " + badRef + ", rel_path: ]" )
174- assert .Nil (t , fileContentResponse )
175- })
176155}
177156
178157func TestGetContentsOrListErrors (t * testing.T ) {
@@ -186,42 +165,16 @@ func TestGetContentsOrListErrors(t *testing.T) {
186165 defer ctx .Repo .GitRepo .Close ()
187166
188167 repo := ctx .Repo .Repository
189- treePath := "README.md"
190- ref := repo . DefaultBranch
168+ refCommit , err := utils . ResolveRefCommit ( ctx , ctx . Repo . Repository , ctx . Repo . Repository . DefaultBranch )
169+ require . NoError ( t , err )
191170
192171 t .Run ("bad treePath" , func (t * testing.T ) {
193172 badTreePath := "bad/tree.md"
194- fileContentResponse , err := GetContentsOrList (ctx , repo , badTreePath , ref )
173+ fileContentResponse , err := GetContentsOrList (ctx , repo , refCommit , badTreePath )
195174 assert .Error (t , err )
196175 assert .EqualError (t , err , "object does not exist [id: , rel_path: bad]" )
197176 assert .Nil (t , fileContentResponse )
198177 })
199-
200- t .Run ("bad ref" , func (t * testing.T ) {
201- badRef := "bad_ref"
202- fileContentResponse , err := GetContentsOrList (ctx , repo , treePath , badRef )
203- assert .Error (t , err )
204- assert .EqualError (t , err , "object does not exist [id: " + badRef + ", rel_path: ]" )
205- assert .Nil (t , fileContentResponse )
206- })
207- }
208-
209- func TestGetContentsOrListOfEmptyRepos (t * testing.T ) {
210- unittest .PrepareTestEnv (t )
211- ctx , _ := contexttest .MockContext (t , "user30/empty" )
212- ctx .SetPathParam ("id" , "52" )
213- contexttest .LoadRepo (t , ctx , 52 )
214- contexttest .LoadUser (t , ctx , 30 )
215- contexttest .LoadGitRepo (t , ctx )
216- defer ctx .Repo .GitRepo .Close ()
217-
218- repo := ctx .Repo .Repository
219-
220- t .Run ("empty repo" , func (t * testing.T ) {
221- contents , err := GetContentsOrList (ctx , repo , "" , "" )
222- assert .NoError (t , err )
223- assert .Empty (t , contents )
224- })
225178}
226179
227180func TestGetBlobBySHA (t * testing.T ) {
0 commit comments