code.gitea.io/gitea@v1.22.3/routers/web/repo/editor_test.go (about) 1 // Copyright 2018 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package repo 5 6 import ( 7 "testing" 8 9 "code.gitea.io/gitea/models/unittest" 10 "code.gitea.io/gitea/modules/git" 11 "code.gitea.io/gitea/modules/gitrepo" 12 "code.gitea.io/gitea/services/contexttest" 13 14 "github.com/stretchr/testify/assert" 15 ) 16 17 func TestCleanUploadName(t *testing.T) { 18 unittest.PrepareTestEnv(t) 19 20 kases := map[string]string{ 21 ".git/refs/master": "", 22 "/root/abc": "root/abc", 23 "./../../abc": "abc", 24 "a/../.git": "", 25 "a/../../../abc": "abc", 26 "../../../acd": "acd", 27 "../../.git/abc": "", 28 "..\\..\\.git/abc": "..\\..\\.git/abc", 29 "..\\../.git/abc": "", 30 "..\\../.git": "", 31 "abc/../def": "def", 32 ".drone.yml": ".drone.yml", 33 ".abc/def/.drone.yml": ".abc/def/.drone.yml", 34 "..drone.yml.": "..drone.yml.", 35 "..a.dotty...name...": "..a.dotty...name...", 36 "..a.dotty../.folder../.name...": "..a.dotty../.folder../.name...", 37 } 38 for k, v := range kases { 39 assert.EqualValues(t, cleanUploadFileName(k), v) 40 } 41 } 42 43 func TestGetUniquePatchBranchName(t *testing.T) { 44 unittest.PrepareTestEnv(t) 45 ctx, _ := contexttest.MockContext(t, "user2/repo1") 46 ctx.SetParams(":id", "1") 47 contexttest.LoadRepo(t, ctx, 1) 48 contexttest.LoadRepoCommit(t, ctx) 49 contexttest.LoadUser(t, ctx, 2) 50 contexttest.LoadGitRepo(t, ctx) 51 defer ctx.Repo.GitRepo.Close() 52 53 expectedBranchName := "user2-patch-1" 54 branchName := GetUniquePatchBranchName(ctx) 55 assert.Equal(t, expectedBranchName, branchName) 56 } 57 58 func TestGetClosestParentWithFiles(t *testing.T) { 59 unittest.PrepareTestEnv(t) 60 ctx, _ := contexttest.MockContext(t, "user2/repo1") 61 ctx.SetParams(":id", "1") 62 contexttest.LoadRepo(t, ctx, 1) 63 contexttest.LoadRepoCommit(t, ctx) 64 contexttest.LoadUser(t, ctx, 2) 65 contexttest.LoadGitRepo(t, ctx) 66 defer ctx.Repo.GitRepo.Close() 67 68 repo := ctx.Repo.Repository 69 branch := repo.DefaultBranch 70 gitRepo, _ := gitrepo.OpenRepository(git.DefaultContext, repo) 71 defer gitRepo.Close() 72 commit, _ := gitRepo.GetBranchCommit(branch) 73 var expectedTreePath string // Should return the root dir, empty string, since there are no subdirs in this repo 74 for _, deletedFile := range []string{ 75 "dir1/dir2/dir3/file.txt", 76 "file.txt", 77 } { 78 treePath := GetClosestParentWithFiles(deletedFile, commit) 79 assert.Equal(t, expectedTreePath, treePath) 80 } 81 }