@@ -255,3 +255,105 @@ index %s..%s 100644
255255 assert .Equal (t , expected , resp .Body .String ())
256256 })
257257}
258+
259+ func TestCompareRawDiffNormalSameOwnerDifferentRepo (t * testing.T ) {
260+ onGiteaRun (t , func (t * testing.T , u * url.URL ) {
261+ user1 := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : 1 })
262+ repo , err := repo_service .CreateRepositoryDirectly (db .DefaultContext , user1 , user1 , repo_service.CreateRepoOptions {
263+ Name : "test_raw_diff" ,
264+ Readme : "Default" ,
265+ AutoInit : true ,
266+ DefaultBranch : "main" ,
267+ }, true )
268+ assert .NoError (t , err )
269+ session := loginUser (t , user1 .Name )
270+
271+ headRepo , err := repo_service .CreateRepositoryDirectly (db .DefaultContext , user1 , user1 , repo_service.CreateRepoOptions {
272+ Name : "test_raw_diff_head" ,
273+ Readme : "Default" ,
274+ AutoInit : true ,
275+ DefaultBranch : "main" ,
276+ }, true )
277+ assert .NoError (t , err )
278+
279+ r , _ := gitrepo .OpenRepository (db .DefaultContext , repo )
280+ hr , _ := gitrepo .OpenRepository (db .DefaultContext , headRepo )
281+
282+ oldRef , _ := r .GetBranchCommit (repo .DefaultBranch )
283+ oldBlobRef , _ := r .RevParse (oldRef .ID .String (), "README.md" )
284+
285+ testEditFile (t , session , user1 .Name , headRepo .Name , "main" , "README.md" , strings .Repeat ("a\n " , 2 ))
286+
287+ newRef , _ := hr .GetBranchCommit (headRepo .DefaultBranch )
288+ newBlobRef , _ := hr .RevParse (newRef .ID .String (), "README.md" )
289+
290+ req := NewRequest (t , "GET" , fmt .Sprintf ("/user1/test_raw_diff/compare/%s...%s/%s:%s.diff" , oldRef .ID .String (), user1 .LowerName , headRepo .LowerName , newRef .ID .String ()))
291+ resp := session .MakeRequest (t , req , http .StatusOK )
292+
293+ expected := fmt .Sprintf (`diff --git a/README.md b/README.md
294+ index %s..%s 100644
295+ --- a/README.md
296+ +++ b/README.md
297+ @@ -1,2 +1,2 @@
298+ -# test_raw_diff
299+ -
300+ +a
301+ +a
302+ ` , oldBlobRef [:7 ], newBlobRef [:7 ])
303+ assert .Equal (t , expected , resp .Body .String ())
304+ })
305+ }
306+
307+ func TestCompareRawDiffNormalAcrossForks (t * testing.T ) {
308+ onGiteaRun (t , func (t * testing.T , u * url.URL ) {
309+ user1 := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : 1 })
310+ user2 := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : 2 })
311+
312+ repo , err := repo_service .CreateRepositoryDirectly (db .DefaultContext , user1 , user1 , repo_service.CreateRepoOptions {
313+ Name : "test_raw_diff" ,
314+ Readme : "Default" ,
315+ AutoInit : true ,
316+ DefaultBranch : "main" ,
317+ }, true )
318+ assert .NoError (t , err )
319+
320+ headRepo , err := repo_service .ForkRepository (db .DefaultContext , user2 , user2 , repo_service.ForkRepoOptions {
321+ BaseRepo : repo ,
322+ Name : repo .Name ,
323+ Description : repo .Description ,
324+ SingleBranch : "" ,
325+ })
326+ assert .NoError (t , err )
327+
328+ session := loginUser (t , user2 .Name )
329+
330+ r , _ := gitrepo .OpenRepository (db .DefaultContext , repo )
331+ hr , _ := gitrepo .OpenRepository (db .DefaultContext , headRepo )
332+
333+ oldRef , _ := r .GetBranchCommit (repo .DefaultBranch )
334+ oldBlobRef , _ := r .RevParse (oldRef .ID .String (), "README.md" )
335+
336+ testEditFile (t , session , user2 .Name , headRepo .Name , "main" , "README.md" , strings .Repeat ("a\n " , 2 ))
337+ session = loginUser (t , user1 .Name )
338+
339+ newRef , _ := hr .GetBranchCommit (headRepo .DefaultBranch )
340+ newBlobRef , _ := hr .RevParse (newRef .ID .String (), "README.md" )
341+
342+ session = loginUser (t , user1 .Name )
343+
344+ req := NewRequest (t , "GET" , fmt .Sprintf ("/user1/test_raw_diff/compare/%s...%s:%s.diff" , oldRef .ID .String (), user2 .LowerName , newRef .ID .String ()))
345+ resp := session .MakeRequest (t , req , http .StatusOK )
346+
347+ expected := fmt .Sprintf (`diff --git a/README.md b/README.md
348+ index %s..%s 100644
349+ --- a/README.md
350+ +++ b/README.md
351+ @@ -1,2 +1,2 @@
352+ -# test_raw_diff
353+ -
354+ +a
355+ +a
356+ ` , oldBlobRef [:7 ], newBlobRef [:7 ])
357+ assert .Equal (t , expected , resp .Body .String ())
358+ })
359+ }
0 commit comments