111 lines
2.6 KiB
Go
111 lines
2.6 KiB
Go
package config
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
const azureConfig = `
|
|
[object_storage]
|
|
provider = "AzureRM"
|
|
|
|
[object_storage.azurerm]
|
|
azure_storage_account_name = "azuretester"
|
|
azure_storage_access_key = "deadbeef"
|
|
`
|
|
|
|
func TestLoadEmptyConfig(t *testing.T) {
|
|
config := ``
|
|
|
|
cfg, err := LoadConfig(config)
|
|
require.NoError(t, err)
|
|
|
|
require.Empty(t, cfg.AltDocumentRoot)
|
|
require.Equal(t, cfg.ImageResizerConfig.MaxFilesize, uint64(250000))
|
|
require.GreaterOrEqual(t, cfg.ImageResizerConfig.MaxScalerProcs, uint32(2))
|
|
|
|
require.Equal(t, ObjectStorageCredentials{}, cfg.ObjectStorageCredentials)
|
|
require.NoError(t, cfg.RegisterGoCloudURLOpeners())
|
|
}
|
|
|
|
func TestLoadObjectStorageConfig(t *testing.T) {
|
|
config := `
|
|
[object_storage]
|
|
provider = "AWS"
|
|
|
|
[object_storage.s3]
|
|
aws_access_key_id = "minio"
|
|
aws_secret_access_key = "gdk-minio"
|
|
`
|
|
|
|
cfg, err := LoadConfig(config)
|
|
require.NoError(t, err)
|
|
|
|
require.NotNil(t, cfg.ObjectStorageCredentials, "Expected object storage credentials")
|
|
|
|
expected := ObjectStorageCredentials{
|
|
Provider: "AWS",
|
|
S3Credentials: S3Credentials{
|
|
AwsAccessKeyID: "minio",
|
|
AwsSecretAccessKey: "gdk-minio",
|
|
},
|
|
}
|
|
|
|
require.Equal(t, expected, cfg.ObjectStorageCredentials)
|
|
}
|
|
|
|
func TestRegisterGoCloudURLOpeners(t *testing.T) {
|
|
cfg, err := LoadConfig(azureConfig)
|
|
require.NoError(t, err)
|
|
|
|
require.NotNil(t, cfg.ObjectStorageCredentials, "Expected object storage credentials")
|
|
|
|
expected := ObjectStorageCredentials{
|
|
Provider: "AzureRM",
|
|
AzureCredentials: AzureCredentials{
|
|
AccountName: "azuretester",
|
|
AccountKey: "deadbeef",
|
|
},
|
|
}
|
|
|
|
require.Equal(t, expected, cfg.ObjectStorageCredentials)
|
|
require.Nil(t, cfg.ObjectStorageConfig.URLMux)
|
|
|
|
require.NoError(t, cfg.RegisterGoCloudURLOpeners())
|
|
require.NotNil(t, cfg.ObjectStorageConfig.URLMux)
|
|
|
|
require.True(t, cfg.ObjectStorageConfig.URLMux.ValidBucketScheme("azblob"))
|
|
require.Equal(t, []string{"azblob"}, cfg.ObjectStorageConfig.URLMux.BucketSchemes())
|
|
}
|
|
|
|
func TestLoadImageResizerConfig(t *testing.T) {
|
|
config := `
|
|
[image_resizer]
|
|
max_scaler_procs = 200
|
|
max_filesize = 350000
|
|
`
|
|
|
|
cfg, err := LoadConfig(config)
|
|
require.NoError(t, err)
|
|
|
|
require.NotNil(t, cfg.ImageResizerConfig, "Expected image resizer config")
|
|
|
|
expected := ImageResizerConfig{
|
|
MaxScalerProcs: 200,
|
|
MaxFilesize: 350000,
|
|
}
|
|
|
|
require.Equal(t, expected, cfg.ImageResizerConfig)
|
|
}
|
|
|
|
func TestAltDocumentConfig(t *testing.T) {
|
|
config := `
|
|
alt_document_root = "/path/to/documents"
|
|
`
|
|
|
|
cfg, err := LoadConfig(config)
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, "/path/to/documents", cfg.AltDocumentRoot)
|
|
}
|