mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
net/http: only call client SetCookie when needed
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/6968049
This commit is contained in:
parent
ff5d47ebba
commit
d0283ab62a
2 changed files with 11 additions and 1 deletions
|
|
@ -98,7 +98,9 @@ func (c *Client) send(req *Request) (*Response, error) {
|
|||
return nil, err
|
||||
}
|
||||
if c.Jar != nil {
|
||||
c.Jar.SetCookies(req.URL, resp.Cookies())
|
||||
if rc := resp.Cookies(); len(rc) > 0 {
|
||||
c.Jar.SetCookies(req.URL, rc)
|
||||
}
|
||||
}
|
||||
return resp, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -418,6 +418,9 @@ func matchReturnedCookies(t *testing.T, expected, given []*Cookie) {
|
|||
func TestJarCalls(t *testing.T) {
|
||||
ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
|
||||
pathSuffix := r.RequestURI[1:]
|
||||
if r.RequestURI == "/nosetcookie" {
|
||||
return // dont set cookies for this path
|
||||
}
|
||||
SetCookie(w, &Cookie{Name: "name" + pathSuffix, Value: "val" + pathSuffix})
|
||||
if r.RequestURI == "/" {
|
||||
Redirect(w, r, "http://secondhost.fake/secondpath", 302)
|
||||
|
|
@ -437,11 +440,16 @@ func TestJarCalls(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, err = c.Get("http://firsthost.fake/nosetcookie")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
got := jar.log.String()
|
||||
want := `Cookies("http://firsthost.fake/")
|
||||
SetCookie("http://firsthost.fake/", [name=val])
|
||||
Cookies("http://secondhost.fake/secondpath")
|
||||
SetCookie("http://secondhost.fake/secondpath", [namesecondpath=valsecondpath])
|
||||
Cookies("http://firsthost.fake/nosetcookie")
|
||||
`
|
||||
if got != want {
|
||||
t.Errorf("Got Jar calls:\n%s\nWant:\n%s", got, want)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue