From 615586fceab10ced572cf87be3f0d1da6ed5f6dc Mon Sep 17 00:00:00 2001 From: sneak Date: Thu, 8 Jan 2026 13:09:40 -0800 Subject: [PATCH] Add failing test for AVIF decoding Test verifies that AVIF images can be decoded and processed. Currently fails because AVIF decoding is not implemented. --- internal/imgcache/processor_test.go | 41 ++++++++++++++++++++++++++++ internal/imgcache/testdata/red.avif | Bin 0 -> 281 bytes 2 files changed, 41 insertions(+) create mode 100644 internal/imgcache/testdata/red.avif diff --git a/internal/imgcache/processor_test.go b/internal/imgcache/processor_test.go index 209b141..50fa026 100644 --- a/internal/imgcache/processor_test.go +++ b/internal/imgcache/processor_test.go @@ -9,6 +9,7 @@ import ( "image/jpeg" "image/png" "io" + "os" "testing" ) @@ -416,6 +417,46 @@ func TestImageProcessor_EncodeWebP(t *testing.T) { } } +func TestImageProcessor_DecodeAVIF(t *testing.T) { + proc := NewImageProcessor() + ctx := context.Background() + + // Load test AVIF file + input, err := os.ReadFile("testdata/red.avif") + if err != nil { + t.Fatalf("failed to read test AVIF: %v", err) + } + + // Request resize and convert to JPEG + req := &ImageRequest{ + Size: Size{Width: 2, Height: 2}, + Format: FormatJPEG, + Quality: 85, + FitMode: FitCover, + } + + result, err := proc.Process(ctx, bytes.NewReader(input), req) + if err != nil { + t.Fatalf("Process() error = %v, want nil (AVIF decoding should work)", err) + } + defer result.Content.Close() + + // Verify output is valid JPEG + data, err := io.ReadAll(result.Content) + if err != nil { + t.Fatalf("failed to read result: %v", err) + } + + mime, err := DetectFormat(data) + if err != nil { + t.Fatalf("DetectFormat() error = %v", err) + } + + if mime != MIMETypeJPEG { + t.Errorf("Output format = %v, want %v", mime, MIMETypeJPEG) + } +} + func TestImageProcessor_RejectsUnsupportedOutputFormat_AVIF(t *testing.T) { proc := NewImageProcessor() ctx := context.Background() diff --git a/internal/imgcache/testdata/red.avif b/internal/imgcache/testdata/red.avif new file mode 100644 index 0000000000000000000000000000000000000000..ae4624ba21e6803af856e275967a8231fa1b9a55 GIT binary patch literal 281 zcmZQzV30{GsVqn=%S>Ycg51nBLl8SRGZDnUmYZ6V2oeVZ#f+4kA_$X#p&&E41jdHZ zdkW|Xd$xjCHTpSn}fe-|KL1_jCc_2?YGcyltDOgk#$Vp`asRF7^EHf|! zF~c$oiVA?VMP@;AK9J@~EHiX&bjSh8iDVWRq=Fbgzyier1(_9@AOU6`9v&bimRXPs zb3f1#%#BRUKvDJFl*AGt1}=^WmfBuMUbcruf)WgT7LQvP7&Zupyfs+zn&%Gyqc|_Q literal 0 HcmV?d00001