1Test URL segmentation 2 3On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". 4 5 6PASS segments('http://user:pass@foo:21/bar;par?b#c') is '["http:","foo","21","/bar;par","?b","#c"]' 7PASS segments('http:foo.com') is '["http:","foo.com","","/","",""]' 8PASS segments('\t :foo.com \n') is '[":","","","","",""]' 9PASS segments(' foo.com ') is '[":","","","","",""]' 10PASS segments('a:\t foo.com') is '["a:","",""," foo.com","",""]' 11PASS segments('http://f:21/ b ? d # e ') is '["http:","f","21","/%20b%20","?%20d%20","# e"]' 12PASS segments('http://f:/c') is '["http:","f","","/c","",""]' 13PASS segments('http://f:0/c') is '["http:","f","0","/c","",""]' 14PASS segments('http://f:00000000000000/c') is '["http:","f","0","/c","",""]' 15FAIL segments('http://f:00000000000000000000080/c') should be ["http:","f","0","/c","",""]. Was ["http:","f","80","/c","",""]. 16PASS segments('http://f:b/c') is '[":","","","","",""]' 17PASS segments('http://f: /c') is '[":","","","","",""]' 18PASS segments('http://f:\n/c') is '[":","","","","",""]' 19PASS segments('http://f:fifty-two/c') is '[":","","","","",""]' 20FAIL segments('http://f:999999/c') should be [":","","0","","",""]. Was ["http:","f","65535","/c","",""]. 21PASS segments('http://f: 21 / b ? d # e ') is '[":","","","","",""]' 22FAIL segments('') should be ["data:","","","text/plain,baseURL","",""]. Was [":","","","","",""]. 23FAIL segments(' \t') should be ["data:","","","text/plain,baseURL","",""]. Was [":","","","","",""]. 24PASS segments(':foo.com/') is '[":","","","","",""]' 25PASS segments(':foo.com\\') is '[":","","","","",""]' 26PASS segments(':') is '[":","","","","",""]' 27PASS segments(':a') is '[":","","","","",""]' 28PASS segments(':/') is '[":","","","","",""]' 29PASS segments(':\\') is '[":","","","","",""]' 30PASS segments(':#') is '[":","","","","",""]' 31FAIL segments('#') should be [":","","","","",""]. Was ["data:","","","text/plain,baseURL","",""]. 32FAIL segments('#/') should be [":","","","","",""]. Was ["data:","","","text/plain,baseURL","","#/"]. 33FAIL segments('#\\') should be [":","","","","",""]. Was ["data:","","","text/plain,baseURL","","#\\"]. 34FAIL segments('#;?') should be [":","","","","",""]. Was ["data:","","","text/plain,baseURL","","#;?"]. 35PASS segments('?') is '[":","","","","",""]' 36PASS segments('/') is '[":","","","","",""]' 37PASS segments(':23') is '[":","","","","",""]' 38FAIL segments('/:23') should be ["data:","","","/:23","",""]. Was [":","","","","",""]. 39PASS segments('//') is '[":","","","","",""]' 40PASS segments('::') is '[":","","","","",""]' 41PASS segments('::23') is '[":","","","","",""]' 42PASS segments('foo://') is '["foo:","","","//","",""]' 43PASS segments('http://a:b@c:29/d') is '["http:","c","29","/d","",""]' 44PASS segments('http::@c:29') is '["http:","c","29","/","",""]' 45FAIL segments('http://&a:foo(b]c@d:2/') should be ["http:","d","2","/","",""]. Was [":","","","","",""]. 46FAIL segments('http://::@c@d:2') should be ["http:","d","2","/","",""]. Was [":","","","","",""]. 47PASS segments('http://foo.com:b@d/') is '["http:","d","","/","",""]' 48PASS segments('http://foo.com/\\@') is '["http:","foo.com","","//@","",""]' 49PASS segments('http:\\\\foo.com\\') is '["http:","foo.com","","/","",""]' 50PASS segments('http:\\\\a\\b:c\\d@foo.com\\') is '["http:","a","","/b:c/d@foo.com/","",""]' 51PASS segments('foo:/') is '["foo:","","","/","",""]' 52PASS segments('foo:/bar.com/') is '["foo:","","","/bar.com/","",""]' 53PASS segments('foo://///////') is '["foo:","","","/////////","",""]' 54PASS segments('foo://///////bar.com/') is '["foo:","","","/////////bar.com/","",""]' 55PASS segments('foo:////://///') is '["foo:","","","////://///","",""]' 56PASS segments('c:/foo') is '["c:","","","/foo","",""]' 57PASS segments('//foo/bar') is '[":","","","","",""]' 58PASS segments('http://foo/path;a??e#f#g') is '["http:","foo","","/path;a","??e","#f#g"]' 59PASS segments('http://foo/abcd?efgh?ijkl') is '["http:","foo","","/abcd","?efgh?ijkl",""]' 60PASS segments('http://foo/abcd#foo?bar') is '["http:","foo","","/abcd","","#foo?bar"]' 61FAIL segments('[61:24:74]:98') should be ["data:","","","text/[61:24:74]:98","",""]. Was [":","","","","",""]. 62FAIL segments('http://[61:27]:98') should be [":","","0","","",""]. Was ["http:","[61:27]","98","/","",""]. 63FAIL segments('http:[61:27]/:foo') should be [":","","","","",""]. Was ["http:","[61:27]","","/:foo","",""]. 64PASS segments('http://[1::2]:3:4') is '[":","","","","",""]' 65PASS segments('http://2001::1') is '[":","","","","",""]' 66PASS segments('http://[2001::1') is '[":","","","","",""]' 67PASS segments('http://2001::1]') is '[":","","","","",""]' 68PASS segments('http://2001::1]:80') is '[":","","","","",""]' 69PASS segments('http://[2001::1]') is '["http:","[2001::1]","","/","",""]' 70PASS segments('http://[2001::1]:80') is '["http:","[2001::1]","","/","",""]' 71PASS segments('http://[[::]]') is '[":","","","","",""]' 72PASS successfullyParsed is true 73 74TEST COMPLETE 75 76