43 lines
1.4 KiB
Go
43 lines
1.4 KiB
Go
package services
|
|
|
|
import "testing"
|
|
|
|
func TestResolvePublicAssetURL(t *testing.T) {
|
|
SetPublicAssetURLResolver(func(value string) string {
|
|
return "https://cdn.example.com/" + value
|
|
})
|
|
t.Cleanup(func() { SetPublicAssetURLResolver(nil) })
|
|
|
|
if got := ResolvePublicAssetURL(" mall/materials/avatar.png "); got != "https://cdn.example.com/mall/materials/avatar.png" {
|
|
t.Fatalf("ResolvePublicAssetURL() = %q", got)
|
|
}
|
|
}
|
|
|
|
func TestResolvePublicAssetURLFallsBackToStoredValue(t *testing.T) {
|
|
SetPublicAssetURLResolver(func(string) string { return "" })
|
|
t.Cleanup(func() { SetPublicAssetURLResolver(nil) })
|
|
|
|
if got := ResolvePublicAssetURL(" /storage/avatar.png "); got != "/storage/avatar.png" {
|
|
t.Fatalf("ResolvePublicAssetURL() = %q", got)
|
|
}
|
|
}
|
|
|
|
func TestSetPublicAssetURLSettingsUsesManagementDomainRule(t *testing.T) {
|
|
SetPublicAssetURLSettings(map[string]string{
|
|
"oss_default_engine": "qiniu",
|
|
"oss_qiniu_domain": "cdn.example.com",
|
|
})
|
|
t.Cleanup(func() { SetPublicAssetURLResolver(nil) })
|
|
|
|
tests := map[string]string{
|
|
"mall/materials/avatar.png": "https://cdn.example.com/mall/materials/avatar.png",
|
|
"/storage/builtin-avatar.png": "/storage/builtin-avatar.png",
|
|
"https://system.example.com/icon.png": "https://system.example.com/icon.png",
|
|
}
|
|
for input, want := range tests {
|
|
if got := ResolvePublicAssetURL(input); got != want {
|
|
t.Fatalf("ResolvePublicAssetURL(%q) = %q, want %q", input, got, want)
|
|
}
|
|
}
|
|
}
|