Files
im_server/server/filesafety/config_test.go
T

52 lines
1.7 KiB
Go

package filesafety
import (
"testing"
"github.com/tinode/chat/server/store"
"github.com/tinode/chat/server/store/types"
)
type fakeThirdPartyConfig map[string]string
func (f fakeThirdPartyConfig) Get(group string, keys ...string) (map[string]string, error) {
result := map[string]string{}
for _, key := range keys {
if value, ok := f[key]; ok {
result[key] = value
}
}
return result, nil
}
func TestLoadConfig(t *testing.T) {
original := store.ThirdPartyConfig
store.ThirdPartyConfig = fakeThirdPartyConfig{
"file_review_content_enabled": "1",
"file_review_content_provider": types.FileReviewProviderAliyunGreen,
"aliyun_green_region_id": "cn-shanghai",
"aliyun_green_endpoint": "green-cip.cn-shanghai.aliyuncs.com",
"aliyun_green_document_service": "document_detection",
"file_review_malware_enabled": "true",
"file_review_malware_provider": types.FileReviewProviderAliyunSAS,
"aliyun_sas_region_id": "cn-shanghai",
"aliyun_access_key_id": "ak",
"aliyun_access_key_secret": "sk",
}
defer func() { store.ThirdPartyConfig = original }()
config, err := LoadConfig()
if err != nil {
t.Fatalf("LoadConfig failed: %v", err)
}
if !config.Content.Enabled || config.Content.Provider != types.FileReviewProviderAliyunGreen {
t.Fatalf("unexpected content config: %+v", config.Content)
}
if !config.Malware.Enabled || config.Malware.Provider != types.FileReviewProviderAliyunSAS {
t.Fatalf("unexpected malware config: %+v", config.Malware)
}
if config.Content.Green.AccessKeyID != "ak" || config.Content.Green.RegionID != "cn-shanghai" {
t.Fatalf("unexpected green config: %+v", config.Content.Green)
}
}