diff options
Diffstat (limited to 'src/pkg/http/httptest/recorder.go')
-rw-r--r-- | src/pkg/http/httptest/recorder.go | 44 |
1 files changed, 12 insertions, 32 deletions
diff --git a/src/pkg/http/httptest/recorder.go b/src/pkg/http/httptest/recorder.go index ec7bde8aa..0dd19a617 100644 --- a/src/pkg/http/httptest/recorder.go +++ b/src/pkg/http/httptest/recorder.go @@ -14,20 +14,17 @@ import ( // ResponseRecorder is an implementation of http.ResponseWriter that // records its mutations for later inspection in tests. type ResponseRecorder struct { - Code int // the HTTP response code from WriteHeader - Header http.Header // if non-nil, the headers to populate - Body *bytes.Buffer // if non-nil, the bytes.Buffer to append written data to - Flushed bool - - FakeRemoteAddr string // the fake RemoteAddr to return, or "" for DefaultRemoteAddr - FakeUsingTLS bool // whether to return true from the UsingTLS method + Code int // the HTTP response code from WriteHeader + HeaderMap http.Header // the HTTP response headers + Body *bytes.Buffer // if non-nil, the bytes.Buffer to append written data to + Flushed bool } // NewRecorder returns an initialized ResponseRecorder. func NewRecorder() *ResponseRecorder { return &ResponseRecorder{ - Header: http.Header(make(map[string][]string)), - Body: new(bytes.Buffer), + HeaderMap: make(http.Header), + Body: new(bytes.Buffer), } } @@ -35,29 +32,9 @@ func NewRecorder() *ResponseRecorder { // an explicit DefaultRemoteAddr isn't set on ResponseRecorder. const DefaultRemoteAddr = "1.2.3.4" -// RemoteAddr returns the value of rw.FakeRemoteAddr, if set, else -// returns DefaultRemoteAddr. -func (rw *ResponseRecorder) RemoteAddr() string { - if rw.FakeRemoteAddr != "" { - return rw.FakeRemoteAddr - } - return DefaultRemoteAddr -} - -// UsingTLS returns the fake value in rw.FakeUsingTLS -func (rw *ResponseRecorder) UsingTLS() bool { - return rw.FakeUsingTLS -} - -// SetHeader populates rw.Header, if non-nil. -func (rw *ResponseRecorder) SetHeader(k, v string) { - if rw.Header != nil { - if v == "" { - rw.Header.Del(k) - } else { - rw.Header.Set(k, v) - } - } +// Header returns the response headers. +func (rw *ResponseRecorder) Header() http.Header { + return rw.HeaderMap } // Write always succeeds and writes to rw.Body, if not nil. @@ -65,6 +42,9 @@ func (rw *ResponseRecorder) Write(buf []byte) (int, os.Error) { if rw.Body != nil { rw.Body.Write(buf) } + if rw.Code == 0 { + rw.Code = http.StatusOK + } return len(buf), nil } |