JoinURL now returns *url.URL and error
This commit is contained in:
@ -22,14 +22,14 @@ type Response struct {
|
||||
}
|
||||
|
||||
// JoinURL joins base response URL and provided relative URL.
|
||||
func (r *Response) JoinURL(relativeURL string) string {
|
||||
func (r *Response) JoinURL(relativeURL string) (*url.URL, error) {
|
||||
parsedRelativeURL, err := url.Parse(relativeURL)
|
||||
if err != nil {
|
||||
return ""
|
||||
return nil, err
|
||||
}
|
||||
|
||||
joinedURL := r.Request.URL.ResolveReference(parsedRelativeURL)
|
||||
return joinedURL.String()
|
||||
return joinedURL, nil
|
||||
}
|
||||
|
||||
// IsHTML checks if response content is HTML by looking content-type header
|
||||
|
@ -9,5 +9,7 @@ func TestResponse_JoinURL(t *testing.T) {
|
||||
req, _ := NewRequest("GET", "https://localhost.com/test/a.html", nil)
|
||||
resp := Response{Request: req}
|
||||
|
||||
assert.Equal(t, "https://localhost.com/source", resp.JoinURL("/source"))
|
||||
joinedURL, err := resp.JoinURL("/source")
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "https://localhost.com/source", joinedURL.String())
|
||||
}
|
||||
|
Reference in New Issue
Block a user