aboutsummaryrefslogtreecommitdiffstats
path: root/tests/integration/api_repo_files_change_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'tests/integration/api_repo_files_change_test.go')
-rw-r--r--tests/integration/api_repo_files_change_test.go117
1 files changed, 61 insertions, 56 deletions
diff --git a/tests/integration/api_repo_files_change_test.go b/tests/integration/api_repo_files_change_test.go
index aca58025d2..999bcdc680 100644
--- a/tests/integration/api_repo_files_change_test.go
+++ b/tests/integration/api_repo_files_change_test.go
@@ -77,51 +77,56 @@ func TestAPIChangeFiles(t *testing.T) {
token4 := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository)
// Test changing files in repo1 which user2 owns, try both with branch and empty branch
- for _, branch := range [...]string{
- "master", // Branch
- "", // Empty branch
- } {
- fileID++
- createTreePath := fmt.Sprintf("new/file%d.txt", fileID)
- updateTreePath := fmt.Sprintf("update/file%d.txt", fileID)
- deleteTreePath := fmt.Sprintf("delete/file%d.txt", fileID)
- createFile(user2, repo1, updateTreePath)
- createFile(user2, repo1, deleteTreePath)
- changeFilesOptions := getChangeFilesOptions()
- changeFilesOptions.BranchName = branch
- changeFilesOptions.Files[0].Path = createTreePath
- changeFilesOptions.Files[1].Path = updateTreePath
- changeFilesOptions.Files[2].Path = deleteTreePath
- req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents", user2.Name, repo1.Name), &changeFilesOptions).
- AddTokenAuth(token2)
- resp := MakeRequest(t, req, http.StatusCreated)
- gitRepo, _ := gitrepo.OpenRepository(t.Context(), repo1)
- commitID, _ := gitRepo.GetBranchCommitID(changeFilesOptions.NewBranchName)
- createLasCommit, _ := gitRepo.GetCommitByPath(createTreePath)
- updateLastCommit, _ := gitRepo.GetCommitByPath(updateTreePath)
- expectedCreateFileResponse := getExpectedFileResponseForCreate(fmt.Sprintf("%v/%v", user2.Name, repo1.Name), commitID, createTreePath, createLasCommit.ID.String())
- expectedUpdateFileResponse := getExpectedFileResponseForUpdate(commitID, updateTreePath, updateLastCommit.ID.String())
- var filesResponse api.FilesResponse
- DecodeJSON(t, resp, &filesResponse)
-
- // check create file
- assert.EqualValues(t, expectedCreateFileResponse.Content, filesResponse.Files[0])
-
- // check update file
- assert.EqualValues(t, expectedUpdateFileResponse.Content, filesResponse.Files[1])
-
- // test commit info
- assert.EqualValues(t, expectedCreateFileResponse.Commit.SHA, filesResponse.Commit.SHA)
- assert.EqualValues(t, expectedCreateFileResponse.Commit.HTMLURL, filesResponse.Commit.HTMLURL)
- assert.EqualValues(t, expectedCreateFileResponse.Commit.Author.Email, filesResponse.Commit.Author.Email)
- assert.EqualValues(t, expectedCreateFileResponse.Commit.Author.Name, filesResponse.Commit.Author.Name)
- assert.EqualValues(t, expectedCreateFileResponse.Commit.Committer.Email, filesResponse.Commit.Committer.Email)
- assert.EqualValues(t, expectedCreateFileResponse.Commit.Committer.Name, filesResponse.Commit.Committer.Name)
-
- // test delete file
- assert.Nil(t, filesResponse.Files[2])
-
- gitRepo.Close()
+ for _, branch := range []string{"master", ""} {
+ t.Run("Branch-"+branch, func(t *testing.T) {
+ fileID++
+ createTreePath := fmt.Sprintf("new/file%d.txt", fileID)
+ updateTreePath := fmt.Sprintf("update/file%d.txt", fileID)
+ deleteTreePath := fmt.Sprintf("delete/file%d.txt", fileID)
+ _, _ = createFile(user2, repo1, updateTreePath)
+ _, _ = createFile(user2, repo1, deleteTreePath)
+ changeFilesOptions := getChangeFilesOptions()
+ changeFilesOptions.BranchName = branch
+ changeFilesOptions.Files[0].Path = createTreePath
+ changeFilesOptions.Files[1].Path = updateTreePath
+ changeFilesOptions.Files[2].Path = deleteTreePath
+ req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents", user2.Name, repo1.Name), &changeFilesOptions).
+ AddTokenAuth(token2)
+ resp := MakeRequest(t, req, http.StatusCreated)
+ gitRepo, _ := gitrepo.OpenRepository(t.Context(), repo1)
+ defer gitRepo.Close()
+ commitID, _ := gitRepo.GetBranchCommitID(changeFilesOptions.NewBranchName)
+ createLasCommit, _ := gitRepo.GetCommitByPath(createTreePath)
+ updateLastCommit, _ := gitRepo.GetCommitByPath(updateTreePath)
+ expectedCreateFileResponse := getExpectedFileResponseForCreate(apiFileResponseInfo{
+ repoFullName: fmt.Sprintf("%s/%s", user2.Name, repo1.Name),
+ commitID: commitID,
+ treePath: createTreePath,
+ lastCommitSHA: createLasCommit.ID.String(),
+ lastCommitterWhen: createLasCommit.Committer.When,
+ lastAuthorWhen: createLasCommit.Author.When,
+ })
+ expectedUpdateFileResponse := getExpectedFileResponseForUpdate(apiFileResponseInfo{
+ commitID: commitID,
+ treePath: updateTreePath,
+ lastCommitSHA: updateLastCommit.ID.String(),
+ lastCommitterWhen: updateLastCommit.Committer.When,
+ lastAuthorWhen: updateLastCommit.Author.When,
+ })
+ var filesResponse api.FilesResponse
+ DecodeJSON(t, resp, &filesResponse)
+ normalizeFileContentResponseCommitTime(filesResponse.Files[0])
+ normalizeFileContentResponseCommitTime(filesResponse.Files[1])
+ assert.Equal(t, expectedCreateFileResponse.Content, filesResponse.Files[0]) // check create file
+ assert.Equal(t, expectedUpdateFileResponse.Content, filesResponse.Files[1]) // check update file
+ assert.Equal(t, expectedCreateFileResponse.Commit.SHA, filesResponse.Commit.SHA)
+ assert.Equal(t, expectedCreateFileResponse.Commit.HTMLURL, filesResponse.Commit.HTMLURL)
+ assert.Equal(t, expectedCreateFileResponse.Commit.Author.Email, filesResponse.Commit.Author.Email)
+ assert.Equal(t, expectedCreateFileResponse.Commit.Author.Name, filesResponse.Commit.Author.Name)
+ assert.Equal(t, expectedCreateFileResponse.Commit.Committer.Email, filesResponse.Commit.Committer.Email)
+ assert.Equal(t, expectedCreateFileResponse.Commit.Committer.Name, filesResponse.Commit.Committer.Name)
+ assert.Nil(t, filesResponse.Files[2]) // test delete file
+ })
}
// Test changing files in a new branch
@@ -149,15 +154,15 @@ func TestAPIChangeFiles(t *testing.T) {
expectedUpdateSHA := "08bd14b2e2852529157324de9c226b3364e76136"
expectedUpdateHTMLURL := fmt.Sprintf(setting.AppURL+"user2/repo1/src/branch/new_branch/update/file%d.txt", fileID)
expectedUpdateDownloadURL := fmt.Sprintf(setting.AppURL+"user2/repo1/raw/branch/new_branch/update/file%d.txt", fileID)
- assert.EqualValues(t, expectedCreateSHA, filesResponse.Files[0].SHA)
- assert.EqualValues(t, expectedCreateHTMLURL, *filesResponse.Files[0].HTMLURL)
- assert.EqualValues(t, expectedCreateDownloadURL, *filesResponse.Files[0].DownloadURL)
- assert.EqualValues(t, expectedUpdateSHA, filesResponse.Files[1].SHA)
- assert.EqualValues(t, expectedUpdateHTMLURL, *filesResponse.Files[1].HTMLURL)
- assert.EqualValues(t, expectedUpdateDownloadURL, *filesResponse.Files[1].DownloadURL)
+ assert.Equal(t, expectedCreateSHA, filesResponse.Files[0].SHA)
+ assert.Equal(t, expectedCreateHTMLURL, *filesResponse.Files[0].HTMLURL)
+ assert.Equal(t, expectedCreateDownloadURL, *filesResponse.Files[0].DownloadURL)
+ assert.Equal(t, expectedUpdateSHA, filesResponse.Files[1].SHA)
+ assert.Equal(t, expectedUpdateHTMLURL, *filesResponse.Files[1].HTMLURL)
+ assert.Equal(t, expectedUpdateDownloadURL, *filesResponse.Files[1].DownloadURL)
assert.Nil(t, filesResponse.Files[2])
- assert.EqualValues(t, changeFilesOptions.Message+"\n", filesResponse.Commit.Message)
+ assert.Equal(t, changeFilesOptions.Message+"\n", filesResponse.Commit.Message)
// Test updating a file and renaming it
changeFilesOptions = getChangeFilesOptions()
@@ -175,9 +180,9 @@ func TestAPIChangeFiles(t *testing.T) {
expectedUpdateSHA = "08bd14b2e2852529157324de9c226b3364e76136"
expectedUpdateHTMLURL = fmt.Sprintf(setting.AppURL+"user2/repo1/src/branch/master/rename/update/file%d.txt", fileID)
expectedUpdateDownloadURL = fmt.Sprintf(setting.AppURL+"user2/repo1/raw/branch/master/rename/update/file%d.txt", fileID)
- assert.EqualValues(t, expectedUpdateSHA, filesResponse.Files[0].SHA)
- assert.EqualValues(t, expectedUpdateHTMLURL, *filesResponse.Files[0].HTMLURL)
- assert.EqualValues(t, expectedUpdateDownloadURL, *filesResponse.Files[0].DownloadURL)
+ assert.Equal(t, expectedUpdateSHA, filesResponse.Files[0].SHA)
+ assert.Equal(t, expectedUpdateHTMLURL, *filesResponse.Files[0].HTMLURL)
+ assert.Equal(t, expectedUpdateDownloadURL, *filesResponse.Files[0].DownloadURL)
// Test updating a file without a message
changeFilesOptions = getChangeFilesOptions()
@@ -197,7 +202,7 @@ func TestAPIChangeFiles(t *testing.T) {
resp = MakeRequest(t, req, http.StatusCreated)
DecodeJSON(t, resp, &filesResponse)
expectedMessage := fmt.Sprintf("Add %v\nUpdate %v\nDelete %v\n", createTreePath, updateTreePath, deleteTreePath)
- assert.EqualValues(t, expectedMessage, filesResponse.Commit.Message)
+ assert.Equal(t, expectedMessage, filesResponse.Commit.Message)
// Test updating a file with the wrong SHA
fileID++