From: Nodir Turakulov Date: Fri, 4 Sep 2015 17:05:31 +0000 (-0700) Subject: net/http/httptest: ResponseRecorder.WriteString X-Git-Tag: go1.6beta1~1176 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=8c2c35debebaaa86aab1f180940f0a77db0b6f30;p=gostls13.git net/http/httptest: ResponseRecorder.WriteString Fixes #11000 Change-Id: Ic137e8a6c5c6b5b7eee213aca9acf78368e1d686 Reviewed-on: https://go-review.googlesource.com/14296 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- diff --git a/src/net/http/httptest/recorder.go b/src/net/http/httptest/recorder.go index 5451f54234..30c5140dae 100644 --- a/src/net/http/httptest/recorder.go +++ b/src/net/http/httptest/recorder.go @@ -55,6 +55,17 @@ func (rw *ResponseRecorder) Write(buf []byte) (int, error) { 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. func (rw *ResponseRecorder) WriteHeader(code int) { if !rw.wroteHeader { diff --git a/src/net/http/httptest/recorder_test.go b/src/net/http/httptest/recorder_test.go index 2b563260c7..bc486e6b63 100644 --- a/src/net/http/httptest/recorder_test.go +++ b/src/net/http/httptest/recorder_test.go @@ -6,6 +6,7 @@ package httptest import ( "fmt" + "io" "net/http" "testing" ) @@ -67,6 +68,13 @@ func TestRecorder(t *testing.T) { }, 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", func(w http.ResponseWriter, r *http.Request) {