(t *testing.T)
| 3350 | } |
| 3351 | |
| 3352 | func TestInterceptedHeader(t *testing.T) { |
| 3353 | w := httptest.NewRecorder() |
| 3354 | c, r := CreateTestContext(w) |
| 3355 | |
| 3356 | r.Use(func(c *Context) { |
| 3357 | i := interceptedWriter{ |
| 3358 | ResponseWriter: c.Writer, |
| 3359 | b: bytes.NewBuffer(nil), |
| 3360 | } |
| 3361 | c.Writer = i |
| 3362 | c.Next() |
| 3363 | c.Header("X-Test", "overridden") |
| 3364 | c.Writer = i.ResponseWriter |
| 3365 | }) |
| 3366 | r.GET("/", func(c *Context) { |
| 3367 | c.Header("X-Test", "original") |
| 3368 | c.Header("X-Test-2", "present") |
| 3369 | c.String(http.StatusOK, "hello world") |
| 3370 | }) |
| 3371 | c.Request = httptest.NewRequest(http.MethodGet, "/", nil) |
| 3372 | r.HandleContext(c) |
| 3373 | // Result() has headers frozen when WriteHeaderNow() has been called |
| 3374 | // Compared to this time, this is when the response headers will be flushed |
| 3375 | // As response is flushed on c.String, the Header cannot be set by the first |
| 3376 | // middleware. Assert this |
| 3377 | assert.Empty(t, w.Result().Header.Get("X-Test")) |
| 3378 | assert.Equal(t, "present", w.Result().Header.Get("X-Test-2")) |
| 3379 | } |
| 3380 | |
| 3381 | func TestContextNext(t *testing.T) { |
| 3382 | c, _ := CreateTestContext(httptest.NewRecorder()) |
nothing calls this directly
no test coverage detected