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