]> source.dussan.org Git - gitea.git/commitdiff
Less verbose integration tests (#2123)
authorEthan Koenig <etk39@cornell.edu>
Fri, 7 Jul 2017 19:36:47 +0000 (15:36 -0400)
committerKim "BKC" Carlbäcker <kim.carlbacker@gmail.com>
Fri, 7 Jul 2017 19:36:47 +0000 (21:36 +0200)
* Helper functions for intergration test boilerplate

24 files changed:
integrations/api_branch_test.go
integrations/api_comment_test.go
integrations/api_issue_label_test.go
integrations/api_issue_test.go
integrations/api_pull_test.go
integrations/api_repo_test.go
integrations/api_team_test.go
integrations/change_default_branch_test.go
integrations/delete_user_test.go
integrations/editor_test.go
integrations/integration_test.go
integrations/internal_test.go
integrations/issue_test.go
integrations/pull_compare_test.go
integrations/pull_create_test.go
integrations/pull_merge_test.go
integrations/release_test.go
integrations/repo_commits_test.go
integrations/repo_fork_test.go
integrations/repo_migrate_test.go
integrations/repo_test.go
integrations/signup_test.go
integrations/user_test.go
integrations/version_test.go

index 79adfaa4f72ac158e4a46edda4852c12618509b4..8701229b09792f379ad80d2a5127091c825f14cf 100644 (file)
@@ -18,7 +18,7 @@ func testAPIGetBranch(t *testing.T, branchName string, exists bool) {
 
        session := loginUser(t, "user2")
        req := NewRequestf(t, "GET", "/api/v1/repos/user2/repo1/branches/%s", branchName)
-       resp := session.MakeRequest(t, req)
+       resp := session.MakeRequest(t, req, NoExpectedStatus)
        if !exists {
                assert.EqualValues(t, http.StatusNotFound, resp.HeaderCode)
                return
index cdf411036ad1bbbe8ac741c2c5161827c1c87ecb..74983b2c8044dca6287564109178c9053140101d 100644 (file)
@@ -26,8 +26,7 @@ func TestAPIListComments(t *testing.T) {
        session := loginUser(t, repoOwner.Name)
        req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/%d/comments",
                repoOwner.Name, repo.Name, issue.Index)
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
 
        var comments []*api.Comment
        DecodeJSON(t, resp, &comments)
index 2014d38e7d50966d21d2653615cf32c9f9e839fb..195ec24ca8b22d2742d0165acf77fc469a9d98c8 100644 (file)
@@ -29,8 +29,7 @@ func TestAPIAddIssueLabels(t *testing.T) {
                Labels: []int64{label.ID},
        })
        session := loginUser(t, owner.Name)
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
        var apiLabels []*api.Label
        DecodeJSON(t, resp, &apiLabels)
        assert.Len(t, apiLabels, models.GetCount(t, &models.IssueLabel{IssueID: issue.ID}))
@@ -52,8 +51,7 @@ func TestAPIReplaceIssueLabels(t *testing.T) {
                Labels: []int64{label.ID},
        })
        session := loginUser(t, owner.Name)
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
        var apiLabels []*api.Label
        DecodeJSON(t, resp, &apiLabels)
        assert.Len(t, apiLabels, 1)
index 63dd9459b0c95ddac6304e5b9694d5ed3897901d..74436ffe9e789942f4778fc8c885f7b537791113 100644 (file)
@@ -24,8 +24,7 @@ func TestAPIListIssues(t *testing.T) {
        session := loginUser(t, owner.Name)
        req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues?state=all",
                owner.Name, repo.Name)
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
        var apiIssues []*api.Issue
        DecodeJSON(t, resp, &apiIssues)
        assert.Len(t, apiIssues, models.GetCount(t, &models.Issue{RepoID: repo.ID}))
@@ -49,8 +48,7 @@ func TestAPICreateIssue(t *testing.T) {
                Title:    title,
                Assignee: owner.Name,
        })
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusCreated, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusCreated)
        var apiIssue api.Issue
        DecodeJSON(t, resp, &apiIssue)
        assert.Equal(t, apiIssue.Body, body)
