diff options
author | Lauris BH <lauris@nix.lv> | 2018-01-05 20:56:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-05 20:56:50 +0200 |
commit | 8ac1501ad7f8b350bd9c1bf01b25f994fd3560f9 (patch) | |
tree | cf9b661996134da3e39aa6ddd2af4e13f7dbf30f /integrations/pull_merge_test.go | |
parent | a192f3052ed9b59d1404fdcebf2b5c156d6d6969 (diff) | |
download | gitea-8ac1501ad7f8b350bd9c1bf01b25f994fd3560f9.tar.gz gitea-8ac1501ad7f8b350bd9c1bf01b25f994fd3560f9.zip |
Add Pull Request merge options - Ignore white-space for conflict checking, Rebase, Squash merge (#3188)
* Pull request options migration and UI in settings
* Add ignore whitespace functionality
* Fix settings if pull requests are disabled
* Fix migration transaction
* Merge with Rebase functionality
* UI changes and related functionality for pull request merging button
* Implement squash functionality
* Fix rebase merging
* Fix pull request merge tests
* Add squash and rebase tests
* Fix API method to reuse default message functions
* Some refactoring and small fixes
* Remove more hardcoded values from tests
* Remove unneeded check from API method
* Fix variable name and comment typo
* Fix reset commit count after PR merge
Diffstat (limited to 'integrations/pull_merge_test.go')
-rw-r--r-- | integrations/pull_merge_test.go | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/integrations/pull_merge_test.go b/integrations/pull_merge_test.go index 65ccc93f95..b123239331 100644 --- a/integrations/pull_merge_test.go +++ b/integrations/pull_merge_test.go @@ -11,21 +11,23 @@ import ( "strings" "testing" + "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/test" "github.com/stretchr/testify/assert" ) -func testPullMerge(t *testing.T, session *TestSession, user, repo, pullnum string) *httptest.ResponseRecorder { +func testPullMerge(t *testing.T, session *TestSession, user, repo, pullnum string, mergeStyle models.MergeStyle) *httptest.ResponseRecorder { req := NewRequest(t, "GET", path.Join(user, repo, "pulls", pullnum)) resp := session.MakeRequest(t, req, http.StatusOK) // Click the little green button to create a pull htmlDoc := NewHTMLParser(t, resp.Body) - link, exists := htmlDoc.doc.Find("form.ui.form>button.ui.green.button").Parent().Attr("action") + link, exists := htmlDoc.doc.Find(".ui.form." + string(mergeStyle) + "-fields > form").Attr("action") assert.True(t, exists, "The template has changed") req = NewRequestWithValues(t, "POST", link, map[string]string{ "_csrf": htmlDoc.GetCSRF(), + "do": string(mergeStyle), }) resp = session.MakeRequest(t, req, http.StatusFound) @@ -58,7 +60,34 @@ func TestPullMerge(t *testing.T) { elem := strings.Split(test.RedirectURL(resp), "/") assert.EqualValues(t, "pulls", elem[3]) - testPullMerge(t, session, elem[1], elem[2], elem[4]) + testPullMerge(t, session, elem[1], elem[2], elem[4], models.MergeStyleMerge) +} + +func TestPullRebase(t *testing.T) { + prepareTestEnv(t) + session := loginUser(t, "user1") + testRepoFork(t, session, "user2", "repo1", "user1", "repo1") + testEditFile(t, session, "user1", "repo1", "master", "README.md", "Hello, World (Edited)\n") + + resp := testPullCreate(t, session, "user1", "repo1", "master") + + elem := strings.Split(test.RedirectURL(resp), "/") + assert.EqualValues(t, "pulls", elem[3]) + testPullMerge(t, session, elem[1], elem[2], elem[4], models.MergeStyleRebase) +} + +func TestPullSquash(t *testing.T) { + prepareTestEnv(t) + session := loginUser(t, "user1") + testRepoFork(t, session, "user2", "repo1", "user1", "repo1") + testEditFile(t, session, "user1", "repo1", "master", "README.md", "Hello, World (Edited)\n") + testEditFile(t, session, "user1", "repo1", "master", "README.md", "Hello, World (Edited!)\n") + + resp := testPullCreate(t, session, "user1", "repo1", "master") + + elem := strings.Split(test.RedirectURL(resp), "/") + assert.EqualValues(t, "pulls", elem[3]) + testPullMerge(t, session, elem[1], elem[2], elem[4], models.MergeStyleSquash) } func TestPullCleanUpAfterMerge(t *testing.T) { @@ -71,7 +100,7 @@ func TestPullCleanUpAfterMerge(t *testing.T) { elem := strings.Split(test.RedirectURL(resp), "/") assert.EqualValues(t, "pulls", elem[3]) - testPullMerge(t, session, elem[1], elem[2], elem[4]) + testPullMerge(t, session, elem[1], elem[2], elem[4], models.MergeStyleMerge) // Check PR branch deletion resp = testPullCleanUp(t, session, elem[1], elem[2], elem[4]) |