An image served through an encrypted URL must carry an ETag, a request whose If-None-Match is that ETag must get 304 with no body, HEAD must get 200 with the headers and no body, and the server must route HEAD on /v1/e/ to its handler instead of answering 405. Model: opus-5-5
28 lines
768 B
Go
28 lines
768 B
Go
package server
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
)
|
|
|
|
// TestEncryptedImageRouteAnswersHEAD verifies that HEAD on the encrypted image
|
|
// route reaches its handler, as GET does, instead of being answered 405 Method
|
|
// Not Allowed. The handler refuses a token it cannot decrypt with 400, so that
|
|
// status shows the request got through.
|
|
func TestEncryptedImageRouteAnswersHEAD(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
s := newTestServer(t)
|
|
|
|
rec := httptest.NewRecorder()
|
|
s.ServeHTTP(rec, httptest.NewRequestWithContext(
|
|
t.Context(), http.MethodHead, encryptedImagePath, nil))
|
|
t.Logf("status %d", rec.Code)
|
|
|
|
if rec.Code != http.StatusBadRequest {
|
|
t.Errorf("status = %d, want %d from the encrypted image handler",
|
|
rec.Code, http.StatusBadRequest)
|
|
}
|
|
}
|