mirror of
https://github.com/imgproxy/imgproxy.git
synced 2025-09-27 20:17:20 +02:00
* imagetype (new) -> imagetype * Always fallback in C-D, GetTypeMap -> GetTypeByName * Do not send origin ContentType
60 lines
1.6 KiB
Go
60 lines
1.6 KiB
Go
package imagetype
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestDefaultTypesRegistered(t *testing.T) {
|
|
// Test that all default types are properly registered by init()
|
|
defaultTypes := []Type{
|
|
JPEG, JXL, PNG, WEBP, GIF, ICO, SVG, HEIC, AVIF, BMP, TIFF,
|
|
}
|
|
|
|
for _, typ := range defaultTypes {
|
|
t.Run(typ.String(), func(t *testing.T) {
|
|
desc := GetTypeDesc(typ)
|
|
require.NotNil(t, desc)
|
|
|
|
// Verify that the description has non-empty fields
|
|
require.NotEmpty(t, desc.String)
|
|
require.NotEmpty(t, desc.Ext)
|
|
require.NotEqual(t, "application/octet-stream", desc.Mime)
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestDetect(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
file string
|
|
want Type
|
|
}{
|
|
{"JPEG", "../testdata/test-images/jpg/jpg.jpg", JPEG},
|
|
{"JXL", "../testdata/test-images/jxl/jxl.jxl", JXL},
|
|
{"PNG", "../testdata/test-images/png/png.png", PNG},
|
|
{"WEBP", "../testdata/test-images/webp/webp.webp", WEBP},
|
|
{"GIF", "../testdata/test-images/gif/gif.gif", GIF},
|
|
{"ICO", "../testdata/test-images/ico/png-256x256.ico", ICO},
|
|
{"SVG", "../testdata/test-images/svg/svg.svg", SVG},
|
|
{"HEIC", "../testdata/test-images/heif/heif.heif", HEIC},
|
|
{"BMP", "../testdata/test-images/bmp/24-bpp.bmp", BMP},
|
|
{"TIFF", "../testdata/test-images/tiff/tiff.tiff", TIFF},
|
|
{"SVG", "../testdata/test-images/svg/svg.svg", SVG},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
f, err := os.Open(tt.file)
|
|
require.NoError(t, err)
|
|
defer f.Close()
|
|
|
|
got, err := Detect(f)
|
|
require.NoError(t, err)
|
|
require.Equal(t, tt.want, got)
|
|
})
|
|
}
|
|
}
|