Unit test scheduler

pull/18/head
Aloïs Micard 4 years ago
parent 230dc550c1
commit 42ee930160
No known key found for this signature in database
GPG Key ID: 1A0EB82F071F5EFE

@ -73,30 +73,19 @@ func handleMessage(httpClient *http.Client, apiURI string) natsutil.MsgHandler {
}
logrus.Debugf("Processing URL: %s", urlMsg.URL)
// Normalized received URL
normalizedURL, err := purell.NormalizeURLString(urlMsg.URL, purell.FlagsUsuallySafeGreedy|
purell.FlagRemoveDirectoryIndex|purell.FlagRemoveFragment|purell.FlagRemoveDuplicateSlashes)
if err != nil {
return fmt.Errorf("error while normalizing URL %s: %s", urlMsg.URL, err)
}
logrus.Tracef("Normalized URL: %s", normalizedURL)
// Make sure URL is valid .onion
u, err := url.Parse(normalizedURL)
normalizedURL, err := normalizeURL(urlMsg.URL)
if err != nil {
logrus.Errorf("Error while parsing URL: %s", err)
logrus.Errorf("Error while normalizing URL: %s", err)
return err
}
if !strings.Contains(u.Host, ".onion") {
// Make sure URL is valid .onion
if !strings.Contains(normalizedURL.Host, ".onion") {
logrus.Debugf("Url %s is not a valid hidden service", normalizedURL)
return err
}
b64URI := base64.URLEncoding.EncodeToString([]byte(normalizedURL))
b64URI := base64.URLEncoding.EncodeToString([]byte(normalizedURL.String()))
apiURL := fmt.Sprintf("%s/v1/resources?url=%s", apiURI, b64URI)
var urls []proto.ResourceDto
@ -122,3 +111,18 @@ func handleMessage(httpClient *http.Client, apiURI string) natsutil.MsgHandler {
return nil
}
}
func normalizeURL(u string) (*url.URL, error) {
normalizedURL, err := purell.NormalizeURLString(u, purell.FlagsUsuallySafeGreedy|
purell.FlagRemoveDirectoryIndex|purell.FlagRemoveFragment|purell.FlagRemoveDuplicateSlashes)
if err != nil {
return nil, fmt.Errorf("error while normalizing URL %s: %s", u, err)
}
nu, err := url.Parse(normalizedURL)
if err != nil {
return nil, fmt.Errorf("error while parsing URL: %s", err)
}
return nu, nil
}

@ -0,0 +1,14 @@
package scheduler
import "testing"
func TestNormalizeURL(t *testing.T) {
url, err := normalizeURL("https://this-is-sparta.de?url=url-query-param#fragment-23")
if err != nil {
t.FailNow()
}
if url.String() != "https://this-is-sparta.de?url=url-query-param" {
t.Fail()
}
}
Loading…
Cancel
Save