diff options
| author | Brad Fitzpatrick <bradfitz@golang.org> | 2016-10-21 12:03:41 +0100 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@golang.org> | 2016-10-22 01:22:56 +0000 |
| commit | aa1e063efd7376e268ee592ebe078c6d05b0bdf8 (patch) | |
| tree | 5a64bb48009aad34b2ca10b0b52bb84971acbe04 /src/net/http/request_test.go | |
| parent | ca4431a3846de4b1c5cf2388ca22d915f510f7fd (diff) | |
| download | go-aa1e063efd7376e268ee592ebe078c6d05b0bdf8.tar.xz | |
net/http: add Request.GetBody func for 307/308 redirects
Updates #10767
Change-Id: I197535f71bc2dc45e783f38d8031aa717d50fd80
Reviewed-on: https://go-review.googlesource.com/31733
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/net/http/request_test.go')
| -rw-r--r-- | src/net/http/request_test.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/net/http/request_test.go b/src/net/http/request_test.go index f12b41cf1b..e463d79492 100644 --- a/src/net/http/request_test.go +++ b/src/net/http/request_test.go @@ -784,6 +784,47 @@ func TestMaxBytesReaderStickyError(t *testing.T) { } } +// verify that NewRequest sets Request.GetBody and that it works +func TestNewRequestGetBody(t *testing.T) { + tests := []struct { + r io.Reader + }{ + {r: strings.NewReader("hello")}, + {r: bytes.NewReader([]byte("hello"))}, + {r: bytes.NewBuffer([]byte("hello"))}, + } + for i, tt := range tests { + req, err := NewRequest("POST", "http://foo.tld/", tt.r) + if err != nil { + t.Errorf("test[%d]: %v", i, err) + continue + } + if req.Body == nil { + t.Errorf("test[%d]: Body = nil", i) + continue + } + if req.GetBody == nil { + t.Errorf("test[%d]: GetBody = nil", i) + continue + } + slurp1, err := ioutil.ReadAll(req.Body) + if err != nil { + t.Errorf("test[%d]: ReadAll(Body) = %v", i, err) + } + newBody, err := req.GetBody() + if err != nil { + t.Errorf("test[%d]: GetBody = %v", i, err) + } + slurp2, err := ioutil.ReadAll(newBody) + if err != nil { + t.Errorf("test[%d]: ReadAll(GetBody()) = %v", i, err) + } + if string(slurp1) != string(slurp2) { + t.Errorf("test[%d]: Body %q != GetBody %q", i, slurp1, slurp2) + } + } +} + func testMissingFile(t *testing.T, req *Request) { f, fh, err := req.FormFile("missing") if f != nil { |
