You've already forked img-proxy-url-generator
added tests
updated go version and packages
This commit is contained in:
21
generator/base64_test.go
Normal file
21
generator/base64_test.go
Normal file
@@ -0,0 +1,21 @@
|
||||
package generator
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestGenerator_GenerateBase64(t *testing.T) {
|
||||
g, err := NewGenerator(Config{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
url, err := g.generateBase64Url([]byte("test://file"))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if url != "dGVzdDovL2ZpbGU" {
|
||||
t.Errorf("url is wrong: %s", url)
|
||||
}
|
||||
}
|
||||
@@ -32,7 +32,10 @@ func (g *Generator) generateBaseAesEncUrl(file []byte) (string, error) {
|
||||
mode := cipher.NewCBCEncrypter(c, iv)
|
||||
mode.CryptBlocks(ciphertext[aes.BlockSize:], data)
|
||||
|
||||
encryptedURL := g.generateBase64Url(ciphertext)
|
||||
encryptedURL, err := g.generateBase64Url(ciphertext)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return "enc/" + encryptedURL, nil
|
||||
}
|
||||
|
||||
45
generator/format_test.go
Normal file
45
generator/format_test.go
Normal file
@@ -0,0 +1,45 @@
|
||||
package generator
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestGenerator_StringToFormat(t *testing.T) {
|
||||
g, err := NewGenerator(Config{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
formats := []string{"jpg", "jpeg", "png", "gif", "bmp", "webp", "ico", ""}
|
||||
|
||||
for _, format := range formats {
|
||||
format, err := g.StringToFormat(format)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if !isFormat(format) {
|
||||
t.Error("format not match")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestGenerator_StringToFormatError(t *testing.T) {
|
||||
g, err := NewGenerator(Config{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = g.StringToFormat("notaformat")
|
||||
if err == nil {
|
||||
t.Error("format did not return error")
|
||||
}
|
||||
}
|
||||
|
||||
func isFormat(t interface{}) bool {
|
||||
switch t.(type) {
|
||||
case Format:
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
|
||||
}
|
||||
}
|
||||
16
generator/plain_test.go
Normal file
16
generator/plain_test.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package generator
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestGenerator_GenerateUrl(t *testing.T) {
|
||||
g, err := NewGenerator(Config{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
url, _ := g.generatePlainUrl("local:///test.png")
|
||||
|
||||
if url != "plain/local:///test.png" {
|
||||
t.Errorf("url is %s", url)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user