Files
imgproxy/imagetype/type_test.go
Victor Sokolov 2236bd8170 IMG-23: replace an old imagetype with the new one (#1482)
* imagetype (new) -> imagetype

* Always fallback in C-D, GetTypeMap -> GetTypeByName

* Do not send origin ContentType
2025-08-13 11:36:25 +02:00

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)
})
}
}