basic url cleaning test passes
This commit is contained in:
1 parent
42799df06e
commit
24f557d927
2 files changed
+24
-2
No files matched your search
+20
-1
@@ -1,3 +1,22 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
// scheme://[userinfo@]host/path[?query][#fragment]
|
import (
|
||||||
|
"net/url"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
// cleanURL takes a URL, normalizes it by downcasing the host part, and reassembles it.
|
||||||
|
// returns the updated host and reassembled URL
|
||||||
|
func cleanURL(dirtyURL string) (string, string) {
|
||||||
|
// parse the URL into its parts
|
||||||
|
u, err := url.Parse(dirtyURL)
|
||||||
|
if err != nil {
|
||||||
|
return "", dirtyURL // TODO what should we really return here?
|
||||||
|
}
|
||||||
|
|
||||||
|
// convert host to all lower case
|
||||||
|
u.Host = strings.ToLower(u.Host)
|
||||||
|
|
||||||
|
// return the updated host and reassembled URL
|
||||||
|
return u.Host, u.String()
|
||||||
|
}
|
||||||
@@ -1,13 +1,16 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestURLCleaner tests cleaning up (regularization) of URLs
|
// TestURLCleaner tests cleaning up (regularization) of URLs
|
||||||
func TestURLCleaner(t *testing.T) {
|
func TestURLCleaner(t *testing.T) {
|
||||||
host, url := cleanURL("http://swaits:pass@someHOST.com:8765/blah/blah.html?x=y#foo")
|
host, url := cleanURL("http://swaits:pass@someHOST.com:8765/blah/blah.html?x=y#foo")
|
||||||
if host != "somehost.com" {
|
if host != "somehost.com:8765" {
|
||||||
|
fmt.Printf(" Got: '%v'\n", host)
|
||||||
|
fmt.Printf("Wanted: '%v'\n", "somehost.com:8765")
|
||||||
t.Error("host extraction failed")
|
t.Error("host extraction failed")
|
||||||
}
|
}
|
||||||
if url != "http://swaits:pass@somehost.com:8765/blah/blah.html?x=y#foo" {
|
if url != "http://swaits:pass@somehost.com:8765/blah/blah.html?x=y#foo" {
|
||||||
|
|||||||
Reference in new issue
Block a user