* Helper functions for intergration test boilerplatetags/v1.2.0-rc1
@@ -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 |
@@ -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) |
@@ -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) |
@@ -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) |
@@ -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) |
@@ -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) | |||
} |
@@ -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) |
@@ -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) | |||
} |
@@ -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{}) |
@@ -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 'master'.") | |||
} | |||
@@ -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 |
@@ -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] | |||
} |
@@ -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 |
@@ -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) { |
@@ -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) | |||
} |
@@ -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 | |||
@@ -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() |
@@ -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) { |
@@ -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 |
@@ -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 | |||
} |
@@ -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 | |||
} |
@@ -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) | |||
} |
@@ -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) | |||
} |
@@ -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"), |
@@ -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) |