diff --git a/response_writer.go b/response_writer.go index 9035e6f1..142a7cc5 100644 --- a/response_writer.go +++ b/response_writer.go @@ -44,6 +44,9 @@ type ResponseWriter interface { // Pusher get the http.Pusher for server push Pusher() http.Pusher + + // Unwrap get the underlying http.ResponseWriter + Unwrap() http.ResponseWriter } type responseWriter struct { diff --git a/response_writer_test.go b/response_writer_test.go index dfc1d2c6..255559a7 100644 --- a/response_writer_test.go +++ b/response_writer_test.go @@ -33,12 +33,23 @@ func init() { SetMode(TestMode) } +// test for ResponseWriter.Unwrap func TestResponseWriterUnwrap(t *testing.T) { testWriter := httptest.NewRecorder() writer := &responseWriter{ResponseWriter: testWriter} assert.Same(t, testWriter, writer.Unwrap()) } +func TestResponseWriterUnwrapViaInterface(t *testing.T) { + testWriter := httptest.NewRecorder() + writer := &responseWriter{} + writer.reset(testWriter) + var w ResponseWriter = writer + + unwrapped := w.Unwrap() + assert.Same(t, testWriter, unwrapped) +} + func TestResponseWriterReset(t *testing.T) { testWriter := httptest.NewRecorder() writer := &responseWriter{}