forked from mirror/gin
console logger HTTP status bug fixed and the corresponding unit test added (#3453)
This commit is contained in:
parent
82e1c53cc0
commit
41f2669ebc
|
@ -61,6 +61,7 @@ func (w *responseWriter) WriteHeader(code int) {
|
||||||
if code > 0 && w.status != code {
|
if code > 0 && w.status != code {
|
||||||
if w.Written() {
|
if w.Written() {
|
||||||
debugPrint("[WARNING] Headers were already written. Wanted to override status code %d with %d", w.status, code)
|
debugPrint("[WARNING] Headers were already written. Wanted to override status code %d with %d", w.status, code)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
w.status = code
|
w.status = code
|
||||||
}
|
}
|
||||||
|
|
|
@ -132,3 +132,21 @@ func TestResponseWriterFlush(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
|
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestResponseWriterStatusCode(t *testing.T) {
|
||||||
|
testWriter := httptest.NewRecorder()
|
||||||
|
writer := &responseWriter{}
|
||||||
|
writer.reset(testWriter)
|
||||||
|
w := ResponseWriter(writer)
|
||||||
|
|
||||||
|
w.WriteHeader(http.StatusOK)
|
||||||
|
w.WriteHeaderNow()
|
||||||
|
|
||||||
|
assert.Equal(t, http.StatusOK, w.Status())
|
||||||
|
assert.True(t, w.Written())
|
||||||
|
|
||||||
|
w.WriteHeader(http.StatusUnauthorized)
|
||||||
|
|
||||||
|
// status must be 200 although we tried to change it
|
||||||
|
assert.Equal(t, http.StatusOK, w.Status())
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue