浏览代码

More unit tests for ResponseWriter

Manu Mtz-Almeida 10 年之前
父节点
当前提交
c61c547539
共有 2 个文件被更改,包括 6 次插入1 次删除
  1. 3 1
      response_writer.go
  2. 3 0
      response_writer_test.go

+ 3 - 1
response_writer.go

@@ -79,7 +79,9 @@ func (w *responseWriter) Written() bool {
 
 
 // Implements the http.Hijacker interface
 // Implements the http.Hijacker interface
 func (w *responseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) {
 func (w *responseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) {
-	w.size = 0 // this prevents Gin to write the HTTP headers
+	if w.size < 0 {
+		w.size = 0
+	}
 	return w.ResponseWriter.(http.Hijacker).Hijack()
 	return w.ResponseWriter.(http.Hijacker).Hijack()
 }
 }
 
 

+ 3 - 0
response_writer_test.go

@@ -15,6 +15,9 @@ import (
 var _ ResponseWriter = &responseWriter{}
 var _ ResponseWriter = &responseWriter{}
 var _ http.ResponseWriter = &responseWriter{}
 var _ http.ResponseWriter = &responseWriter{}
 var _ http.ResponseWriter = ResponseWriter(&responseWriter{})
 var _ http.ResponseWriter = ResponseWriter(&responseWriter{})
+var _ http.Hijacker = ResponseWriter(&responseWriter{})
+var _ http.Flusher = ResponseWriter(&responseWriter{})
+var _ http.CloseNotifier = ResponseWriter(&responseWriter{})
 
 
 func init() {
 func init() {
 	SetMode(TestMode)
 	SetMode(TestMode)