test-sha256: APICreateBranch

(cherry picked from commit df8aaeb1d5a7f9ae5379a2223433b9c77ef5e134)
This commit is contained in:
oliverpool 2024-05-16 10:54:32 +02:00 committed by GitHub
parent ab4570d0cb
commit 32a0e1e2b4

View file

@ -111,61 +111,62 @@ func TestAPICreateBranch(t *testing.T) {
} }
func testAPICreateBranches(t *testing.T, giteaURL *url.URL) { func testAPICreateBranches(t *testing.T, giteaURL *url.URL) {
username := "user2" forEachObjectFormat(t, func(t *testing.T, objectFormat git.ObjectFormat) {
ctx := NewAPITestContext(t, username, "my-noo-repo", auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser) ctx := NewAPITestContext(t, "user2", "my-noo-repo-"+objectFormat.Name(), auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser)
giteaURL.Path = ctx.GitPath() giteaURL.Path = ctx.GitPath()
t.Run("CreateRepo", doAPICreateRepository(ctx, false, git.Sha1ObjectFormat)) // FIXME: use forEachObjectFormat t.Run("CreateRepo", doAPICreateRepository(ctx, false, objectFormat))
testCases := []struct { testCases := []struct {
OldBranch string OldBranch string
NewBranch string NewBranch string
ExpectedHTTPStatus int ExpectedHTTPStatus int
}{ }{
// Creating branch from default branch // Creating branch from default branch
{ {
OldBranch: "", OldBranch: "",
NewBranch: "new_branch_from_default_branch", NewBranch: "new_branch_from_default_branch",
ExpectedHTTPStatus: http.StatusCreated, ExpectedHTTPStatus: http.StatusCreated,
}, },
// Creating branch from master // Creating branch from master
{ {
OldBranch: "master", OldBranch: "master",
NewBranch: "new_branch_from_master_1", NewBranch: "new_branch_from_master_1",
ExpectedHTTPStatus: http.StatusCreated, ExpectedHTTPStatus: http.StatusCreated,
}, },
// Trying to create from master but already exists // Trying to create from master but already exists
{ {
OldBranch: "master", OldBranch: "master",
NewBranch: "new_branch_from_master_1", NewBranch: "new_branch_from_master_1",
ExpectedHTTPStatus: http.StatusConflict, ExpectedHTTPStatus: http.StatusConflict,
}, },
// Trying to create from other branch (not default branch) // Trying to create from other branch (not default branch)
// ps: it can't test the case-sensitive behavior here: the "BRANCH_2" can't be created by git on a case-insensitive filesystem, it makes the test fail quickly before the database code. // ps: it can't test the case-sensitive behavior here: the "BRANCH_2" can't be created by git on a case-insensitive filesystem, it makes the test fail quickly before the database code.
// Suppose some users are running Gitea on a case-insensitive filesystem, it seems that it's unable to support case-sensitive branch names. // Suppose some users are running Gitea on a case-insensitive filesystem, it seems that it's unable to support case-sensitive branch names.
{ {
OldBranch: "new_branch_from_master_1", OldBranch: "new_branch_from_master_1",
NewBranch: "branch_2", NewBranch: "branch_2",
ExpectedHTTPStatus: http.StatusCreated, ExpectedHTTPStatus: http.StatusCreated,
}, },
// Trying to create from a branch which does not exist // Trying to create from a branch which does not exist
{ {
OldBranch: "does_not_exist", OldBranch: "does_not_exist",
NewBranch: "new_branch_from_non_existent", NewBranch: "new_branch_from_non_existent",
ExpectedHTTPStatus: http.StatusNotFound, ExpectedHTTPStatus: http.StatusNotFound,
}, },
// Trying to create a branch with UTF8 // Trying to create a branch with UTF8
{ {
OldBranch: "master", OldBranch: "master",
NewBranch: "test-👀", NewBranch: "test-👀",
ExpectedHTTPStatus: http.StatusCreated, ExpectedHTTPStatus: http.StatusCreated,
}, },
} }
for _, test := range testCases { for _, test := range testCases {
session := ctx.Session session := ctx.Session
t.Run(test.NewBranch, func(t *testing.T) { t.Run(test.NewBranch, func(t *testing.T) {
testAPICreateBranch(t, session, "user2", "my-noo-repo", test.OldBranch, test.NewBranch, test.ExpectedHTTPStatus) testAPICreateBranch(t, session, ctx.Username, ctx.Reponame, test.OldBranch, test.NewBranch, test.ExpectedHTTPStatus)
}) })
} }
})
} }
func testAPICreateBranch(t testing.TB, session *TestSession, user, repo, oldBranch, newBranch string, status int) bool { func testAPICreateBranch(t testing.TB, session *TestSession, user, repo, oldBranch, newBranch string, status int) bool {