52 lines
1.7 KiB
Go
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)
|
|
}
|
|
}
|