]> Cypherpunks repositories - gostls13.git/commitdiff
net/http/httptest: ResponseRecorder.WriteString
authorNodir Turakulov <nodir@google.com>
Fri, 4 Sep 2015 17:05:31 +0000 (10:05 -0700)
committerBrad Fitzpatrick <bradfitz@golang.org>
Fri, 4 Sep 2015 17:23:41 +0000 (17:23 +0000)
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>

src/net/http/httptest/recorder.go
src/net/http/httptest/recorder_test.go

index 5451f54234c9e6dfa8a5bbc6796495432d478085..30c5140daee2e737c6061d906eea6b57991663d9 100644 (file)
@@ -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 {
index 2b563260c769aaa56079cedd249c375b95231394..bc486e6b63957b6f0a7f69ea8e502edc316a97c8 100644 (file)
@@ -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) {