| @@ -16,8 +16,7 @@ import ( | |||
| func TestAPIUserReposNotLogin(t *testing.T) { | |||
| assert.NoError(t, models.LoadFixtures()) | |||
| req, err := http.NewRequest("GET", "/api/v1/users/user2/repos", nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", "/api/v1/users/user2/repos") | |||
| resp := MakeRequest(req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| } | |||
| @@ -25,8 +24,7 @@ func TestAPIUserReposNotLogin(t *testing.T) { | |||
| func TestAPISearchRepoNotLogin(t *testing.T) { | |||
| assert.NoError(t, models.LoadFixtures()) | |||
| req, err := http.NewRequest("GET", "/api/v1/repos/search?q=Test", nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", "/api/v1/repos/search?q=Test") | |||
| resp := MakeRequest(req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| } | |||
| @@ -25,8 +25,7 @@ func TestAPITeam(t *testing.T) { | |||
| session := loginUser(t, user.Name, "password") | |||
| url := fmt.Sprintf("/api/v1/teams/%d", teamUser.TeamID) | |||
| req, err := http.NewRequest("GET", url, nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", url) | |||
| resp := session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| @@ -20,18 +20,16 @@ func TestDeleteUser(t *testing.T) { | |||
| session := loginUser(t, "user1", "password") | |||
| req, err := http.NewRequest("GET", "/admin/users/8", nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", "/admin/users/8") | |||
| resp := session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| doc, err := NewHtmlParser(resp.Body) | |||
| assert.NoError(t, err) | |||
| req, err = http.NewRequest("POST", "/admin/users/8/delete", | |||
| req = NewRequestBody(t, "POST", "/admin/users/8/delete", | |||
| bytes.NewBufferString(url.Values{ | |||
| "_csrf": []string{doc.GetInputValueByName("_csrf")}, | |||
| }.Encode())) | |||
| assert.NoError(t, err) | |||
| req.Header.Add("Content-Type", "application/x-www-form-urlencoded") | |||
| resp = session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| @@ -20,8 +20,7 @@ func TestCreateFile(t *testing.T) { | |||
| session := loginUser(t, "user2", "password") | |||
| // Request editor page | |||
| req, err := http.NewRequest("GET", "/user2/repo1/_new/master/", nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", "/user2/repo1/_new/master/") | |||
| resp := session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| @@ -31,7 +30,7 @@ func TestCreateFile(t *testing.T) { | |||
| assert.NotEmpty(t, lastCommit) | |||
| // Save new file to master branch | |||
| req, err = http.NewRequest("POST", "/user2/repo1/_new/master/", | |||
| req = NewRequestBody(t, "POST", "/user2/repo1/_new/master/", | |||
| bytes.NewBufferString(url.Values{ | |||
| "_csrf": []string{doc.GetInputValueByName("_csrf")}, | |||
| "last_commit": []string{lastCommit}, | |||
| @@ -40,7 +39,6 @@ func TestCreateFile(t *testing.T) { | |||
| "commit_choice": []string{"direct"}, | |||
| }.Encode()), | |||
| ) | |||
| assert.NoError(t, err) | |||
| req.Header.Add("Content-Type", "application/x-www-form-urlencoded") | |||
| resp = session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusFound, resp.HeaderCode) | |||
| @@ -52,8 +50,7 @@ func TestCreateFileOnProtectedBranch(t *testing.T) { | |||
| session := loginUser(t, "user2", "password") | |||
| // Open repository branch settings | |||
| req, err := http.NewRequest("GET", "/user2/repo1/settings/branches", nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", "/user2/repo1/settings/branches") | |||
| resp := session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| @@ -61,7 +58,7 @@ func TestCreateFileOnProtectedBranch(t *testing.T) { | |||
| assert.NoError(t, err) | |||
| // Change master branch to protected | |||
| req, err = http.NewRequest("POST", "/user2/repo1/settings/branches?action=protected_branch", | |||
| req = NewRequestBody(t, "POST", "/user2/repo1/settings/branches?action=protected_branch", | |||
| bytes.NewBufferString(url.Values{ | |||
| "_csrf": []string{doc.GetInputValueByName("_csrf")}, | |||
| "branchName": []string{"master"}, | |||
| @@ -78,8 +75,7 @@ func TestCreateFileOnProtectedBranch(t *testing.T) { | |||
| assert.EqualValues(t, flashCookie.Value, "success%3Dmaster%2BLocked%2Bsuccessfully") | |||
| // Request editor page | |||
| req, err = http.NewRequest("GET", "/user2/repo1/_new/master/", nil) | |||
| assert.NoError(t, err) | |||
| req = NewRequest(t, "GET", "/user2/repo1/_new/master/") | |||
| resp = session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| @@ -89,7 +85,7 @@ func TestCreateFileOnProtectedBranch(t *testing.T) { | |||
| assert.NotEmpty(t, lastCommit) | |||
| // Save new file to master branch | |||
| req, err = http.NewRequest("POST", "/user2/repo1/_new/master/", | |||
| req = NewRequestBody(t, "POST", "/user2/repo1/_new/master/", | |||
| bytes.NewBufferString(url.Values{ | |||
| "_csrf": []string{doc.GetInputValueByName("_csrf")}, | |||
| "last_commit": []string{lastCommit}, | |||
| @@ -98,7 +94,6 @@ func TestCreateFileOnProtectedBranch(t *testing.T) { | |||
| "commit_choice": []string{"direct"}, | |||
| }.Encode()), | |||
| ) | |||
| assert.NoError(t, err) | |||
| req.Header.Add("Content-Type", "application/x-www-form-urlencoded") | |||
| resp = session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| @@ -111,8 +106,7 @@ func testEditFile(t *testing.T, session *TestSession, user, repo, branch, filePa | |||
| newContent := "Hello, World (Edited)\n" | |||
| // Get to the 'edit this file' page | |||
| req, err := http.NewRequest("GET", path.Join(user, repo, "_edit", branch, filePath), nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", path.Join(user, repo, "_edit", branch, filePath)) | |||
| resp := session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| @@ -122,7 +116,7 @@ func testEditFile(t *testing.T, session *TestSession, user, repo, branch, filePa | |||
| assert.NotEmpty(t, lastCommit) | |||
| // Submit the edits | |||
| req, err = http.NewRequest("POST", path.Join(user, repo, "_edit", branch, filePath), | |||
| req = NewRequestBody(t, "POST", path.Join(user, repo, "_edit", branch, filePath), | |||
| bytes.NewBufferString(url.Values{ | |||
| "_csrf": []string{htmlDoc.GetInputValueByName("_csrf")}, | |||
| "last_commit": []string{lastCommit}, | |||
| @@ -131,14 +125,12 @@ func testEditFile(t *testing.T, session *TestSession, user, repo, branch, filePa | |||
| "commit_choice": []string{"direct"}, | |||
| }.Encode()), | |||
| ) | |||
| assert.NoError(t, err) | |||
| req.Header.Add("Content-Type", "application/x-www-form-urlencoded") | |||
| resp = session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusFound, resp.HeaderCode) | |||
| // Verify the change | |||
| req, err = http.NewRequest("GET", path.Join(user, repo, "raw", branch, filePath), nil) | |||
| assert.NoError(t, err) | |||
| req = NewRequest(t, "GET", path.Join(user, repo, "raw", branch, filePath)) | |||
| resp = session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| assert.EqualValues(t, newContent, string(resp.Body)) | |||
| @@ -147,22 +147,20 @@ func (s *TestSession) MakeRequest(t *testing.T, req *http.Request) *TestResponse | |||
| } | |||
| func loginUser(t *testing.T, userName, password string) *TestSession { | |||
| req, err := http.NewRequest("GET", "/user/login", nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", "/user/login") | |||
| resp := MakeRequest(req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| doc, err := NewHtmlParser(resp.Body) | |||
| assert.NoError(t, err) | |||
| req, err = http.NewRequest("POST", "/user/login", | |||
| req = NewRequestBody(t, "POST", "/user/login", | |||
| bytes.NewBufferString(url.Values{ | |||
| "_csrf": []string{doc.GetInputValueByName("_csrf")}, | |||
| "user_name": []string{userName}, | |||
| "password": []string{password}, | |||
| }.Encode()), | |||
| ) | |||
| assert.NoError(t, err) | |||
| req.Header.Add("Content-Type", "application/x-www-form-urlencoded") | |||
| resp = MakeRequest(req) | |||
| assert.EqualValues(t, http.StatusFound, resp.HeaderCode) | |||
| @@ -204,6 +202,17 @@ type TestResponse struct { | |||
| Headers http.Header | |||
| } | |||
| func NewRequest(t *testing.T, method, url string) *http.Request { | |||
| return NewRequestBody(t, method, url, nil) | |||
| } | |||
| func NewRequestBody(t *testing.T, method, url string, body io.Reader) *http.Request { | |||
| request, err := http.NewRequest(method, url, body) | |||
| assert.NoError(t, err) | |||
| request.RequestURI = url | |||
| return request | |||
| } | |||
| func MakeRequest(req *http.Request) *TestResponse { | |||
| buffer := bytes.NewBuffer(nil) | |||
| respWriter := &TestResponseWriter{ | |||
| @@ -19,11 +19,10 @@ import ( | |||
| func assertProtectedBranch(t *testing.T, repoID int64, branchName string, isErr, canPush bool) { | |||
| reqURL := fmt.Sprintf("/api/internal/branch/%d/%s", repoID, url.QueryEscape(branchName)) | |||
| req, err := http.NewRequest("GET", reqURL, nil) | |||
| req := NewRequest(t, "GET", reqURL) | |||
| t.Log(reqURL) | |||
| req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", setting.InternalToken)) | |||
| assert.NoError(t, err) | |||
| resp := MakeRequest(req) | |||
| if isErr { | |||
| assert.EqualValues(t, 500, resp.HeaderCode) | |||
| @@ -14,8 +14,7 @@ import ( | |||
| func TestNoLoginViewIssues(t *testing.T) { | |||
| prepareTestEnv(t) | |||
| req, err := http.NewRequest("GET", "/user2/repo1/issues", nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", "/user2/repo1/issues") | |||
| resp := MakeRequest(req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| } | |||
| @@ -23,8 +22,7 @@ func TestNoLoginViewIssues(t *testing.T) { | |||
| func TestNoLoginViewIssue(t *testing.T) { | |||
| prepareTestEnv(t) | |||
| req, err := http.NewRequest("GET", "/user2/repo1/issues/1", nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", "/user2/repo1/issues/1") | |||
| resp := MakeRequest(req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| } | |||
| @@ -15,8 +15,7 @@ func TestPullCompare(t *testing.T) { | |||
| prepareTestEnv(t) | |||
| session := loginUser(t, "user2", "password") | |||
| req, err := http.NewRequest("GET", "/user2/repo1/pulls", nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", "/user2/repo1/pulls") | |||
| resp := session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| htmlDoc, err := NewHtmlParser(resp.Body) | |||
| @@ -24,8 +23,7 @@ func TestPullCompare(t *testing.T) { | |||
| link, exists := htmlDoc.doc.Find(".navbar").Find(".ui.green.button").Attr("href") | |||
| assert.True(t, exists, "The template has changed") | |||
| req, err = http.NewRequest("GET", link, nil) | |||
| assert.NoError(t, err) | |||
| req = NewRequest(t, "GET", link) | |||
| resp = session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| } | |||
| @@ -15,8 +15,7 @@ func TestViewReleases(t *testing.T) { | |||
| prepareTestEnv(t) | |||
| session := loginUser(t, "user2", "password") | |||
| req, err := http.NewRequest("GET", "/user2/repo1/releases", nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", "/user2/repo1/releases") | |||
| resp := session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| } | |||
| @@ -19,8 +19,7 @@ func TestRepoCommits(t *testing.T) { | |||
| session := loginUser(t, "user2", "password") | |||
| // Request repository commits page | |||
| req, err := http.NewRequest("GET", "/user2/repo1/commits/master", nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", "/user2/repo1/commits/master") | |||
| resp := session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| @@ -37,8 +36,7 @@ func doTestRepoCommitWithStatus(t *testing.T, state string, classes ...string) { | |||
| session := loginUser(t, "user2", "password") | |||
| // Request repository commits page | |||
| req, err := http.NewRequest("GET", "/user2/repo1/commits/master", nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", "/user2/repo1/commits/master") | |||
| resp := session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| @@ -50,16 +48,14 @@ func doTestRepoCommitWithStatus(t *testing.T, state string, classes ...string) { | |||
| assert.NotEmpty(t, commitURL) | |||
| // Call API to add status for commit | |||
| req, err = http.NewRequest("POST", "/api/v1/repos/user2/repo1/statuses/"+path.Base(commitURL), | |||
| req = NewRequestBody(t, "POST", "/api/v1/repos/user2/repo1/statuses/"+path.Base(commitURL), | |||
| bytes.NewBufferString("{\"state\":\""+state+"\", \"target_url\": \"http://test.ci/\", \"description\": \"\", \"context\": \"testci\"}")) | |||
| assert.NoError(t, err) | |||
| req.Header.Add("Content-Type", "application/json") | |||
| resp = session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusCreated, resp.HeaderCode) | |||
| req, err = http.NewRequest("GET", "/user2/repo1/commits/master", nil) | |||
| assert.NoError(t, err) | |||
| req = NewRequest(t, "GET", "/user2/repo1/commits/master") | |||
| resp = session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| @@ -15,14 +15,12 @@ import ( | |||
| func testRepoFork(t *testing.T, session *TestSession) { | |||
| // Step0: check the existence of the to-fork repo | |||
| req, err := http.NewRequest("GET", "/user1/repo1", nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", "/user1/repo1") | |||
| resp := session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusNotFound, resp.HeaderCode) | |||
| // Step1: go to the main page of repo | |||
| req, err = http.NewRequest("GET", "/user2/repo1", nil) | |||
| assert.NoError(t, err) | |||
| req = NewRequest(t, "GET", "/user2/repo1") | |||
| resp = session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| @@ -31,8 +29,7 @@ func testRepoFork(t *testing.T, session *TestSession) { | |||
| assert.NoError(t, err) | |||
| link, exists := htmlDoc.doc.Find("a.ui.button[href^=\"/repo/fork/\"]").Attr("href") | |||
| assert.True(t, exists, "The template has changed") | |||
| req, err = http.NewRequest("GET", link, nil) | |||
| assert.NoError(t, err) | |||
| req = NewRequest(t, "GET", link) | |||
| resp = session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| @@ -41,21 +38,19 @@ func testRepoFork(t *testing.T, session *TestSession) { | |||
| assert.NoError(t, err) | |||
| link, exists = htmlDoc.doc.Find("form.ui.form[action^=\"/repo/fork/\"]").Attr("action") | |||
| assert.True(t, exists, "The template has changed") | |||
| req, err = http.NewRequest("POST", link, | |||
| req = NewRequestBody(t, "POST", link, | |||
| bytes.NewBufferString(url.Values{ | |||
| "_csrf": []string{htmlDoc.GetInputValueByName("_csrf")}, | |||
| "uid": []string{"1"}, | |||
| "repo_name": []string{"repo1"}, | |||
| }.Encode()), | |||
| ) | |||
| assert.NoError(t, err) | |||
| req.Header.Add("Content-Type", "application/x-www-form-urlencoded") | |||
| resp = session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusFound, resp.HeaderCode) | |||
| // Step4: check the existence of the forked repo | |||
| req, err = http.NewRequest("GET", "/user1/repo1", nil) | |||
| assert.NoError(t, err) | |||
| req = NewRequest(t, "GET", "/user1/repo1") | |||
| resp = session.MakeRequest(t, req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| } | |||
| @@ -14,8 +14,7 @@ import ( | |||
| func TestViewRepo(t *testing.T) { | |||
| prepareTestEnv(t) | |||
| req, err := http.NewRequest("GET", "/user2/repo1", nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", "/user2/repo1") | |||
| resp := MakeRequest(req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| } | |||
| @@ -20,7 +20,7 @@ func TestSignup(t *testing.T) { | |||
| setting.Service.EnableCaptcha = false | |||
| req, err := http.NewRequest("POST", "/user/sign_up", | |||
| req := NewRequestBody(t, "POST", "/user/sign_up", | |||
| bytes.NewBufferString(url.Values{ | |||
| "user_name": []string{"exampleUser"}, | |||
| "email": []string{"exampleUser@example.com"}, | |||
| @@ -28,14 +28,12 @@ func TestSignup(t *testing.T) { | |||
| "retype": []string{"examplePassword"}, | |||
| }.Encode()), | |||
| ) | |||
| assert.NoError(t, err) | |||
| req.Header.Add("Content-Type", "application/x-www-form-urlencoded") | |||
| resp := MakeRequest(req) | |||
| assert.EqualValues(t, http.StatusFound, resp.HeaderCode) | |||
| // should be able to view new user's page | |||
| req, err = http.NewRequest("GET", "/exampleUser", nil) | |||
| assert.NoError(t, err) | |||
| req = NewRequest(t, "GET", "/exampleUser") | |||
| resp = MakeRequest(req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| } | |||
| @@ -14,8 +14,7 @@ import ( | |||
| func TestViewUser(t *testing.T) { | |||
| prepareTestEnv(t) | |||
| req, err := http.NewRequest("GET", "/user2", nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", "/user2") | |||
| resp := MakeRequest(req) | |||
| assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | |||
| } | |||
| @@ -20,8 +20,7 @@ func TestVersion(t *testing.T) { | |||
| prepareTestEnv(t) | |||
| setting.AppVer = "1.1.0+dev" | |||
| req, err := http.NewRequest("GET", "/api/v1/version", nil) | |||
| assert.NoError(t, err) | |||
| req := NewRequest(t, "GET", "/api/v1/version") | |||
| resp := MakeRequest(req) | |||
| var version gitea.ServerVersion | |||