@@ -32,6 +32,25 @@ func testPullMerge(t *testing.T, session *TestSession, user, repo, pullnum strin
32
32
return resp
33
33
}
34
34
35
+ func testPullCleanUp (t * testing.T , session * TestSession , user , repo , pullnum string ) * TestResponse {
36
+ req := NewRequest (t , "GET" , path .Join (user , repo , "pulls" , pullnum ))
37
+ resp := session .MakeRequest (t , req )
38
+ assert .EqualValues (t , http .StatusOK , resp .HeaderCode )
39
+
40
+ // Click the little green button to craete a pull
41
+ htmlDoc := NewHTMLParser (t , resp .Body )
42
+ link , exists := htmlDoc .doc .Find (".comments .merge .delete-button" ).Attr ("data-url" )
43
+ assert .True (t , exists , "The template has changed" )
44
+ req = NewRequestWithValues (t , "POST" , link , map [string ]string {
45
+ "_csrf" : htmlDoc .GetCSRF (),
46
+ })
47
+ req .Header .Add ("Content-Type" , "application/x-www-form-urlencoded" )
48
+ resp = session .MakeRequest (t , req )
49
+ assert .EqualValues (t , http .StatusOK , resp .HeaderCode )
50
+
51
+ return resp
52
+ }
53
+
35
54
func TestPullMerge (t * testing.T ) {
36
55
prepareTestEnv (t )
37
56
session := loginUser (t , "user1" )
@@ -46,3 +65,40 @@ func TestPullMerge(t *testing.T) {
46
65
assert .EqualValues (t , "pulls" , elem [3 ])
47
66
testPullMerge (t , session , elem [1 ], elem [2 ], elem [4 ])
48
67
}
68
+
69
+ func TestPullCleanUpAfterMerge (t * testing.T ) {
70
+ prepareTestEnv (t )
71
+ session := loginUser (t , "user1" )
72
+ testRepoFork (t , session )
73
+ testEditFileToNewBranch (t , session , "user1" , "repo1" , "master" , "feature/test" , "README.md" )
74
+
75
+ resp := testPullCreate (t , session , "user1" , "repo1" , "feature/test" )
76
+ redirectedURL := resp .Headers ["Location" ]
77
+ assert .NotEmpty (t , redirectedURL , "Redirected URL is not found" )
78
+
79
+ elem := strings .Split (redirectedURL [0 ], "/" )
80
+ assert .EqualValues (t , "pulls" , elem [3 ])
81
+ testPullMerge (t , session , elem [1 ], elem [2 ], elem [4 ])
82
+
83
+ // Check PR branch deletion
84
+ resp = testPullCleanUp (t , session , elem [1 ], elem [2 ], elem [4 ])
85
+ respJSON := struct {
86
+ Redirect string
87
+ }{}
88
+ DecodeJSON (t , resp , & respJSON )
89
+
90
+ assert .NotEmpty (t , respJSON .Redirect , "Redirected URL is not found" )
91
+
92
+ elem = strings .Split (respJSON .Redirect , "/" )
93
+ assert .EqualValues (t , "pulls" , elem [3 ])
94
+
95
+ // Check branch deletion result
96
+ req := NewRequest (t , "GET" , respJSON .Redirect )
97
+ resp = session .MakeRequest (t , req )
98
+ assert .EqualValues (t , http .StatusOK , resp .HeaderCode )
99
+
100
+ htmlDoc := NewHTMLParser (t , resp .Body )
101
+ resultMsg := htmlDoc .doc .Find (".ui.message>p" ).Text ()
102
+
103
+ assert .EqualValues (t , "user1/feature/test has been deleted." , resultMsg )
104
+ }
0 commit comments