35 lines
977 B
Go
35 lines
977 B
Go
package storage
|
|
|
|
import "testing"
|
|
|
|
func TestNormalizeObjectKey(t *testing.T) {
|
|
bucket := "haixun-assets"
|
|
key := "avatars/default/uid.png"
|
|
|
|
cases := []struct {
|
|
name string
|
|
ref string
|
|
want string
|
|
}{
|
|
{name: "raw key", ref: key, want: key},
|
|
{name: "public path", ref: "/haixun-assets/" + key, want: key},
|
|
{name: "loopback url", ref: "http://127.0.0.1:9000/haixun-assets/" + key, want: key},
|
|
{name: "public site url", ref: "https://threads-tool.30cm.net/haixun-assets/" + key, want: key},
|
|
{name: "empty", ref: "", want: ""},
|
|
}
|
|
|
|
for _, tc := range cases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
if got := NormalizeObjectKey(bucket, tc.ref); got != tc.want {
|
|
t.Fatalf("NormalizeObjectKey(%q) = %q, want %q", tc.ref, got, tc.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestPublicObjectPath(t *testing.T) {
|
|
if got := PublicObjectPath("haixun-assets", "avatars/default/uid.png"); got != "/haixun-assets/avatars/default/uid.png" {
|
|
t.Fatalf("unexpected path: %q", got)
|
|
}
|
|
}
|