webp_server_go/config/config_test.go
HolgerHuo 123c96dde7
add: cache for remote images (#310)
* add: cache for remote image requests

* update: use default expiration for NoExpiration setting

* update: clean code

* fix: do not save empty etag

* fix: panic during type assertion
2024-02-11 10:55:23 +08:00

56 lines
1.2 KiB
Go

package config
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestMain(m *testing.M) {
ConfigPath = "../config.json"
m.Run()
ConfigPath = "config.json"
Config.ImgPath = "./pics"
}
func TestLoadConfig(t *testing.T) {
LoadConfig()
assert.Equal(t, Config.Host, "127.0.0.1")
assert.Equal(t, Config.Port, "3333")
assert.Equal(t, Config.Quality, 80)
assert.Equal(t, Config.ImgPath, "./pics")
assert.Equal(t, Config.ImageMap, map[string]string{})
assert.Equal(t, Config.ExhaustPath, "./exhaust")
assert.Equal(t, Config.CacheTTL, 259200)
}
func TestSwitchProxyMode(t *testing.T) {
switchProxyMode()
assert.False(t, ProxyMode)
Config.ImgPath = "https://picsum.photos"
switchProxyMode()
assert.True(t, ProxyMode)
}
func TestParseImgMap(t *testing.T) {
empty := map[string]string{}
good := map[string]string{
"/1": "../pics/dir1",
"http://example.com": "../pics",
"https://example.com": "../pics",
}
bad := map[string]string{
"1": "../pics/dir1",
"httpx://example.com": "../pics",
"ftp://example.com": "../pics",
}
assert.Equal(t, empty, parseImgMap(empty))
assert.Equal(t, empty, parseImgMap(bad))
assert.Equal(t, good, parseImgMap(good))
for k, v := range good {
bad[k] = v
}
assert.Equal(t, good, parseImgMap(bad))
}