@@ -538,35 +538,71 @@ func TestConflictChecking(t *testing.T) {
538538
539539func  TestPullRetargetChildOnBranchDelete (t  * testing.T ) {
540540	onGiteaRun (t , func (t  * testing.T , giteaURL  * url.URL ) {
541- 		session  :=  loginUser (t , "user1" )
542- 		testEditFileToNewBranch (t , session , "user2" , "repo1" , "master" , "base-pr" , "README.md" , "Hello, World\n (Edited - TestPullRetargetOnCleanup - base PR)\n " )
543- 		testRepoFork (t , session , "user2" , "repo1" , "user1" , "repo1" , "" )
544- 		testEditFileToNewBranch (t , session , "user1" , "repo1" , "base-pr" , "child-pr" , "README.md" , "Hello, World\n (Edited - TestPullRetargetOnCleanup - base PR)\n (Edited - TestPullRetargetOnCleanup - child PR)" )
541+ 		session  :=  loginUser (t , "user2" )
542+ 		testEditFileToNewBranch (t , session , "user2" , "repo1" , "master" , "branch-1" , "README.md" , "1" )
543+ 		testEditFileToNewBranch (t , session , "user2" , "repo1" , "branch-1" , "branch-2" , "README.md" , "2" )
544+ 		testEditFileToNewBranch (t , session , "user2" , "repo1" , "branch-2" , "branch-3" , "README.md" , "3" )
545+ 		testEditFileToNewBranch (t , session , "user2" , "repo1" , "branch-3" , "branch-4" , "README.md" , "4" )
545546
546- 		respBasePR  :=  testPullCreate (t , session , "user2" , "repo1" , true , "master" , "base-pr" , "Base Pull Request" )
547- 		elemBasePR  :=  strings .Split (test .RedirectURL (respBasePR ), "/" )
548- 		assert .Equal (t , "pulls" , elemBasePR [3 ])
547+ 		respPR1  :=  testPullCreate (t , session , "user2" , "repo1" , false , "master" , "branch-1" , "PR branch-1 > master" )
548+ 		respPR2  :=  testPullCreate (t , session , "user2" , "repo1" , false , "branch-1" , "branch-2" , "PR branch-2 > branch-1" )
549+ 		respPR3  :=  testPullCreate (t , session , "user2" , "repo1" , false , "branch-2" , "branch-3" , "PR branch-3 > branch-2" )
550+ 		respPR4  :=  testPullCreate (t , session , "user2" , "repo1" , false , "branch-3" , "branch-4" , "PR branch-4 > branch-3" )
549551
550- 		respChildPR  :=  testPullCreate (t , session , "user1" , "repo1" , false , "base-pr" , "child-pr" , "Child Pull Request" )
551- 		elemChildPR  :=  strings .Split (test .RedirectURL (respChildPR ), "/" )
552- 		assert .Equal (t , "pulls" , elemChildPR [3 ])
553- 
554- 		testPullMerge (t , session , elemBasePR [1 ], elemBasePR [2 ], elemBasePR [4 ], repo_model .MergeStyleMerge , true )
552+ 		elemPR2  :=  strings .Split (test .RedirectURL (respPR2 ), "/" )
553+ 		testPullMerge (t , session , elemPR2 [1 ], elemPR2 [2 ], elemPR2 [4 ], repo_model .MergeStyleMerge , true )
555554
556555		repo1  :=  unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {OwnerName : "user2" , Name : "repo1" })
557- 		branchBasePR  :=  unittest .AssertExistsAndLoadBean (t , & git_model.Branch {RepoID : repo1 .ID , Name : "base-pr" })
558- 		assert .True (t , branchBasePR .IsDeleted )
556+ 		mergedPR  :=  unittest .AssertExistsAndLoadBean (t , & git_model.Branch {RepoID : repo1 .ID , Name : "branch-2" })
557+ 		assert .True (t , mergedPR .IsDeleted )
558+ 		{
559+ 			// Check PR branch-1 > master is unchanged 
560+ 			req  :=  NewRequest (t , "GET" , test .RedirectURL (respPR1 ))
561+ 			resp  :=  session .MakeRequest (t , req , http .StatusOK )
562+ 
563+ 			htmlDoc  :=  NewHTMLParser (t , resp .Body )
564+ 			targetBranch  :=  htmlDoc .doc .Find ("#branch_target>a" ).Text ()
565+ 			prStatus  :=  strings .TrimSpace (htmlDoc .doc .Find (".issue-title-meta>.issue-state-label" ).Text ())
566+ 
567+ 			assert .Equal (t , "master" , targetBranch )
568+ 			assert .Equal (t , "Open" , prStatus )
569+ 		}
570+ 		{
571+ 			// Check PR branch-2 > branch-1 is merged 
572+ 			req  :=  NewRequest (t , "GET" , test .RedirectURL (respPR2 ))
573+ 			resp  :=  session .MakeRequest (t , req , http .StatusOK )
559574
560- 		// Check child PR 
561- 		req  :=  NewRequest ( t ,  "GET" ,  test . RedirectURL ( respChildPR ) )
562- 		resp  :=  session . MakeRequest ( t ,  req ,  http . StatusOK )
575+ 			 htmlDoc   :=   NewHTMLParser ( t ,  resp . Body ) 
576+ 			 targetBranch  :=  htmlDoc . doc . Find ( "#branch_target>a" ). Text ( )
577+ 			 prStatus  :=  strings . TrimSpace ( htmlDoc . doc . Find ( ".issue-title-meta>.issue-state-label" ). Text () )
563578
564- 		htmlDoc  :=  NewHTMLParser (t , resp .Body )
565- 		targetBranch  :=  htmlDoc .doc .Find ("#branch_target>a" ).Text ()
566- 		prStatus  :=  strings .TrimSpace (htmlDoc .doc .Find (".issue-title-meta>.issue-state-label" ).Text ())
579+ 			assert .Empty (t , targetBranch )
580+ 			assert .Equal (t , "Merged" , prStatus )
581+ 		}
582+ 		{
583+ 			// Check PR branch-3 > branch-2 is rerouted to branch-1 
584+ 			req  :=  NewRequest (t , "GET" , test .RedirectURL (respPR3 ))
585+ 			resp  :=  session .MakeRequest (t , req , http .StatusOK )
567586
568- 		assert .Equal (t , "master" , targetBranch )
569- 		assert .Equal (t , "Open" , prStatus )
587+ 			htmlDoc  :=  NewHTMLParser (t , resp .Body )
588+ 			targetBranch  :=  htmlDoc .doc .Find ("#branch_target>a" ).Text ()
589+ 			prStatus  :=  strings .TrimSpace (htmlDoc .doc .Find (".issue-title-meta>.issue-state-label" ).Text ())
590+ 
591+ 			assert .Equal (t , "branch-1" , targetBranch )
592+ 			assert .Equal (t , "Open" , prStatus )
593+ 		}
594+ 		{
595+ 			// Check PR branch-4 > branch-3 is unchanged 
596+ 			req  :=  NewRequest (t , "GET" , test .RedirectURL (respPR4 ))
597+ 			resp  :=  session .MakeRequest (t , req , http .StatusOK )
598+ 
599+ 			htmlDoc  :=  NewHTMLParser (t , resp .Body )
600+ 			targetBranch  :=  htmlDoc .doc .Find ("#branch_target>a" ).Text ()
601+ 			prStatus  :=  strings .TrimSpace (htmlDoc .doc .Find (".issue-title-meta>.issue-state-label" ).Text ())
602+ 
603+ 			assert .Equal (t , "branch-3" , targetBranch )
604+ 			assert .Equal (t , "Open" , prStatus )
605+ 		}
570606	})
571607}
572608
0 commit comments