for _, v := range vv {
if !httpguts.ValidHeaderFieldValue(v) {
req.closeBody()
- return nil, fmt.Errorf("net/http: invalid header field value %q for key %v", v, k)
+ // Don't include the value in the error, because it may be sensitive.
+ return nil, fmt.Errorf("net/http: invalid header field value for %q", k)
}
}
}
Method: " ",
URL: u,
},
- wantErr: "invalid method",
+ wantErr: `invalid method " "`,
},
{
name: "nil URL",
req: &Request{
Method: "GET",
},
- wantErr: "nil Request.URL",
+ wantErr: `nil Request.URL`,
},
{
name: "invalid header key",
Header: Header{"💡": {"emoji"}},
URL: u,
},
- wantErr: "invalid header field name",
+ wantErr: `invalid header field name "💡"`,
},
{
name: "invalid header value",
Header: Header{"key": {"\x19"}},
URL: u,
},
- wantErr: "invalid header field value",
+ wantErr: `invalid header field value for "key"`,
},
{
name: "non HTTP(s) scheme",
Method: "POST",
URL: &url.URL{Scheme: "faux"},
},
- wantErr: "unsupported protocol scheme",
+ wantErr: `unsupported protocol scheme "faux"`,
},
{
name: "no Host in URL",
Method: "POST",
URL: &url.URL{Scheme: "http"},
},
- wantErr: "no Host",
+ wantErr: `no Host in request URL`,
},
}
if !bc {
t.Fatal("Expected body to have been closed")
}
- if g, w := err.Error(), tt.wantErr; !strings.Contains(g, w) {
- t.Fatalf("Error mismatch\n\t%q\ndoes not contain\n\t%q", g, w)
+ if g, w := err.Error(), tt.wantErr; !strings.HasSuffix(g, w) {
+ t.Fatalf("Error mismatch: %q does not end with %q", g, w)
}
})
}