104 lines
2.4 KiB
Go
104 lines
2.4 KiB
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/h2non/bimg"
|
|
)
|
|
|
|
func TestExtractImageTypeFromMime(t *testing.T) {
|
|
files := []struct {
|
|
mime string
|
|
expected string
|
|
}{
|
|
{"image/jpeg", "jpeg"},
|
|
{"/png", "png"},
|
|
{"png", ""},
|
|
{"multipart/form-data; encoding=utf-8", "form-data"},
|
|
{"", ""},
|
|
}
|
|
|
|
for _, file := range files {
|
|
if ExtractImageTypeFromMime(file.mime) != file.expected {
|
|
t.Fatalf("Invalid mime type: %s != %s", file.mime, file.expected)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestIsImageTypeSupported(t *testing.T) {
|
|
files := []struct {
|
|
name string
|
|
expected bool
|
|
}{
|
|
{"image/jpeg", true},
|
|
{"image/png", true},
|
|
{"image/webp", true},
|
|
{"IMAGE/JPEG", true},
|
|
{"png", false},
|
|
{"multipart/form-data; encoding=utf-8", false},
|
|
{"application/json", false},
|
|
{"image/gif", bimg.IsImageTypeSupportedByVips(bimg.GIF).Load},
|
|
{"image/svg+xml", bimg.IsImageTypeSupportedByVips(bimg.SVG).Load},
|
|
{"image/svg", bimg.IsImageTypeSupportedByVips(bimg.SVG).Load},
|
|
{"image/tiff", bimg.IsImageTypeSupportedByVips(bimg.TIFF).Load},
|
|
{"application/pdf", bimg.IsImageTypeSupportedByVips(bimg.PDF).Load},
|
|
{"text/plain", false},
|
|
{"blablabla", false},
|
|
{"", false},
|
|
}
|
|
|
|
for _, file := range files {
|
|
if IsImageMimeTypeSupported(file.name) != file.expected {
|
|
t.Fatalf("Invalid type: %s != %t", file.name, file.expected)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestImageType(t *testing.T) {
|
|
files := []struct {
|
|
name string
|
|
expected bimg.ImageType
|
|
}{
|
|
{"jpeg", bimg.JPEG},
|
|
{"png", bimg.PNG},
|
|
{"webp", bimg.WEBP},
|
|
{"tiff", bimg.TIFF},
|
|
{"gif", bimg.GIF},
|
|
{"svg", bimg.SVG},
|
|
{"pdf", bimg.PDF},
|
|
{"multipart/form-data; encoding=utf-8", bimg.UNKNOWN},
|
|
{"json", bimg.UNKNOWN},
|
|
{"text", bimg.UNKNOWN},
|
|
{"blablabla", bimg.UNKNOWN},
|
|
{"", bimg.UNKNOWN},
|
|
}
|
|
|
|
for _, file := range files {
|
|
if ImageType(file.name) != file.expected {
|
|
t.Fatalf("Invalid type: %s != %s", file.name, bimg.ImageTypes[file.expected])
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestGetImageMimeType(t *testing.T) {
|
|
files := []struct {
|
|
name bimg.ImageType
|
|
expected string
|
|
}{
|
|
{bimg.JPEG, "image/jpeg"},
|
|
{bimg.PNG, "image/png"},
|
|
{bimg.WEBP, "image/webp"},
|
|
{bimg.TIFF, "image/tiff"},
|
|
{bimg.GIF, "image/gif"},
|
|
{bimg.PDF, "application/pdf"},
|
|
{bimg.SVG, "image/svg+xml"},
|
|
{bimg.UNKNOWN, "image/jpeg"},
|
|
}
|
|
|
|
for _, file := range files {
|
|
if GetImageMimeType(file.name) != file.expected {
|
|
t.Fatalf("Invalid type: %s != %s", bimg.ImageTypes[file.name], file.expected)
|
|
}
|
|
}
|
|
}
|