Canonicalization of host names.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS canonicalize('http://GoOgLe.CoM/') is 'http://google.com/'
PASS canonicalize('http://Goo%20 goo.com/') is 'http://goo%20%20goo.com/'
PASS canonicalize('http://Goo%2A*goo.com/') is 'http://goo%2A%2Agoo.com/'
PASS canonicalize('http://Goo^goo.com/') is 'http://Goo^goo.com/'
PASS canonicalize('http://Goo|goo.com/') is 'http://Goo|goo.com/'
PASS canonicalize('http://GOO goo.com/') is 'http://goo%20%20goo.com/'
PASS canonicalize('http://GOOgoo.com/') is 'http://googoo.com/'
PASS canonicalize('http://www.foo。bar.com/') is 'http://www.foo.bar.com/'
PASS canonicalize('http://zyx.com/') is 'http://zyx.com/'
PASS canonicalize('http://%ef%b7%90zyx.com/') is 'http://%ef%b7%90zyx.com/'
PASS canonicalize('http://Go.com/') is 'http://go.com/'
PASS canonicalize('http://%41.com/') is 'http://a.com/'
PASS canonicalize('http://%ef%bc%85%ef%bc%94%ef%bc%91.com/') is 'http://a.com/'
PASS canonicalize('http://%00.com/') is 'http://%00.com/'
PASS canonicalize('http://%ef%bc%85%ef%bc%90%ef%bc%90.com/') is 'http://%ef%bc%85%ef%bc%90%ef%bc%90.com/'
PASS canonicalize('http://你好你好/') is 'http://xn--6qqa088eba/'
PASS canonicalize('http://%E4%BD%A0%E5%A5%BD你好/') is 'http://xn--6qqa088eba/'
PASS canonicalize('http://%zz%66%a/') is 'http://%zz%66%a/'
PASS canonicalize('http://%25/') is 'http://%25/'
PASS canonicalize('http://hello%00/') is 'http://hello%00/'
PASS canonicalize('http://%30%78%63%30%2e%30%32%35%30.01/') is 'http://192.168.0.1/'
PASS canonicalize('http://%30%78%63%30%2e%30%32%35%30.01%2e/') is 'http://192.168.0.1/'
PASS canonicalize('http://%3g%78%63%30%2e%30%32%35%30%2E.01/') is 'http://%3g%78%63%30%2e%30%32%35%30%2E.01/'
PASS canonicalize('http://192.168.0.1 hello/') is 'http://192.168.0.1%20hello/'
PASS canonicalize('http://0Xc0.0250.01/') is 'http://192.168.0.1/'
PASS canonicalize('http://192.168.0.257/') is 'http://192.168.0.257/'
PASS canonicalize('http://[google.com]/') is 'http://[google.com]/'
PASS canonicalize('http://т(/') is 'http://xn--(-8tb/'
PASS canonicalize('http://go\\@ogle.com/') is 'http://go/@ogle.com/'
PASS canonicalize('http://go/@ogle.com/') is 'http://go/@ogle.com/'
PASS canonicalize('http://www.lookout.net::==80::==443::/') is 'http://www.lookout.net::==80::==443::/'
PASS canonicalize('http://www.lookout.net::80::443/') is 'http://www.lookout.net::80::443/'
PASS canonicalize('http://\.//') is 'http://.//'
PASS canonicalize('http:////:@//') is 'http:////:@//'
PASS canonicalize('http://\google.com/foo/') is 'http://google.com/foo/'
PASS canonicalize('http://\\google.com/foo/') is 'http://google.com/foo/'
PASS canonicalize('http:////asdf@//') is 'http:////asdf@//'
PASS canonicalize('http:////:81/') is 'http:////:81/'
PASS canonicalize('http://:///') is 'http://:///'
PASS canonicalize('http://c:/') is 'http://c/'
PASS canonicalize('http://xxxx:/') is 'http://xxxx/'
PASS canonicalize('http://.:./') is 'http://.:./'
PASS canonicalize('http://////@google.com//') is 'http://google.com//'
PASS canonicalize('http://@google.com/') is 'http://google.com/'
PASS successfullyParsed is true
TEST COMPLETE