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