diff options
author | Alejandro Rodríguez <alejorro70@gmail.com> | 2018-06-29 21:12:03 +0300 |
---|---|---|
committer | Alejandro Rodríguez <alejorro70@gmail.com> | 2018-06-29 21:12:03 +0300 |
commit | f14059c3cdd484cfcd62066b95b64ebca7d2d1fe (patch) | |
tree | fa6711a35df0b9d27f0124ff48c8f9bf19ea42a7 /internal | |
parent | be80b7458dfd268cce32925f00715cbbe476b99b (diff) | |
parent | bdfc7c4497d103e7329680bc6254e84b52a19dcc (diff) |
Merge branch 'user-commit-files-encoding' into 'master'
Fix encoding bug in UserCommitFiles
Closes #1168
See merge request gitlab-org/gitaly!782
Diffstat (limited to 'internal')
-rw-r--r-- | internal/service/operations/commit_files_test.go | 62 |
1 files changed, 48 insertions, 14 deletions
diff --git a/internal/service/operations/commit_files_test.go b/internal/service/operations/commit_files_test.go index 2928a8126..67a19270a 100644 --- a/internal/service/operations/commit_files_test.go +++ b/internal/service/operations/commit_files_test.go @@ -42,7 +42,7 @@ func TestSuccessfulUserCommitFilesRequest(t *testing.T) { defer newRepoCleanupFn() md := testhelper.GitalyServersMetadata(t, serverSocketPath) - filePath := "my/file.txt" + filePath := "héllo/wörld" authorName := []byte("Jane Doe") authorEmail := []byte("janedoe@gitlab.com") testCases := []struct { @@ -171,19 +171,53 @@ func TestFailedUserCommitFilesRequestDueToIndexError(t *testing.T) { md := testhelper.GitalyServersMetadata(t, serverSocketPath) ctx := metadata.NewOutgoingContext(ctxOuter, md) - headerRequest := headerRequest(testRepo, user, "feature", commitFilesMessage, nil, nil) - actionsRequest1 := createFileHeaderRequest("README.md") - actionsRequest2 := actionContentRequest("This file already exists") - - stream, err := client.UserCommitFiles(ctx) - require.NoError(t, err) - require.NoError(t, stream.Send(headerRequest)) - require.NoError(t, stream.Send(actionsRequest1)) - require.NoError(t, stream.Send(actionsRequest2)) - - r, err := stream.CloseAndRecv() - require.NoError(t, err) - require.Equal(t, r.GetIndexError(), "A file with this name already exists") + testCases := []struct { + desc string + requests []*pb.UserCommitFilesRequest + indexError string + }{ + { + desc: "file already exists", + requests: []*pb.UserCommitFilesRequest{ + headerRequest(testRepo, user, "feature", commitFilesMessage, nil, nil), + createFileHeaderRequest("README.md"), + actionContentRequest("This file already exists"), + }, + indexError: "A file with this name already exists", + }, + { + desc: "dir already exists", + requests: []*pb.UserCommitFilesRequest{ + headerRequest(testRepo, user, "utf-dir", commitFilesMessage, nil, nil), + actionRequest(&pb.UserCommitFilesAction{ + UserCommitFilesActionPayload: &pb.UserCommitFilesAction_Header{ + Header: &pb.UserCommitFilesActionHeader{ + Action: pb.UserCommitFilesActionHeader_CREATE_DIR, + Base64Content: false, + FilePath: []byte("héllo"), + }, + }, + }), + actionContentRequest("This file already exists, as a directory"), + }, + indexError: "A directory with this name already exists", + }, + } + + for _, tc := range testCases { + t.Run(tc.desc, func(t *testing.T) { + stream, err := client.UserCommitFiles(ctx) + require.NoError(t, err) + + for _, req := range tc.requests { + require.NoError(t, stream.Send(req)) + } + + r, err := stream.CloseAndRecv() + require.NoError(t, err) + require.Equal(t, tc.indexError, r.GetIndexError()) + }) + } } func TestFailedUserCommitFilesRequest(t *testing.T) { |