Improve integration test helper functions (#2049)

Set request headers in helper functions, and new helper for requests with string-formatted URLs
This commit is contained in:
Ethan Koenig 2017-06-24 20:15:42 -04:00 committed by Lunny Xiao
parent 3ffedeab03
commit f64c232953
13 changed files with 9 additions and 24 deletions

View file

@ -5,7 +5,6 @@
package integrations package integrations
import ( import (
"fmt"
"net/http" "net/http"
"testing" "testing"
@ -25,9 +24,8 @@ func TestAPIListComments(t *testing.T) {
repoOwner := models.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User) repoOwner := models.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
session := loginUser(t, repoOwner.Name) session := loginUser(t, repoOwner.Name)
requestUrl := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/comments", req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/%d/comments",
repoOwner.Name, repo.Name, issue.Index) repoOwner.Name, repo.Name, issue.Index)
req := NewRequest(t, "GET", requestUrl)
resp := session.MakeRequest(t, req) resp := session.MakeRequest(t, req)
assert.EqualValues(t, http.StatusOK, resp.HeaderCode) assert.EqualValues(t, http.StatusOK, resp.HeaderCode)

View file

@ -5,7 +5,6 @@
package integrations package integrations
import ( import (
"fmt"
"net/http" "net/http"
"testing" "testing"
@ -22,8 +21,7 @@ func TestAPITeam(t *testing.T) {
user := models.AssertExistsAndLoadBean(t, &models.User{ID: teamUser.UID}).(*models.User) user := models.AssertExistsAndLoadBean(t, &models.User{ID: teamUser.UID}).(*models.User)
session := loginUser(t, user.Name) session := loginUser(t, user.Name)
url := fmt.Sprintf("/api/v1/teams/%d", teamUser.TeamID) req := NewRequestf(t, "GET", "/api/v1/teams/%d", teamUser.TeamID)
req := NewRequest(t, "GET", url)
resp := session.MakeRequest(t, req) resp := session.MakeRequest(t, req)
assert.EqualValues(t, http.StatusOK, resp.HeaderCode) assert.EqualValues(t, http.StatusOK, resp.HeaderCode)

View file

@ -32,7 +32,6 @@ func TestChangeDefaultBranch(t *testing.T) {
"action": "default_branch", "action": "default_branch",
"branch": "DefaultBranch", "branch": "DefaultBranch",
}) })
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
resp = session.MakeRequest(t, req) resp = session.MakeRequest(t, req)
assert.EqualValues(t, http.StatusFound, resp.HeaderCode) assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
@ -46,7 +45,6 @@ func TestChangeDefaultBranch(t *testing.T) {
"action": "default_branch", "action": "default_branch",
"branch": "does_not_exist", "branch": "does_not_exist",
}) })
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
resp = session.MakeRequest(t, req) resp = session.MakeRequest(t, req)
assert.EqualValues(t, http.StatusNotFound, resp.HeaderCode) assert.EqualValues(t, http.StatusNotFound, resp.HeaderCode)
} }

View file

@ -26,7 +26,6 @@ func TestDeleteUser(t *testing.T) {
req = NewRequestWithValues(t, "POST", "/admin/users/8/delete", map[string]string{ req = NewRequestWithValues(t, "POST", "/admin/users/8/delete", map[string]string{
"_csrf": doc.GetCSRF(), "_csrf": doc.GetCSRF(),
}) })
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
resp = session.MakeRequest(t, req) resp = session.MakeRequest(t, req)
assert.EqualValues(t, http.StatusOK, resp.HeaderCode) assert.EqualValues(t, http.StatusOK, resp.HeaderCode)

View file

@ -34,7 +34,6 @@ func TestCreateFile(t *testing.T) {
"content": "Content", "content": "Content",
"commit_choice": "direct", "commit_choice": "direct",
}) })
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
resp = session.MakeRequest(t, req) resp = session.MakeRequest(t, req)
assert.EqualValues(t, http.StatusFound, resp.HeaderCode) assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
} }
@ -57,7 +56,6 @@ func TestCreateFileOnProtectedBranch(t *testing.T) {
"branchName": "master", "branchName": "master",
"canPush": "true", "canPush": "true",
}) })
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
resp = session.MakeRequest(t, req) resp = session.MakeRequest(t, req)
assert.EqualValues(t, http.StatusOK, resp.HeaderCode) assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
// Check if master branch has been locked successfully // Check if master branch has been locked successfully
@ -83,7 +81,6 @@ func TestCreateFileOnProtectedBranch(t *testing.T) {
"commit_choice": "direct", "commit_choice": "direct",
}) })
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
resp = session.MakeRequest(t, req) resp = session.MakeRequest(t, req)
assert.EqualValues(t, http.StatusOK, resp.HeaderCode) assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
// Check body for error message // Check body for error message
@ -113,7 +110,6 @@ func testEditFile(t *testing.T, session *TestSession, user, repo, branch, filePa
"commit_choice": "direct", "commit_choice": "direct",
}, },
) )
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
resp = session.MakeRequest(t, req) resp = session.MakeRequest(t, req)
assert.EqualValues(t, http.StatusFound, resp.HeaderCode) assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
@ -150,7 +146,6 @@ func testEditFileToNewBranch(t *testing.T, session *TestSession, user, repo, bra
"new_branch_name": targetBranch, "new_branch_name": targetBranch,
}, },
) )
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
resp = session.MakeRequest(t, req) resp = session.MakeRequest(t, req)
assert.EqualValues(t, http.StatusFound, resp.HeaderCode) assert.EqualValues(t, http.StatusFound, resp.HeaderCode)

