Something went wrong. Try again.
Fetch, resize, reformat, and cache Atmosphere avatar images atp.pics
atproto
Something went wrong. Try again.
Go
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110//go:build cgo
package transform_test
import ( "image" "image/color" "image/jpeg" "bytes" "testing"
"atp.pics/internal/transform")
func makeJPEG(w, h int) []byte { img := image.NewRGBA(image.Rect(0, 0, w, h)) for y := range h { for x := range w { img.Set(x, y, color.RGBA{R: 100, G: 150, B: 200, A: 255}) } } var buf bytes.Buffer _ = jpeg.Encode(&buf, img, &jpeg.Options{Quality: 90}) return buf.Bytes()}
func TestTransform_ProportionalResize_WidthOnly(t *testing.T) { src := makeJPEG(400, 200) out, ct, err := transform.Transform(src, "image/jpeg", transform.Params{Width: 200, Format: "webp"}) if err != nil { t.Fatalf("Transform error: %v", err) } if ct != "image/webp" { t.Errorf("Content-Type = %q, want image/webp", ct) } if len(out) == 0 { t.Error("output is empty") }}
func TestTransform_ProportionalResize_HeightOnly(t *testing.T) { src := makeJPEG(400, 200) out, ct, err := transform.Transform(src, "image/jpeg", transform.Params{Height: 100, Format: "webp"}) if err != nil { t.Fatalf("Transform error: %v", err) } if ct != "image/webp" { t.Errorf("Content-Type = %q, want image/webp", ct) } if len(out) == 0 { t.Error("output is empty") }}
func TestTransform_CoverFit_BothDimensions(t *testing.T) { src := makeJPEG(400, 200) out, ct, err := transform.Transform(src, "image/jpeg", transform.Params{Width: 100, Height: 100, Format: "webp"}) if err != nil { t.Fatalf("Transform error: %v", err) } if ct != "image/webp" { t.Errorf("Content-Type = %q, want image/webp", ct) } if len(out) == 0 { t.Error("output is empty") }}
func TestTransform_JPEG_Output(t *testing.T) { src := makeJPEG(200, 200) out, ct, err := transform.Transform(src, "image/jpeg", transform.Params{Width: 100, Height: 100, Quality: 80, Format: "jpg"}) if err != nil { t.Fatalf("Transform error: %v", err) } if ct != "image/jpeg" { t.Errorf("Content-Type = %q, want image/jpeg", ct) } if len(out) == 0 { t.Error("output is empty") }}
func TestTransform_PNG_Output(t *testing.T) { src := makeJPEG(200, 200) out, ct, err := transform.Transform(src, "image/jpeg", transform.Params{Width: 100, Height: 100, Format: "png"}) if err != nil { t.Fatalf("Transform error: %v", err) } if ct != "image/png" { t.Errorf("Content-Type = %q, want image/png", ct) } if len(out) == 0 { t.Error("output is empty") }}
func TestTransform_NoResize_DefaultDimensions(t *testing.T) { src := makeJPEG(300, 150) out, ct, err := transform.Transform(src, "image/jpeg", transform.Params{Format: "webp", Quality: 85}) if err != nil { t.Fatalf("Transform error: %v", err) } if ct != "image/webp" { t.Errorf("Content-Type = %q, want image/webp", ct) } if len(out) == 0 { t.Error("output is empty") }}