You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

attachment_test.go 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. // Copyright 2023 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package setting
  4. import (
  5. "testing"
  6. "github.com/stretchr/testify/assert"
  7. )
  8. func Test_getStorageCustomType(t *testing.T) {
  9. iniStr := `
  10. [attachment]
  11. STORAGE_TYPE = my_minio
  12. MINIO_BUCKET = gitea-attachment
  13. [storage.my_minio]
  14. STORAGE_TYPE = minio
  15. MINIO_ENDPOINT = my_minio:9000
  16. `
  17. cfg, err := NewConfigProviderFromData(iniStr)
  18. assert.NoError(t, err)
  19. assert.NoError(t, loadAttachmentFrom(cfg))
  20. assert.EqualValues(t, "minio", Attachment.Storage.Type)
  21. assert.EqualValues(t, "my_minio:9000", Attachment.Storage.MinioConfig.Endpoint)
  22. assert.EqualValues(t, "gitea-attachment", Attachment.Storage.MinioConfig.Bucket)
  23. assert.EqualValues(t, "attachments/", Attachment.Storage.MinioConfig.BasePath)
  24. }
  25. func Test_getStorageTypeSectionOverridesStorageSection(t *testing.T) {
  26. iniStr := `
  27. [attachment]
  28. STORAGE_TYPE = minio
  29. [storage.minio]
  30. MINIO_BUCKET = gitea-minio
  31. [storage]
  32. MINIO_BUCKET = gitea
  33. `
  34. cfg, err := NewConfigProviderFromData(iniStr)
  35. assert.NoError(t, err)
  36. assert.NoError(t, loadAttachmentFrom(cfg))
  37. assert.EqualValues(t, "minio", Attachment.Storage.Type)
  38. assert.EqualValues(t, "gitea-minio", Attachment.Storage.MinioConfig.Bucket)
  39. assert.EqualValues(t, "attachments/", Attachment.Storage.MinioConfig.BasePath)
  40. }
  41. func Test_getStorageSpecificOverridesStorage(t *testing.T) {
  42. iniStr := `
  43. [attachment]
  44. STORAGE_TYPE = minio
  45. MINIO_BUCKET = gitea-attachment
  46. [storage.attachments]
  47. MINIO_BUCKET = gitea
  48. [storage]
  49. STORAGE_TYPE = local
  50. `
  51. cfg, err := NewConfigProviderFromData(iniStr)
  52. assert.NoError(t, err)
  53. assert.NoError(t, loadAttachmentFrom(cfg))
  54. assert.EqualValues(t, "minio", Attachment.Storage.Type)
  55. assert.EqualValues(t, "gitea-attachment", Attachment.Storage.MinioConfig.Bucket)
  56. assert.EqualValues(t, "attachments/", Attachment.Storage.MinioConfig.BasePath)
  57. }
  58. func Test_getStorageGetDefaults(t *testing.T) {
  59. cfg, err := NewConfigProviderFromData("")
  60. assert.NoError(t, err)
  61. assert.NoError(t, loadAttachmentFrom(cfg))
  62. // default storage is local, so bucket is empty
  63. assert.EqualValues(t, "", Attachment.Storage.MinioConfig.Bucket)
  64. }
  65. func Test_getStorageInheritNameSectionType(t *testing.T) {
  66. iniStr := `
  67. [storage.attachments]
  68. STORAGE_TYPE = minio
  69. `
  70. cfg, err := NewConfigProviderFromData(iniStr)
  71. assert.NoError(t, err)
  72. assert.NoError(t, loadAttachmentFrom(cfg))
  73. assert.EqualValues(t, "minio", Attachment.Storage.Type)
  74. }
  75. func Test_AttachmentStorage(t *testing.T) {
  76. iniStr := `
  77. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  78. [storage]
  79. STORAGE_TYPE = minio
  80. MINIO_ENDPOINT = s3.my-domain.net
  81. MINIO_BUCKET = gitea
  82. MINIO_LOCATION = homenet
  83. MINIO_USE_SSL = true
  84. MINIO_ACCESS_KEY_ID = correct_key
  85. MINIO_SECRET_ACCESS_KEY = correct_key
  86. `
  87. cfg, err := NewConfigProviderFromData(iniStr)
  88. assert.NoError(t, err)
  89. assert.NoError(t, loadAttachmentFrom(cfg))
  90. storage := Attachment.Storage
  91. assert.EqualValues(t, "minio", storage.Type)
  92. assert.EqualValues(t, "gitea", storage.MinioConfig.Bucket)
  93. }
  94. func Test_AttachmentStorage1(t *testing.T) {
  95. iniStr := `
  96. [storage]
  97. STORAGE_TYPE = minio
  98. `
  99. cfg, err := NewConfigProviderFromData(iniStr)
  100. assert.NoError(t, err)
  101. assert.NoError(t, loadAttachmentFrom(cfg))
  102. assert.EqualValues(t, "minio", Attachment.Storage.Type)
  103. assert.EqualValues(t, "gitea", Attachment.Storage.MinioConfig.Bucket)
  104. assert.EqualValues(t, "attachments/", Attachment.Storage.MinioConfig.BasePath)
  105. }