index 605f51ef965cafa1f5754a869365c1123794bfbe..b9bab920e18f3062a679453c68ea3460da41948e 100644 (file)
@@ -21,8 +21,7 @@ func TestAPIViewPulls(t *testing.T) {
 
        session := loginUser(t, "user2")
        req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/pulls?state=all", owner.Name, repo.Name)
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
 
        var pulls []*api.PullRequest
        DecodeJSON(t, resp, &pulls)
index 4de0c52ab2b67e10cec91f6b99682cc85e6e1a34..180105d4c0d21c6730a65fa04cfa5f60d04c0bf0 100644 (file)
@@ -7,22 +7,18 @@ package integrations
 import (
        "net/http"
        "testing"
-
-       "github.com/stretchr/testify/assert"
 )
 
 func TestAPIUserReposNotLogin(t *testing.T) {
        prepareTestEnv(t)
 
        req := NewRequest(t, "GET", "/api/v1/users/user2/repos")
-       resp := MakeRequest(req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       MakeRequest(t, req, http.StatusOK)
 }
 
 func TestAPISearchRepoNotLogin(t *testing.T) {
        prepareTestEnv(t)
 
        req := NewRequest(t, "GET", "/api/v1/repos/search?q=Test")
-       resp := MakeRequest(req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       MakeRequest(t, req, http.StatusOK)
 }
index 279014c6ca9b3d5780155037fa889000ba39cff0..b8d21be539f051f92c5f4f7e9153c3fe687f932a 100644 (file)
@@ -22,8 +22,7 @@ func TestAPITeam(t *testing.T) {
 
        session := loginUser(t, user.Name)
        req := NewRequestf(t, "GET", "/api/v1/teams/%d", teamUser.TeamID)
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
 
        var apiTeam api.Team
        DecodeJSON(t, resp, &apiTeam)
index 07bc41a18ef231560493f9e95fcd42a26f1c27a1..dbd189cd28afdba2ca4dc4f665445f29e7b62c1c 100644 (file)
@@ -10,8 +10,6 @@ import (
        "testing"
 
        "code.gitea.io/gitea/models"
-
-       "github.com/stretchr/testify/assert"
 )
 
 func TestChangeDefaultBranch(t *testing.T) {
@@ -22,29 +20,19 @@ func TestChangeDefaultBranch(t *testing.T) {
        session := loginUser(t, owner.Name)
        branchesURL := fmt.Sprintf("/%s/%s/settings/branches", owner.Name, repo.Name)
 
-       req := NewRequest(t, "GET", branchesURL)
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
-       doc := NewHTMLParser(t, resp.Body)
-
-       req = NewRequestWithValues(t, "POST", branchesURL, map[string]string{
-               "_csrf":  doc.GetCSRF(),
+       csrf := GetCSRF(t, session, branchesURL)
+       req := NewRequestWithValues(t, "POST", branchesURL, map[string]string{
+               "_csrf":  csrf,
                "action": "default_branch",
                "branch": "DefaultBranch",
        })
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
-
-       req = NewRequest(t, "GET", branchesURL)
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
-       doc = NewHTMLParser(t, resp.Body)
+       session.MakeRequest(t, req, http.StatusFound)
 
+       csrf = GetCSRF(t, session, branchesURL)
        req = NewRequestWithValues(t, "POST", branchesURL, map[string]string{
-               "_csrf":  doc.GetInputValueByName("_csrf"),
+               "_csrf":  csrf,
                "action": "default_branch",
                "branch": "does_not_exist",
        })
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusNotFound, resp.HeaderCode)
+       session.MakeRequest(t, req, http.StatusNotFound)
 }
index f766a29a1bb4e665485ceb7305b2814c80d9432f..889f8dae25368b1292315e56cf9ac6c9de487196 100644 (file)
@@ -9,8 +9,6 @@ import (
        "testing"
 
        "code.gitea.io/gitea/models"
-
-       "github.com/stretchr/testify/assert"
 )
 
 func TestDeleteUser(t *testing.T) {
@@ -18,16 +16,11 @@ func TestDeleteUser(t *testing.T) {
 
        session := loginUser(t, "user1")
 
-       req := NewRequest(t, "GET", "/admin/users/8")
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
-
-       doc := NewHTMLParser(t, resp.Body)
-       req = NewRequestWithValues(t, "POST", "/admin/users/8/delete", map[string]string{
-               "_csrf": doc.GetCSRF(),
+       csrf := GetCSRF(t, session, "/admin/users/8")
+       req := NewRequestWithValues(t, "POST", "/admin/users/8/delete", map[string]string{
+               "_csrf": csrf,
        })
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       session.MakeRequest(t, req, http.StatusOK)
 
        models.AssertNotExistsBean(t, &models.User{ID: 8})
        models.CheckConsistencyFor(t, &models.User{})
index 48740414c8978a1157b7da99011d53714d21ad3f..79b6bb790aa3cc2d4f073efbb9a7234ae9e430a4 100644 (file)
@@ -19,8 +19,7 @@ func TestCreateFile(t *testing.T) {
 
        // Request editor page
        req := NewRequest(t, "GET", "/user2/repo1/_new/master/")
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
 
        doc := NewHTMLParser(t, resp.Body)
        lastCommit := doc.GetInputValueByName("last_commit")
@@ -34,8 +33,7 @@ func TestCreateFile(t *testing.T) {
                "content":       "Content",
                "commit_choice": "direct",
        })
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusFound)
 }
 
 func TestCreateFileOnProtectedBranch(t *testing.T) {
@@ -43,21 +41,14 @@ func TestCreateFileOnProtectedBranch(t *testing.T) {
 
        session := loginUser(t, "user2")
 
-       // Open repository branch settings
-       req := NewRequest(t, "GET", "/user2/repo1/settings/branches")
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
-
-       doc := NewHTMLParser(t, resp.Body)
-
+       csrf := GetCSRF(t, session, "/user2/repo1/settings/branches")
        // Change master branch to protected
-       req = NewRequestWithValues(t, "POST", "/user2/repo1/settings/branches?action=protected_branch", map[string]string{
-               "_csrf":      doc.GetCSRF(),
+       req := NewRequestWithValues(t, "POST", "/user2/repo1/settings/branches?action=protected_branch", map[string]string{
+               "_csrf":      csrf,
                "branchName": "master",
                "canPush":    "true",
        })
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
        // Check if master branch has been locked successfully
        flashCookie := session.GetCookie("macaron_flash")
        assert.NotNil(t, flashCookie)
@@ -65,10 +56,9 @@ func TestCreateFileOnProtectedBranch(t *testing.T) {
 
        // Request editor page
        req = NewRequest(t, "GET", "/user2/repo1/_new/master/")
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusOK)
 
-       doc = NewHTMLParser(t, resp.Body)
+       doc := NewHTMLParser(t, resp.Body)
        lastCommit := doc.GetInputValueByName("last_commit")
        assert.NotEmpty(t, lastCommit)
 
@@ -81,8 +71,7 @@ func TestCreateFileOnProtectedBranch(t *testing.T) {
                "commit_choice": "direct",
        })
 
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusOK)
        // Check body for error message
        assert.Contains(t, string(resp.Body), "Can not commit to protected branch &#39;master&#39;.")
 }
@@ -93,8 +82,7 @@ func testEditFile(t *testing.T, session *TestSession, user, repo, branch, filePa
 
        // 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)
+       resp := session.MakeRequest(t, req, http.StatusOK)
 
        htmlDoc := NewHTMLParser(t, resp.Body)
        lastCommit := htmlDoc.GetInputValueByName("last_commit")
@@ -110,13 +98,11 @@ func testEditFile(t *testing.T, session *TestSession, user, repo, branch, filePa
                        "commit_choice": "direct",
                },
        )
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusFound)
 
        // Verify the change
        req = NewRequest(t, "GET", path.Join(user, repo, "raw", branch, filePath))
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusOK)
        assert.EqualValues(t, newContent, string(resp.Body))
 
        return resp
@@ -128,8 +114,7 @@ func testEditFileToNewBranch(t *testing.T, session *TestSession, user, repo, bra
 
        // 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)
+       resp := session.MakeRequest(t, req, http.StatusOK)
 
        htmlDoc := NewHTMLParser(t, resp.Body)
        lastCommit := htmlDoc.GetInputValueByName("last_commit")
@@ -146,13 +131,11 @@ func testEditFileToNewBranch(t *testing.T, session *TestSession, user, repo, bra
                        "new_branch_name": targetBranch,
                },
        )
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusFound)
 
        // 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)
+       resp = session.MakeRequest(t, req, http.StatusOK)
        assert.EqualValues(t, newContent, string(resp.Body))
 
        return resp
index 9332e121871951b2c6e3eb2d05309597650daf02..478eb976c841d58f104200527035e1f9cc8c2257 100644 (file)
@@ -140,13 +140,13 @@ func (s *TestSession) GetCookie(name string) *http.Cookie {
        return nil
 }
 
-func (s *TestSession) MakeRequest(t testing.TB, req *http.Request) *TestResponse {
+func (s *TestSession) MakeRequest(t testing.TB, req *http.Request, expectedStatus int) *TestResponse {
        baseURL, err := url.Parse(setting.AppURL)
        assert.NoError(t, err)
        for _, c := range s.jar.Cookies(baseURL) {
                req.AddCookie(c)
        }
-       resp := MakeRequest(req)
+       resp := MakeRequest(t, req, expectedStatus)
 
        ch := http.Header{}
        ch.Add("Cookie", strings.Join(resp.Headers["Set-Cookie"], ";"))
@@ -164,8 +164,7 @@ func loginUser(t testing.TB, userName string) *TestSession {
 
 func loginUserWithPassword(t testing.TB, userName, password string) *TestSession {
        req := NewRequest(t, "GET", "/user/login")
-       resp := MakeRequest(req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := MakeRequest(t, req, http.StatusOK)
 
        doc := NewHTMLParser(t, resp.Body)
        req = NewRequestWithValues(t, "POST", "/user/login", map[string]string{
@@ -173,8 +172,7 @@ func loginUserWithPassword(t testing.TB, userName, password string) *TestSession
                "user_name": userName,
                "password":  password,
        })
-       resp = MakeRequest(req)
-       assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
+       resp = MakeRequest(t, req, http.StatusFound)
 
        ch := http.Header{}
        ch.Add("Cookie", strings.Join(resp.Headers["Set-Cookie"], ";"))
@@ -246,13 +244,18 @@ func NewRequestWithBody(t testing.TB, method, urlStr string, body io.Reader) *ht
        return request
 }
 
-func MakeRequest(req *http.Request) *TestResponse {
+const NoExpectedStatus = -1
+
+func MakeRequest(t testing.TB, req *http.Request, expectedStatus int) *TestResponse {
        buffer := bytes.NewBuffer(nil)
        respWriter := &TestResponseWriter{
                Writer:  buffer,
                Headers: make(map[string][]string),
        }
        mac.ServeHTTP(respWriter, req)
+       if expectedStatus != NoExpectedStatus {
+               assert.EqualValues(t, expectedStatus, respWriter.HeaderCode)
+       }
        return &TestResponse{
                HeaderCode: respWriter.HeaderCode,
                Body:       buffer.Bytes(),
@@ -264,3 +267,16 @@ func DecodeJSON(t testing.TB, resp *TestResponse, v interface{}) {
        decoder := json.NewDecoder(bytes.NewBuffer(resp.Body))
        assert.NoError(t, decoder.Decode(v))
 }
+
+func GetCSRF(t testing.TB, session *TestSession, urlStr string) string {
+       req := NewRequest(t, "GET", urlStr)
+       resp := session.MakeRequest(t, req, http.StatusOK)
+       doc := NewHTMLParser(t, resp.Body)
+       return doc.GetCSRF()
+}
+
+func RedirectURL(t testing.TB, resp *TestResponse) string {
+       urlSlice := resp.Headers["Location"]
+       assert.NotEmpty(t, urlSlice, "No redirect URL founds")
+       return urlSlice[0]
+}
index 3af079dc8137a45c51011964420b8c7ce8f8306d..c22e951bc55f02c28bfb5b463bc5c7883b829bc7 100644 (file)
@@ -23,9 +23,9 @@ func assertProtectedBranch(t *testing.T, repoID int64, branchName string, isErr,
        t.Log(reqURL)
        req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", setting.InternalToken))
 
-       resp := MakeRequest(req)
+       resp := MakeRequest(t, req, NoExpectedStatus)
        if isErr {
-               assert.EqualValues(t, 500, resp.HeaderCode)
+               assert.EqualValues(t, http.StatusInternalServerError, resp.HeaderCode)
        } else {
                assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
                var branch models.ProtectedBranch
index 320dad06662cfe99b02f0d75a95da06462727ec5..e728e4a1547699a5418006918a5e7d76198f4d82 100644 (file)
@@ -35,8 +35,7 @@ func TestNoLoginViewIssues(t *testing.T) {
        prepareTestEnv(t)
 
        req := NewRequest(t, "GET", "/user2/repo1/issues")
-       resp := MakeRequest(req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       MakeRequest(t, req, http.StatusOK)
 }
 
 func TestNoLoginViewIssuesSortByType(t *testing.T) {
@@ -48,8 +47,7 @@ func TestNoLoginViewIssuesSortByType(t *testing.T) {
 
        session := loginUser(t, user.Name)
        req := NewRequest(t, "GET", repo.RelLink()+"/issues?type=created_by")
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
 
        htmlDoc := NewHTMLParser(t, resp.Body)
        issuesSelection := getIssuesSelection(htmlDoc)
@@ -73,15 +71,13 @@ func TestNoLoginViewIssue(t *testing.T) {
        prepareTestEnv(t)
 
        req := NewRequest(t, "GET", "/user2/repo1/issues/1")
-       resp := MakeRequest(req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       MakeRequest(t, req, http.StatusOK)
 }
 
 func testNewIssue(t *testing.T, session *TestSession, user, repo, title string) {
 
        req := NewRequest(t, "GET", path.Join(user, repo, "issues", "new"))
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
 
        htmlDoc := NewHTMLParser(t, resp.Body)
        link, exists := htmlDoc.doc.Find("form.ui.form").Attr("action")
@@ -90,14 +86,10 @@ func testNewIssue(t *testing.T, session *TestSession, user, repo, title string)
                "_csrf": htmlDoc.GetCSRF(),
                "title": title,
        })
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
-       redirectedURL := resp.Headers["Location"]
-       assert.NotEmpty(t, redirectedURL, "Redirected URL is not found")
-
-       req = NewRequest(t, "GET", redirectedURL[0])
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusFound)
+
+       req = NewRequest(t, "GET", RedirectURL(t, resp))
+       resp = session.MakeRequest(t, req, http.StatusOK)
 }
 
 func TestNewIssue(t *testing.T) {
index 06826a08b9373a4510d2939b31114fd8b4add3bd..593b2f4d0109116d3dd4bc04fa28ccd5cc4c2bab 100644 (file)
@@ -16,13 +16,12 @@ func TestPullCompare(t *testing.T) {
 
        session := loginUser(t, "user2")
        req := NewRequest(t, "GET", "/user2/repo1/pulls")
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
        htmlDoc := NewHTMLParser(t, resp.Body)
        link, exists := htmlDoc.doc.Find(".navbar").Find(".ui.green.button").Attr("href")
        assert.True(t, exists, "The template has changed")
 
        req = NewRequest(t, "GET", link)
-       resp = session.MakeRequest(t, req)
+       resp = session.MakeRequest(t, req, http.StatusOK)
        assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
 }
index e03eae61d1a89015d31405c5db8cfb3278a936df..ee7a92ce2c555dbe26ef30d850837856762b1d89 100644 (file)
@@ -15,8 +15,7 @@ import (
 
 func testPullCreate(t *testing.T, session *TestSession, user, repo, branch string) *TestResponse {
        req := NewRequest(t, "GET", path.Join(user, repo))
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
 
        // Click the little green button to create a pull
        htmlDoc := NewHTMLParser(t, resp.Body)
@@ -27,8 +26,7 @@ func testPullCreate(t *testing.T, session *TestSession, user, repo, branch strin
        }
 
        req = NewRequest(t, "GET", link)
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusOK)
 
        // Submit the form for creating the pull
        htmlDoc = NewHTMLParser(t, resp.Body)
@@ -38,8 +36,7 @@ func testPullCreate(t *testing.T, session *TestSession, user, repo, branch strin
                "_csrf": htmlDoc.GetCSRF(),
                "title": "This is a pull title",
        })
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusFound)
 
        //TODO check the redirected URL
 
index 9249f39bd6cc454b3f82a8f3c3eb156eb92f778e..ddb18f80248d2bee8828159c283a8278cbf8506b 100644 (file)
@@ -15,36 +15,32 @@ import (
 
 func testPullMerge(t *testing.T, session *TestSession, user, repo, pullnum string) *TestResponse {
        req := NewRequest(t, "GET", path.Join(user, repo, "pulls", pullnum))
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
 
-       // Click the little green button to craete a pull
+       // 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")
        assert.True(t, exists, "The template has changed")
        req = NewRequestWithValues(t, "POST", link, map[string]string{
                "_csrf": htmlDoc.GetCSRF(),
        })
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusFound)
 
        return resp
 }
 
 func testPullCleanUp(t *testing.T, session *TestSession, user, repo, pullnum string) *TestResponse {
        req := NewRequest(t, "GET", path.Join(user, repo, "pulls", pullnum))
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
 
-       // Click the little green button to craete a pull
+       // Click the little green button to create a pull
        htmlDoc := NewHTMLParser(t, resp.Body)
        link, exists := htmlDoc.doc.Find(".comments .merge .delete-button").Attr("data-url")
        assert.True(t, exists, "The template has changed")
        req = NewRequestWithValues(t, "POST", link, map[string]string{
                "_csrf": htmlDoc.GetCSRF(),
        })
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusOK)
 
        return resp
 }
@@ -56,10 +52,8 @@ func TestPullMerge(t *testing.T) {
        testEditFile(t, session, "user1", "repo1", "master", "README.md")
 
        resp := testPullCreate(t, session, "user1", "repo1", "master")
-       redirectedURL := resp.Headers["Location"]
-       assert.NotEmpty(t, redirectedURL, "Redirected URL is not found")
 
-       elem := strings.Split(redirectedURL[0], "/")
+       elem := strings.Split(RedirectURL(t, resp), "/")
        assert.EqualValues(t, "pulls", elem[3])
        testPullMerge(t, session, elem[1], elem[2], elem[4])
 }
@@ -71,10 +65,8 @@ func TestPullCleanUpAfterMerge(t *testing.T) {
        testEditFileToNewBranch(t, session, "user1", "repo1", "master", "feature/test", "README.md")
 
        resp := testPullCreate(t, session, "user1", "repo1", "feature/test")
-       redirectedURL := resp.Headers["Location"]
-       assert.NotEmpty(t, redirectedURL, "Redirected URL is not found")
 
-       elem := strings.Split(redirectedURL[0], "/")
+       elem := strings.Split(RedirectURL(t, resp), "/")
        assert.EqualValues(t, "pulls", elem[3])
        testPullMerge(t, session, elem[1], elem[2], elem[4])
 
@@ -92,8 +84,7 @@ func TestPullCleanUpAfterMerge(t *testing.T) {
 
        // Check branch deletion result
        req := NewRequest(t, "GET", respJSON.Redirect)
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusOK)
 
        htmlDoc := NewHTMLParser(t, resp.Body)
        resultMsg := htmlDoc.doc.Find(".ui.message>p").Text()
index 43c2839638738efdf86fe7e0e9bbed8de7b3a2ff..bce1c88fdfb6f8b367fa3c38bee346a5ba96c20b 100644 (file)
@@ -15,8 +15,7 @@ import (
 
 func createNewRelease(t *testing.T, session *TestSession, repoURL, tag, title string, preRelease, draft bool) {
        req := NewRequest(t, "GET", repoURL+"/releases/new")
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
        htmlDoc := NewHTMLParser(t, resp.Body)
 
        link, exists := htmlDoc.doc.Find("form").Attr("action")
@@ -37,17 +36,14 @@ func createNewRelease(t *testing.T, session *TestSession, repoURL, tag, title st
        }
        req = NewRequestWithValues(t, "POST", link, postData)
 
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusFound)
 
-       redirectedURL := resp.Headers["Location"]
-       assert.NotEmpty(t, redirectedURL, "Redirected URL is not found")
+       RedirectURL(t, resp) // check that redirect URL exists
 }
 
 func checkLatestReleaseAndCount(t *testing.T, session *TestSession, repoURL, version, label string, count int) {
        req := NewRequest(t, "GET", repoURL+"/releases")
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
 
        htmlDoc := NewHTMLParser(t, resp.Body)
        labelText := htmlDoc.doc.Find("#release-list > li .meta .label").First().Text()
@@ -64,16 +60,14 @@ func TestViewReleases(t *testing.T) {
 
        session := loginUser(t, "user2")
        req := NewRequest(t, "GET", "/user2/repo1/releases")
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       session.MakeRequest(t, req, http.StatusOK)
 }
 
 func TestViewReleasesNoLogin(t *testing.T) {
        prepareTestEnv(t)
 
        req := NewRequest(t, "GET", "/user2/repo1/releases")
-       resp := MakeRequest(req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       MakeRequest(t, req, http.StatusOK)
 }
 
 func TestCreateRelease(t *testing.T) {
index 69db24c4530fcc0b6dee219ea2eb0a8d787a036a..bf353982458b09c01f2752885ace8ac5fbd95662 100644 (file)
@@ -21,8 +21,7 @@ func TestRepoCommits(t *testing.T) {
 
        // Request repository commits page
        req := NewRequest(t, "GET", "/user2/repo1/commits/master")
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
 
        doc := NewHTMLParser(t, resp.Body)
        commitURL, exists := doc.doc.Find("#commits-table tbody tr td.sha a").Attr("href")
@@ -37,8 +36,7 @@ func doTestRepoCommitWithStatus(t *testing.T, state string, classes ...string) {
 
        // Request repository commits page
        req := NewRequest(t, "GET", "/user2/repo1/commits/master")
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
 
        doc := NewHTMLParser(t, resp.Body)
        // Get first commit URL
@@ -56,12 +54,10 @@ func doTestRepoCommitWithStatus(t *testing.T, state string, classes ...string) {
                },
        )
 
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusCreated, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusCreated)
 
        req = NewRequest(t, "GET", "/user2/repo1/commits/master")
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusOK)
 
        doc = NewHTMLParser(t, resp.Body)
        // Check if commit status is displayed in message column
index ccb7a4c19e0f5f4037d50f530ca0a38bc90f9c4a..bd6ec7915512a172c35fbef864fa9821d30afd5e 100644 (file)
@@ -14,21 +14,18 @@ import (
 func testRepoFork(t *testing.T, session *TestSession) *TestResponse {
        // Step0: check the existence of the to-fork repo
        req := NewRequest(t, "GET", "/user1/repo1")
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusNotFound, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusNotFound)
 
        // Step1: go to the main page of repo
        req = NewRequest(t, "GET", "/user2/repo1")
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusOK)
 
        // Step2: click the fork button
        htmlDoc := NewHTMLParser(t, resp.Body)
        link, exists := htmlDoc.doc.Find("a.ui.button[href^=\"/repo/fork/\"]").Attr("href")
        assert.True(t, exists, "The template has changed")
        req = NewRequest(t, "GET", link)
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusOK)
 
        // Step3: fill the form of the forking
        htmlDoc = NewHTMLParser(t, resp.Body)
@@ -39,13 +36,11 @@ func testRepoFork(t *testing.T, session *TestSession) *TestResponse {
                "uid":       "1",
                "repo_name": "repo1",
        })
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusFound)
 
        // Step4: check the existence of the forked repo
        req = NewRequest(t, "GET", "/user1/repo1")
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusOK)
 
        return resp
 }
index 85e4b218a652ae31560c54d3077c313a590d8434..4307ddf90175f23a14188a0ac22caeb09ed75015 100644 (file)
@@ -13,8 +13,7 @@ import (
 
 func testRepoMigrate(t testing.TB, session *TestSession, cloneAddr, repoName string) *TestResponse {
        req := NewRequest(t, "GET", "/repo/migrate")
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := session.MakeRequest(t, req, http.StatusOK)
        htmlDoc := NewHTMLParser(t, resp.Body)
 
        link, exists := htmlDoc.doc.Find("form.ui.form").Attr("action")
@@ -30,8 +29,7 @@ func testRepoMigrate(t testing.TB, session *TestSession, cloneAddr, repoName str
                "repo_name":  repoName,
        },
        )
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
+       resp = session.MakeRequest(t, req, http.StatusFound)
 
        return resp
 }
index 23df6d733c87a09ddd5a8ba0a55fccf23d895d71..004156b446f35fc8b323509e3e2ed8905a7503d7 100644 (file)
@@ -7,24 +7,19 @@ package integrations
 import (
        "net/http"
        "testing"
-
-       "github.com/stretchr/testify/assert"
 )
 
 func TestViewRepo(t *testing.T) {
        prepareTestEnv(t)
 
        req := NewRequest(t, "GET", "/user2/repo1")
-       resp := MakeRequest(req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       MakeRequest(t, req, http.StatusOK)
 
        req = NewRequest(t, "GET", "/user3/repo3")
-       resp = MakeRequest(req)
-       assert.EqualValues(t, http.StatusNotFound, resp.HeaderCode)
+       MakeRequest(t, req, http.StatusNotFound)
 
        session := loginUser(t, "user1")
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusNotFound, resp.HeaderCode)
+       session.MakeRequest(t, req, http.StatusNotFound)
 }
 
 func TestViewRepo2(t *testing.T) {
@@ -32,8 +27,7 @@ func TestViewRepo2(t *testing.T) {
 
        req := NewRequest(t, "GET", "/user3/repo3")
        session := loginUser(t, "user2")
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       session.MakeRequest(t, req, http.StatusOK)
 }
 
 func TestViewRepo3(t *testing.T) {
@@ -41,6 +35,5 @@ func TestViewRepo3(t *testing.T) {
 
        req := NewRequest(t, "GET", "/user3/repo3")
        session := loginUser(t, "user3")
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       session.MakeRequest(t, req, http.StatusOK)
 }
index bc32adb31d781cd8e751566164fe84a7bb1c8d44..325c906326bf0a1c8f70c497d7a66dd411de8cb6 100644 (file)
@@ -9,8 +9,6 @@ import (
        "testing"
 
        "code.gitea.io/gitea/modules/setting"
-
-       "github.com/stretchr/testify/assert"
 )
 
 func TestSignup(t *testing.T) {
@@ -24,11 +22,9 @@ func TestSignup(t *testing.T) {
                "password":  "examplePassword",
                "retype":    "examplePassword",
        })
-       resp := MakeRequest(req)
-       assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
+       MakeRequest(t, req, http.StatusFound)
 
        // should be able to view new user's page
        req = NewRequest(t, "GET", "/exampleUser")
-       resp = MakeRequest(req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       MakeRequest(t, req, http.StatusOK)
 }
index 4b7d81cfb591e5d4b1ec4a883dbcb77d87e37a2b..ddb46da3178bbeab61781fd245a060b80d5cb3c4 100644 (file)
@@ -18,27 +18,19 @@ func TestViewUser(t *testing.T) {
        prepareTestEnv(t)
 
        req := NewRequest(t, "GET", "/user2")
-       resp := MakeRequest(req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       MakeRequest(t, req, http.StatusOK)
 }
 
 func TestRenameUsername(t *testing.T) {
        prepareTestEnv(t)
 
        session := loginUser(t, "user2")
-
-       req := NewRequest(t, "GET", "/user/settings")
-       resp := session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
-
-       htmlDoc := NewHTMLParser(t, resp.Body)
-       req = NewRequestWithValues(t, "POST", "/user/settings", map[string]string{
-               "_csrf": htmlDoc.GetCSRF(),
+       req := NewRequestWithValues(t, "POST", "/user/settings", map[string]string{
+               "_csrf": GetCSRF(t, session, "/user/settings"),
                "name":  "newUsername",
                "email": "user2@example.com",
        })
-       resp = session.MakeRequest(t, req)
-       assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
+       session.MakeRequest(t, req, http.StatusFound)
 
        models.AssertExistsAndLoadBean(t, &models.User{Name: "newUsername"})
        models.AssertNotExistsBean(t, &models.User{Name: "user2"})
@@ -58,19 +50,14 @@ func TestRenameInvalidUsername(t *testing.T) {
        session := loginUser(t, "user2")
        for _, invalidUsername := range invalidUsernames {
                t.Logf("Testing username %s", invalidUsername)
-               req := NewRequest(t, "GET", "/user/settings")
-               resp := session.MakeRequest(t, req)
-               assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
 
-               htmlDoc := NewHTMLParser(t, resp.Body)
-               req = NewRequestWithValues(t, "POST", "/user/settings", map[string]string{
-                       "_csrf": htmlDoc.GetCSRF(),
+               req := NewRequestWithValues(t, "POST", "/user/settings", map[string]string{
+                       "_csrf": GetCSRF(t, session, "/user/settings"),
                        "name":  invalidUsername,
                        "email": "user2@example.com",
                })
-               resp = session.MakeRequest(t, req)
-               assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
-               htmlDoc = NewHTMLParser(t, resp.Body)
+               resp := session.MakeRequest(t, req, http.StatusOK)
+               htmlDoc := NewHTMLParser(t, resp.Body)
                assert.Contains(t,
                        htmlDoc.doc.Find(".ui.negative.message").Text(),
                        i18n.Tr("en", "form.alpha_dash_dot_error"),
@@ -92,23 +79,16 @@ func TestRenameReservedUsername(t *testing.T) {
        session := loginUser(t, "user2")
        for _, reservedUsername := range reservedUsernames {
                t.Logf("Testing username %s", reservedUsername)
-               req := NewRequest(t, "GET", "/user/settings")
-               resp := session.MakeRequest(t, req)
-               assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
-
-               htmlDoc := NewHTMLParser(t, resp.Body)
-               req = NewRequestWithValues(t, "POST", "/user/settings", map[string]string{
-                       "_csrf": htmlDoc.GetCSRF(),
+               req := NewRequestWithValues(t, "POST", "/user/settings", map[string]string{
+                       "_csrf": GetCSRF(t, session, "/user/settings"),
                        "name":  reservedUsername,
                        "email": "user2@example.com",
                })
-               resp = session.MakeRequest(t, req)
-               assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
+               resp := session.MakeRequest(t, req, http.StatusFound)
 
-               req = NewRequest(t, "GET", "/user/settings")
-               resp = session.MakeRequest(t, req)
-               assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
-               htmlDoc = NewHTMLParser(t, resp.Body)
+               req = NewRequest(t, "GET", RedirectURL(t, resp))
+               resp = session.MakeRequest(t, req, http.StatusOK)
+               htmlDoc := NewHTMLParser(t, resp.Body)
                assert.Contains(t,
                        htmlDoc.doc.Find(".ui.negative.message").Text(),
                        i18n.Tr("en", "user.newName_reserved"),
index 2234366b1d7ae6ad89f6aeae252d2c0f8244ae4b..95b4dbc952a2de044a32a44927ec83e0bfb35599 100644 (file)
@@ -19,8 +19,7 @@ func TestVersion(t *testing.T) {
 
        setting.AppVer = "1.1.0+dev"
        req := NewRequest(t, "GET", "/api/v1/version")
-       resp := MakeRequest(req)
-       assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
+       resp := MakeRequest(t, req, http.StatusOK)
 
        var version gitea.ServerVersion
        DecodeJSON(t, resp, &version)