View file

@ -173,7 +173,6 @@ func loginUserWithPassword(t testing.TB, userName, password string) *TestSession
"user_name": userName, "user_name": userName,
"password": password, "password": password,
}) })
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
resp = MakeRequest(req) resp = MakeRequest(req)
assert.EqualValues(t, http.StatusFound, resp.HeaderCode) assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
@ -218,12 +217,18 @@ func NewRequest(t testing.TB, method, urlStr string) *http.Request {
return NewRequestWithBody(t, method, urlStr, nil) return NewRequestWithBody(t, method, urlStr, nil)
} }
func NewRequestf(t testing.TB, method, urlFormat string, args ...interface{}) *http.Request {
return NewRequest(t, method, fmt.Sprintf(urlFormat, args...))
}
func NewRequestWithValues(t testing.TB, method, urlStr string, values map[string]string) *http.Request { func NewRequestWithValues(t testing.TB, method, urlStr string, values map[string]string) *http.Request {
urlValues := url.Values{} urlValues := url.Values{}
for key, value := range values { for key, value := range values {
urlValues[key] = []string{value} urlValues[key] = []string{value}
} }
return NewRequestWithBody(t, method, urlStr, bytes.NewBufferString(urlValues.Encode())) req := NewRequestWithBody(t, method, urlStr, bytes.NewBufferString(urlValues.Encode()))
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
return req
} }
func NewRequestWithJSON(t testing.TB, method, urlStr string, v interface{}) *http.Request { func NewRequestWithJSON(t testing.TB, method, urlStr string, v interface{}) *http.Request {

View file

@ -90,7 +90,6 @@ func testNewIssue(t *testing.T, session *TestSession, user, repo, title string)
"_csrf": htmlDoc.GetCSRF(), "_csrf": htmlDoc.GetCSRF(),
"title": title, "title": title,
}) })
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
resp = session.MakeRequest(t, req) resp = session.MakeRequest(t, req)
assert.EqualValues(t, http.StatusFound, resp.HeaderCode) assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
redirectedURL := resp.Headers["Location"] redirectedURL := resp.Headers["Location"]

View file

@ -38,7 +38,6 @@ func testPullCreate(t *testing.T, session *TestSession, user, repo, branch strin
"_csrf": htmlDoc.GetCSRF(), "_csrf": htmlDoc.GetCSRF(),
"title": "This is a pull title", "title": "This is a pull title",
}) })
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
resp = session.MakeRequest(t, req) resp = session.MakeRequest(t, req)
assert.EqualValues(t, http.StatusFound, resp.HeaderCode) assert.EqualValues(t, http.StatusFound, resp.HeaderCode)

View file

@ -25,7 +25,6 @@ func testPullMerge(t *testing.T, session *TestSession, user, repo, pullnum strin
req = NewRequestWithValues(t, "POST", link, map[string]string{ req = NewRequestWithValues(t, "POST", link, map[string]string{
"_csrf": htmlDoc.GetCSRF(), "_csrf": htmlDoc.GetCSRF(),
}) })
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
resp = session.MakeRequest(t, req) resp = session.MakeRequest(t, req)
assert.EqualValues(t, http.StatusFound, resp.HeaderCode) assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
@ -44,7 +43,6 @@ func testPullCleanUp(t *testing.T, session *TestSession, user, repo, pullnum str
req = NewRequestWithValues(t, "POST", link, map[string]string{ req = NewRequestWithValues(t, "POST", link, map[string]string{
"_csrf": htmlDoc.GetCSRF(), "_csrf": htmlDoc.GetCSRF(),
}) })
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
resp = session.MakeRequest(t, req) resp = session.MakeRequest(t, req)
assert.EqualValues(t, http.StatusOK, resp.HeaderCode) assert.EqualValues(t, http.StatusOK, resp.HeaderCode)

View file

@ -56,7 +56,6 @@ func doTestRepoCommitWithStatus(t *testing.T, state string, classes ...string) {
}, },
) )
req.Header.Add("Content-Type", "application/json")
resp = session.MakeRequest(t, req) resp = session.MakeRequest(t, req)
assert.EqualValues(t, http.StatusCreated, resp.HeaderCode) assert.EqualValues(t, http.StatusCreated, resp.HeaderCode)

View file

@ -39,7 +39,6 @@ func testRepoFork(t *testing.T, session *TestSession) *TestResponse {
"uid": "1", "uid": "1",
"repo_name": "repo1", "repo_name": "repo1",
}) })
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
resp = session.MakeRequest(t, req) resp = session.MakeRequest(t, req)
assert.EqualValues(t, http.StatusFound, resp.HeaderCode) assert.EqualValues(t, http.StatusFound, resp.HeaderCode)

View file

@ -30,7 +30,6 @@ func testRepoMigrate(t testing.TB, session *TestSession, cloneAddr, repoName str
"repo_name": repoName, "repo_name": repoName,
}, },
) )
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
resp = session.MakeRequest(t, req) resp = session.MakeRequest(t, req)
assert.EqualValues(t, http.StatusFound, resp.HeaderCode) assert.EqualValues(t, http.StatusFound, resp.HeaderCode)

View file

@ -24,7 +24,6 @@ func TestSignup(t *testing.T) {
"password": "examplePassword", "password": "examplePassword",
"retype": "examplePassword", "retype": "examplePassword",
}) })
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
resp := MakeRequest(req) resp := MakeRequest(req)
assert.EqualValues(t, http.StatusFound, resp.HeaderCode) assert.EqualValues(t, http.StatusFound, resp.HeaderCode)