diff --git a/pkg/cli/crawl/request_modifiers.go b/pkg/cli/crawl/request_modifiers.go index c299d7d..129941e 100644 --- a/pkg/cli/crawl/request_modifiers.go +++ b/pkg/cli/crawl/request_modifiers.go @@ -17,14 +17,12 @@ func addUserAgentToRequest() crawler.RequestModifierFunc { func addPrefixUrlToRequest(prefixUrl string) crawler.RequestModifierFunc { return func(req *http.Request) { parsedPrefixUrl, err := url.Parse(prefixUrl) - if err != nil { + if err != nil || parsedPrefixUrl.String() == "" { + // prefix url couldn't be parsed just abort return } - requestUrl, err := url.Parse(req.URL.String()) - if err != nil { - return - } + requestUrl, _ := url.Parse(req.URL.String()) requestUrl.Scheme = parsedPrefixUrl.Scheme requestUrl.Host = parsedPrefixUrl.Host diff --git a/pkg/cli/crawl/request_modifiers_test.go b/pkg/cli/crawl/request_modifiers_test.go index d10b689..ef0feab 100644 --- a/pkg/cli/crawl/request_modifiers_test.go +++ b/pkg/cli/crawl/request_modifiers_test.go @@ -44,6 +44,18 @@ func TestAddPrefixUrlToRequest(t *testing.T) { } } +func TestAddPrefixUrlToRequestWithInvalidPrefixUrl(t *testing.T) { + prefixUrl := "https://this is not a valid url" + + modifier := crawler.RequestModifier{} + modifier.With(addPrefixUrlToRequest(prefixUrl)) + + req := httptest.NewRequest("GET", "https://example.com", strings.NewReader("")) + modifier.Do(req) + + assert.Equal(t, "https://example.com", req.URL.String()) +} + func TestAddCookiesToRequest(t *testing.T) { modifier := crawler.RequestModifier{} modifier.With(addCookiesToRequest(crawlerFlagOptions{ diff --git a/pkg/filter/status_rules_test.go b/pkg/filter/status_rules_test.go index 59bebdf..fd4f15c 100644 --- a/pkg/filter/status_rules_test.go +++ b/pkg/filter/status_rules_test.go @@ -53,6 +53,14 @@ func TestRuleIsGreaterThan(t *testing.T) { assert.Equal(t, ResultDoesNotApply, RuleIsGreaterThan("200-299", 200)) } +func TestRuleIsGreaterThanInvalidQuery(t *testing.T) { + assert.Equal(t, ResultDoesNotApply, RuleIsGreaterThan(">test", 200)) +} + +func TestRuleIsSmallerThanInvalidQuery(t *testing.T) { + assert.Equal(t, ResultDoesNotApply, RuleIsSmallerThan("