(t *testing.T)
| 273 | } |
| 274 | |
| 275 | func TestDecompress_ExceedsLimit(t *testing.T) { |
| 276 | e := echo.New() |
| 277 | // Create 2KB of data but limit to 1KB |
| 278 | largeBody := strings.Repeat("A", 2*1024) |
| 279 | gz, _ := gzipString(largeBody) |
| 280 | |
| 281 | req := httptest.NewRequest(http.MethodPost, "/", bytes.NewReader(gz)) |
| 282 | req.Header.Set(echo.HeaderContentEncoding, GZIPEncoding) |
| 283 | rec := httptest.NewRecorder() |
| 284 | c := e.NewContext(req, rec) |
| 285 | |
| 286 | h, err := DecompressConfig{MaxDecompressedSize: 1024}.ToMiddleware() // 1KB limit |
| 287 | assert.NoError(t, err) |
| 288 | |
| 289 | err = h(func(c *echo.Context) error { |
| 290 | _, readErr := io.ReadAll(c.Request().Body) |
| 291 | return readErr |
| 292 | })(c) |
| 293 | |
| 294 | // Should return 413 error |
| 295 | assert.Error(t, err) |
| 296 | he, ok := err.(echo.HTTPStatusCoder) |
| 297 | assert.True(t, ok) |
| 298 | assert.Equal(t, http.StatusRequestEntityTooLarge, he.StatusCode()) |
| 299 | } |
| 300 | |
| 301 | func TestDecompress_AtExactLimit(t *testing.T) { |
| 302 | e := echo.New() |
nothing calls this directly
no test coverage detected
searching dependent graphs…