1
0
mirror of https://github.com/golang/go synced 2024-11-13 19:00:25 -07:00

net/http/httptest: ResponseRecorder.WriteString

Fixes #11000

Change-Id: Ic137e8a6c5c6b5b7eee213aca9acf78368e1d686
Reviewed-on: https://go-review.googlesource.com/14296
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Nodir Turakulov 2015-09-04 10:05:31 -07:00 committed by Brad Fitzpatrick
parent 3c37a61455
commit 8c2c35debe
2 changed files with 19 additions and 0 deletions

View File

@ -55,6 +55,17 @@ func (rw *ResponseRecorder) Write(buf []byte) (int, error) {
return len(buf), nil return len(buf), nil
} }
// WriteString always succeeds and writes to rw.Body, if not nil.
func (rw *ResponseRecorder) WriteString(str string) (int, error) {
if !rw.wroteHeader {
rw.WriteHeader(200)
}
if rw.Body != nil {
rw.Body.WriteString(str)
}
return len(str), nil
}
// WriteHeader sets rw.Code. // WriteHeader sets rw.Code.
func (rw *ResponseRecorder) WriteHeader(code int) { func (rw *ResponseRecorder) WriteHeader(code int) {
if !rw.wroteHeader { if !rw.wroteHeader {

View File

@ -6,6 +6,7 @@ package httptest
import ( import (
"fmt" "fmt"
"io"
"net/http" "net/http"
"testing" "testing"
) )
@ -67,6 +68,13 @@ func TestRecorder(t *testing.T) {
}, },
check(hasStatus(200), hasContents("hi first"), hasFlush(false)), check(hasStatus(200), hasContents("hi first"), hasFlush(false)),
}, },
{
"write string",
func(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "hi first")
},
check(hasStatus(200), hasContents("hi first"), hasFlush(false)),
},
{ {
"flush", "flush",
func(w http.ResponseWriter, r *http.Request) { func(w http.ResponseWriter, r *http.Request) {