gitea源码

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // Copyright 2024 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package git
  4. import (
  5. "os"
  6. "strings"
  7. "testing"
  8. "code.gitea.io/gitea/modules/git/gitcmd"
  9. "code.gitea.io/gitea/modules/setting"
  10. "github.com/stretchr/testify/assert"
  11. )
  12. func gitConfigContains(sub string) bool {
  13. if b, err := os.ReadFile(gitcmd.HomeDir() + "/.gitconfig"); err == nil {
  14. return strings.Contains(string(b), sub)
  15. }
  16. return false
  17. }
  18. func TestGitConfig(t *testing.T) {
  19. ctx := t.Context()
  20. assert.False(t, gitConfigContains("key-a"))
  21. assert.NoError(t, configSetNonExist(ctx, "test.key-a", "val-a"))
  22. assert.True(t, gitConfigContains("key-a = val-a"))
  23. assert.NoError(t, configSetNonExist(ctx, "test.key-a", "val-a-changed"))
  24. assert.False(t, gitConfigContains("key-a = val-a-changed"))
  25. assert.NoError(t, configSet(ctx, "test.key-a", "val-a-changed"))
  26. assert.True(t, gitConfigContains("key-a = val-a-changed"))
  27. assert.NoError(t, configAddNonExist(ctx, "test.key-b", "val-b"))
  28. assert.True(t, gitConfigContains("key-b = val-b"))
  29. assert.NoError(t, configAddNonExist(ctx, "test.key-b", "val-2b"))
  30. assert.True(t, gitConfigContains("key-b = val-b"))
  31. assert.True(t, gitConfigContains("key-b = val-2b"))
  32. assert.NoError(t, configUnsetAll(ctx, "test.key-b", "val-b"))
  33. assert.False(t, gitConfigContains("key-b = val-b"))
  34. assert.True(t, gitConfigContains("key-b = val-2b"))
  35. assert.NoError(t, configUnsetAll(ctx, "test.key-b", "val-2b"))
  36. assert.False(t, gitConfigContains("key-b = val-2b"))
  37. assert.NoError(t, configSet(ctx, "test.key-x", "*"))
  38. assert.True(t, gitConfigContains("key-x = *"))
  39. assert.NoError(t, configSetNonExist(ctx, "test.key-x", "*"))
  40. assert.NoError(t, configUnsetAll(ctx, "test.key-x", "*"))
  41. assert.False(t, gitConfigContains("key-x = *"))
  42. }
  43. func TestSyncConfig(t *testing.T) {
  44. oldGitConfig := setting.GitConfig
  45. defer func() {
  46. setting.GitConfig = oldGitConfig
  47. }()
  48. setting.GitConfig.Options["sync-test.cfg-key-a"] = "CfgValA"
  49. assert.NoError(t, syncGitConfig(t.Context()))
  50. assert.True(t, gitConfigContains("[sync-test]"))
  51. assert.True(t, gitConfigContains("cfg-key-a = CfgValA"))
  52. }