check / check (push) Failing after 3m24s
Failing tests, ahead of the fix: an upstream answering image/svg+xml is answered 415 on the image route, also for orig; both image routes answer 415 for an unaccepted upstream content type and for orig of an input the processor cannot name; and the processor refuses orig of a TIFF instead of saving it as JPEG. Model: opus-5-5
42 lines
1.3 KiB
Go
42 lines
1.3 KiB
Go
package server
|
|
|
|
import (
|
|
"io"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
)
|
|
|
|
// TestImageProxyRefusesSVG requests an image the upstream answers as SVG,
|
|
// at its own size and format and resized as PNG, through pixa's router,
|
|
// upstream fetcher and image processor. pixa does not accept SVG as a
|
|
// source, so each request is answered 415, never with an image.
|
|
func TestImageProxyRefusesSVG(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
upstream := httptest.NewServer(http.HandlerFunc(
|
|
func(w http.ResponseWriter, _ *http.Request) {
|
|
w.Header().Set("Content-Type", "image/svg+xml")
|
|
_, _ = io.WriteString(w, `<svg xmlns="http://www.w3.org/2000/svg" `+
|
|
`width="64" height="48"><rect width="64" height="48"/></svg>`)
|
|
}))
|
|
t.Cleanup(upstream.Close)
|
|
|
|
s, _, _ := startImageProxy(t, upstream)
|
|
|
|
for _, sizeFormat := range []string{"orig.orig", "32x24.png"} {
|
|
target := "/v1/image/" + upstreamHost + "/drawing.svg/" + sizeFormat
|
|
|
|
rec := httptest.NewRecorder()
|
|
s.ServeHTTP(rec, httptest.NewRequestWithContext(
|
|
t.Context(), http.MethodGet, target, nil))
|
|
t.Logf("GET %s: %d, Content-Type %s, body %s",
|
|
target, rec.Code, rec.Header().Get("Content-Type"), rec.Body.String())
|
|
|
|
if rec.Code != http.StatusUnsupportedMediaType {
|
|
t.Errorf("GET %s status = %d, want %d",
|
|
target, rec.Code, http.StatusUnsupportedMediaType)
|
|
}
|
|
}
|
|
}
|