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
|
return nil, err
|
||||||
}
|
}
|
||||||
if c.Jar != nil {
|
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
|
return resp, err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -418,6 +418,9 @@ func matchReturnedCookies(t *testing.T, expected, given []*Cookie) {
|
||||||
func TestJarCalls(t *testing.T) {
|
func TestJarCalls(t *testing.T) {
|
||||||
ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
|
ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
|
||||||
pathSuffix := r.RequestURI[1:]
|
pathSuffix := r.RequestURI[1:]
|
||||||
|
if r.RequestURI == "/nosetcookie" {
|
||||||
|
return // dont set cookies for this path
|
||||||
|
}
|
||||||
SetCookie(w, &Cookie{Name: "name" + pathSuffix, Value: "val" + pathSuffix})
|
SetCookie(w, &Cookie{Name: "name" + pathSuffix, Value: "val" + pathSuffix})
|
||||||
if r.RequestURI == "/" {
|
if r.RequestURI == "/" {
|
||||||
Redirect(w, r, "http://secondhost.fake/secondpath", 302)
|
Redirect(w, r, "http://secondhost.fake/secondpath", 302)
|
||||||
|
|
@ -437,11 +440,16 @@ func TestJarCalls(t *testing.T) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
_, err = c.Get("http://firsthost.fake/nosetcookie")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
got := jar.log.String()
|
got := jar.log.String()
|
||||||
want := `Cookies("http://firsthost.fake/")
|
want := `Cookies("http://firsthost.fake/")
|
||||||
SetCookie("http://firsthost.fake/", [name=val])
|
SetCookie("http://firsthost.fake/", [name=val])
|
||||||
Cookies("http://secondhost.fake/secondpath")
|
Cookies("http://secondhost.fake/secondpath")
|
||||||
SetCookie("http://secondhost.fake/secondpath", [namesecondpath=valsecondpath])
|
SetCookie("http://secondhost.fake/secondpath", [namesecondpath=valsecondpath])
|
||||||
|
Cookies("http://firsthost.fake/nosetcookie")
|
||||||
`
|
`
|
||||||
if got != want {
|
if got != want {
|
||||||
t.Errorf("Got Jar calls:\n%s\nWant:\n%s", 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