summaryrefslogtreecommitdiffstats
path: root/integrations/editor_test.go
diff options
context:
space:
mode:
authorLauris BH <lauris@nix.lv>2017-06-21 04:00:03 +0300
committerLunny Xiao <xiaolunwen@gmail.com>2017-06-21 09:00:03 +0800
commit0a5dc640a12d1c0475052b73a721056b53460275 (patch)
tree0296d1ac30ae82269eed06daed3eb1d9bc468c2d /integrations/editor_test.go
parent6db387a21e245dc4aa7f009ca60574e42d934ffb (diff)
downloadgitea-0a5dc640a12d1c0475052b73a721056b53460275.tar.gz
gitea-0a5dc640a12d1c0475052b73a721056b53460275.zip
Make branch deletion URL more like GitHub's, fixes #1397 (#1994)
* Make branch deletion URL more like GitHub's, fixes #1397 * Add PR branch deletion integration test * Do not allow deleting protected branch * Change http error code to 403 if user has no write rights to repository * Add check to not panic if forked repository has alrady been deleted
Diffstat (limited to 'integrations/editor_test.go')
-rw-r--r--integrations/editor_test.go43
1 files changed, 43 insertions, 0 deletions
diff --git a/integrations/editor_test.go b/integrations/editor_test.go
index 24cb8f1967..32eb07fa91 100644
--- a/integrations/editor_test.go
+++ b/integrations/editor_test.go
@@ -126,8 +126,51 @@ func testEditFile(t *testing.T, session *TestSession, user, repo, branch, filePa
return resp
}
+func testEditFileToNewBranch(t *testing.T, session *TestSession, user, repo, branch, targetBranch, filePath string) *TestResponse {
+
+ newContent := "Hello, World (Edited)\n"
+
+ // Get to the 'edit this file' page
+ req := NewRequest(t, "GET", path.Join(user, repo, "_edit", branch, filePath))
+ resp := session.MakeRequest(t, req)
+ assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+
+ htmlDoc := NewHTMLParser(t, resp.Body)
+ lastCommit := htmlDoc.GetInputValueByName("last_commit")
+ assert.NotEmpty(t, lastCommit)
+
+ // Submit the edits
+ req = NewRequestWithValues(t, "POST", path.Join(user, repo, "_edit", branch, filePath),
+ map[string]string{
+ "_csrf": htmlDoc.GetCSRF(),
+ "last_commit": lastCommit,
+ "tree_path": filePath,
+ "content": newContent,
+ "commit_choice": "commit-to-new-branch",
+ "new_branch_name": targetBranch,
+ },
+ )
+ req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
+ resp = session.MakeRequest(t, req)
+ assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
+
+ // Verify the change
+ req = NewRequest(t, "GET", path.Join(user, repo, "raw", targetBranch, filePath))
+ resp = session.MakeRequest(t, req)
+ assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+ assert.EqualValues(t, newContent, string(resp.Body))
+
+ return resp
+}
+
func TestEditFile(t *testing.T) {
prepareTestEnv(t)
session := loginUser(t, "user2")
testEditFile(t, session, "user2", "repo1", "master", "README.md")
}
+
+func TestEditFileToNewBranch(t *testing.T) {
+ prepareTestEnv(t)
+ session := loginUser(t, "user2")
+ testEditFileToNewBranch(t, session, "user2", "repo1", "master", "feature/test", "README.md")
+}