{
"tests": {
"desc": "A collection of URL test cases, compiled from Webkit's /fast/url tests, Julian Reschke, and other sources.",
"group": [
{
"name": "anchor",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/anchor.js",
"desc": "Test cases from Webkit's fast/url/anchor.js",
"test": [
{
"id": "1",
"name": "A U+0020 space in the fragment",
"url": "http://www.example.com/#hello, world",
"expect_url": "http://www.example.com/#hello, world",
"does_not_parse": true
},
{
"id": "2",
"name": "Percent-encoding in the fragment",
"url": "http://www.example.com/#%c2%a9",
"expect_url": "http://www.example.com/#%c2%a9"
},
{
"id": "3",
"name": "Unicode surrogates",
"url": "http://www.example.com/#\ud800\udf00ss",
"expect_url": "http://www.example.com/#\ud800\udf00ss"
},
{
"id": "4",
"name": "illegal percent-encoding",
"url": "http://www.example.com/#%41%a",
"expect_url": "http://www.example.com/#%41%a"
},
{
"id": "5",
"name": "Illegal Unicode half-surrogate U+D800",
"ignored": true
},
{
"id": "6",
"name": "Illegal Unicode U+FDD0 in the fragment",
"ignored": true
},
{
"id": "7",
"name": "An extra U+0023 NUMBER SIGN in middle of the fragment",
"url": "http://www.example.com/#asdf#qwer",
"expect_url": "http://www.example.com/#asdf#qwer",
"does_not_parse": true
},
{
"id": "8",
"name": "An extra U+0023 NUMBER SIGN at the start of fragment",
"url": "http://www.example.com/##asdf",
"expect_url": "http://www.example.com/##asdf",
"does_not_parse": true
},
{
"id": "9",
"name": "Extra white space characters",
"url": "http://www.example.com/#a\u000Ab\u000Dc\u0009d",
"expect_url": "http://www.example.com/#abcd",
"ignored": true
}
]
},
{
"name": "file-http-base",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/file-http-base.js",
"desc": "Test cases from Webkit's fast/url/file-http-base.js",
"test": [
{
"id": "10",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "file:c:\\\\foo\\\\bar.html",
"expect_rel": "file:///C:/foo/bar.html"
},
{
"id": "11",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": " File:c|////foo\\\\bar.html",
"expect_rel": "file:///C:////foo/bar.html"
},
{
"id": "12",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "file:",
"expect_rel": "file:///"
},
{
"id": "13",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "file:UNChost/path",
"expect_rel": "file://unchost/path"
},
{
"id": "14",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "c:\\\\foo\\\\bar",
"expect_rel": "file:///C:/foo/bar"
},
{
"id": "15",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "C|/foo/bar",
"expect_rel": "file:///C:/foo/bar"
},
{
"id": "16",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "/C|\\\\foo\\\\bar",
"expect_rel": "file:///C:/foo/bar"
},
{
"id": "17",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "//C|/foo/bar",
"expect_rel": "file:///C:/foo/bar"
},
{
"id": "18",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "//server/file",
"expect_rel": "file://server/file"
},
{
"id": "19",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "\\\\\\\\server\\\\file",
"expect_rel": "file://server/file"
},
{
"id": "20",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "/\\\\server/file",
"expect_rel": "file://server/file"
},
{
"id": "21",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "file:c:foo/bar.html",
"expect_rel": "file:///C:/foo/bar.html"
},
{
"id": "22",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "file:/\\\\/\\\\C:\\\\\\\\//foo\\\\bar.html",
"expect_rel": "file:///C:////foo/bar.html"
},
{
"id": "23",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "file:///foo/bar.txt",
"expect_rel": "file:///foo/bar.txt"
},
{
"id": "24",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "FILE:/\\\\/\\\\7:\\\\\\\\//foo\\\\bar.html",
"expect_rel": "file://7:////foo/bar.html"
},
{
"id": "25",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "file:filer/home\\\\me",
"expect_rel": "file://filer/home/me"
},
{
"id": "26",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "file:///C:/foo/../../../bar.html",
"expect_rel": "file:///C:/bar.html"
},
{
"id": "27",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "file:///C:/asdf#\\%c2",
"expect_rel": "file:///C:/asdf#\\%ef\\%bf\\%bd"
},
{
"id": "28",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "file:///home/me",
"expect_rel": "file:///home/me"
},
{
"id": "29",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "file:c:\\\\foo\\\\bar.html",
"expect_rel": "file:///c:/foo/bar.html"
},
{
"id": "30",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "file:c|//foo\\\\bar.html",
"expect_rel": "file:///c%7C//foo/bar.html"
},
{
"id": "31",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "//",
"expect_rel": "file:///"
},
{
"id": "32",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "///",
"expect_rel": "file:///"
},
{
"id": "33",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "///test",
"expect_rel": "file:///test"
},
{
"id": "34",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "file://test",
"expect_rel": "file://test/"
},
{
"id": "35",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "file://localhost/",
"expect_rel": "file://localhost/"
},
{
"id": "36",
"name": "",
"base": "http://www.example.com/foo/bar",
"rel": "file://localhost/test",
"expect_rel": "file://localhost/test"
}
]
},
{
"name": "file",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/file.js",
"desc": "Test cases from Webkit's fast/url/file.js",
"test": [
{
"id": "37",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "file:c:\\\\foo\\\\bar.html",
"expect_rel": "file:///C:/foo/bar.html"
},
{
"id": "38",
"name": "",
"base": "file:///tmp/mock/path",
"rel": " File:c|////foo\\\\bar.html",
"expect_rel": "file:///C:////foo/bar.html"
},
{
"id": "39",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "file:",
"expect_rel": "file:///"
},
{
"id": "40",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "file:UNChost/path",
"expect_rel": "file://unchost/path"
},
{
"id": "41",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "c:\\\\foo\\\\bar",
"expect_rel": "file:///C:/foo/bar"
},
{
"id": "42",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "C|/foo/bar",
"expect_rel": "file:///C:/foo/bar"
},
{
"id": "43",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "/C|\\\\foo\\\\bar",
"expect_rel": "file:///C:/foo/bar"
},
{
"id": "44",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "//C|/foo/bar",
"expect_rel": "file:///C:/foo/bar"
},
{
"id": "45",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "//server/file",
"expect_rel": "file://server/file"
},
{
"id": "46",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "\\\\\\\\server\\\\file",
"expect_rel": "file://server/file"
},
{
"id": "47",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "/\\\\server/file",
"expect_rel": "file://server/file"
},
{
"id": "48",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "file:c:foo/bar.html",
"expect_rel": "file:///C:/foo/bar.html"
},
{
"id": "49",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "file:/\\\\/\\\\C:\\\\\\\\//foo\\\\bar.html",
"expect_rel": "file:///C:////foo/bar.html"
},
{
"id": "50",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "file:///foo/bar.txt",
"expect_rel": "file:///foo/bar.txt"
},
{
"id": "51",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "FILE:/\\\\/\\\\7:\\\\\\\\//foo\\\\bar.html",
"expect_rel": "file://7:////foo/bar.html"
},
{
"id": "52",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "file:filer/home\\\\me",
"expect_rel": "file://filer/home/me"
},
{
"id": "53",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "file:///C:/foo/../../../bar.html",
"expect_rel": "file:///C:/bar.html"
},
{
"id": "54",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "file:///C:/asdf#\\%c2",
"expect_rel": "file:///C:/asdf#\\%ef\\%bf\\%bd"
},
{
"id": "55",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "file:///home/me",
"expect_rel": "file:///home/me"
},
{
"id": "56",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "file:c:\\\\foo\\\\bar.html",
"expect_rel": "file:///c:/foo/bar.html"
},
{
"id": "57",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "file:c|//foo\\\\bar.html",
"expect_rel": "file:///c%7C//foo/bar.html"
},
{
"id": "58",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "//",
"expect_rel": "file:///"
},
{
"id": "59",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "///",
"expect_rel": "file:///"
},
{
"id": "60",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "///test",
"expect_rel": "file:///test"
},
{
"id": "61",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "file://test",
"expect_rel": "file://test/"
},
{
"id": "62",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "file://localhost/",
"expect_rel": "file://localhost/"
},
{
"id": "63",
"name": "",
"base": "file:///tmp/mock/path",
"rel": "file://localhost/test",
"expect_rel": "file://localhost/test"
}
]
},
{
"name": "host",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/host.js",
"desc": "Test cases from Webkit's fast/url/host.js",
"test": [
{
"id": "64",
"name": "",
"url": "http://GoOgLe.CoM",
"expect_url": "http://google.com"
},
{
"id": "65",
"name": "",
"url": "http://Goo%20 goo%7C|.com",
"expect_url": "http://goo%20%20goo%7C%7C.com"
},
{
"id": "66",
"name": "",
"url": "http://GOO\u00a0\u3000goo.com",
"expect_url": "http://goo%20%20goo.com"
},
{
"id": "67",
"name": "",
"url": "http://GOO\u200b\u2060\ufeffgoo.com",
"expect_url": "http://googoo.com"
},
{
"id": "68",
"name": "",
"url": "http://www.foo\u3002\" + \"bar.com",
"expect_url": "http://www.foo.bar.com"
},
{
"id": "69",
"name": "",
"url": "http://\ufdd0zyx.com",
"expect_url": "http://%EF%BF%BDzyx.com"
},
{
"id": "70",
"name": "",
"url": "http://%ef%b7%90zyx.com",
"expect_url": "http://%EF%BF%BDzyx.com"
},
{
"id": "71",
"name": "",
"url": "http://\uff27\uff4f.com",
"expect_url": "http://go.com"
},
{
"id": "72",
"name": "",
"url": "http://\uff05\uff14\uff11.com",
"expect_url": "http://a.com"
},
{
"id": "73",
"name": "",
"url": "http://%ef%bc%85%ef%bc%94%ef%bc%91.com",
"expect_url": "http://a.com"
},
{
"id": "74",
"name": "",
"url": "http://\uff05\uff10\uff10.com",
"expect_url": "http://%00.com"
},
{
"id": "75",
"name": "",
"url": "http://%ef%bc%85%ef%bc%90%ef%bc%90.com",
"expect_url": "http://%00.com"
},
{
"id": "76",
"name": "",
"url": "http://\u4f60\u597d\u4f60\u597d",
"expect_url": "http://xn--6qqa088eba"
},
{
"id": "77",
"name": "",
"url": "http://%E4%BD%A0%E5%A5%BD\u4f60\u597d",
"expect_url": "http://xn--6qqa088eba"
},
{
"id": "78",
"name": "",
"url": "http://%zz%66%a",
"expect_url": "http://%25zzf%25a"
},
{
"id": "79",
"name": "",
"url": "http://%25",
"expect_url": "http://%25"
},
{
"id": "80",
"name": "",
"url": "http://hello%00",
"expect_url": "http://hello%00"
},
{
"id": "81",
"name": "",
"url": "http://%30%78%63%30%2e%30%32%35%30.01",
"expect_url": "http://192.168.0.1"
},
{
"id": "82",
"name": "",
"url": "http://%30%78%63%30%2e%30%32%35%30.01%2e",
"expect_url": "http://192.168.0.1"
},
{
"id": "83",
"name": "",
"url": "http://%3g%78%63%30%2e%30%32%35%30%2E.01",
"expect_url": "http://%253gxc0.0250..01"
},
{
"id": "84",
"name": "",
"url": "http://192.168.0.1 hello",
"expect_url": "http://192.168.0.1%20hello"
},
{
"id": "85",
"name": "",
"url": "http://\uff10\uff38\uff43\uff10\uff0e\uff10\uff12\uff15\uff10\uff0e\uff10\uff11",
"expect_url": "http://192.168.0.1"
},
{
"id": "86",
"name": "",
"url": "http://192.168.0.257",
"expect_url": "http://192.168.0.257"
},
{
"id": "87",
"name": "",
"url": "http://[google.com]",
"expect_url": "http://[google.com]"
},
{
"id": "88",
"name": "",
"url": "http://\u0442(",
"expect_url": "http://xn--%28-7ed"
},
{
"id": "89",
"name": "",
"url": "http://go\\@ogle.com",
"expect_url": "http://go@ogle.com"
},
{
"id": "90",
"name": "",
"url": "http://go/@ogle.com",
"expect_url": "http://go@ogle.com"
},
{
"id": "91",
"name": "",
"url": "http://www.lookout.net::==80::==443::",
"expect_url": "http://lookout.net"
},
{
"id": "92",
"name": "",
"url": "http://www.lookout.net::80::443",
"expect_url": "http://lookout.net"
},
{
"id": "93",
"name": "",
"url": "http://\\",
"expect_url": "http://\\"
},
{
"id": "94",
"name": "",
"url": "http://\\\\/",
"expect_url": "http://."
},
{
"id": "95",
"name": "",
"url": "http://\\./",
"expect_url": "http://."
},
{
"id": "96",
"name": "",
"url": "http:////:@/",
"expect_url": "http://."
},
{
"id": "97",
"name": "",
"url": "http://\\google.com/foo",
"expect_url": "http://google.com/foo"
},
{
"id": "98",
"name": "",
"url": "http://\\\\google.com/foo",
"expect_url": "http://google.com/foo"
},
{
"id": "99",
"name": "",
"url": "http:////asdf@/",
"expect_url": "http://."
},
{
"id": "100",
"name": "",
"url": "http:////:81",
"expect_url": "http://."
},
{
"id": "101",
"name": "",
"url": "http://://",
"expect_url": "http://."
},
{
"id": "102",
"name": "",
"url": "http://c:",
"expect_url": "http://."
},
{
"id": "103",
"name": "",
"url": "http://xxxx:",
"expect_url": "http://."
},
{
"id": "104",
"name": "",
"url": "http://.:.",
"expect_url": "http://."
},
{
"id": "105",
"name": "",
"url": "http://////@google.com/",
"expect_url": "http://."
},
{
"id": "106",
"name": "",
"url": "http://@google.com",
"expect_url": "http://google.com"
}
]
},
{
"name": "idna2003",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/idna2003.js",
"desc": "Test cases from Webkit's fast/url/idna2003.js",
"test": [
{
"id": "107",
"name": "",
"url": "http://fa\u00DF.de",
"expect_url": "http://fass.de"
},
{
"id": "108",
"name": "",
"url": "http://\u03B2\u03CC\u03BB\u03BF\u03C2.com",
"expect_url": "http://xn--nxasmq6b.com"
},
{
"id": "109",
"name": "",
"url": "http://\u0DC1\u0DCA\u200D\u0DBB\u0DD3.com",
"expect_url": "http://xn--10cl1a0b.com"
},
{
"id": "110",
"name": "",
"url": "http://\u0646\u0627\u0645\u0647\u200C\u0627\u06CC.com",
"expect_url": "http://xn--mgba3gch31f.com"
},
{
"id": "111",
"name": "",
"url": "http://www.loo\u0138out.net",
"expect_url": "http://www.xn--looout-5bb.net"
},
{
"id": "112",
"name": "",
"url": "http://\u15EF\u15EF\u15EF.lookout.net",
"expect_url": "http://xn--1qeaa.lookout.net"
},
{
"id": "113",
"name": "",
"url": "http://www.lookout.\u0441\u043E\u043C",
"expect_url": "http://www.lookout.xn--l1adi"
},
{
"id": "114",
"name": "",
"url": "http://www.lookout.net\uFF1A80",
"expect_url": "http://www.lookout.net:80"
},
{
"id": "115",
"name": "",
"url": "http://www\u2025lookout.net",
"expect_url": "http://www..lookout.net"
},
{
"id": "116",
"name": "",
"url": "http://www.lookout\u2027net",
"expect_url": "http://www.xn--lookoutnet-406e"
},
{
"id": "117",
"name": "",
"url": "http://www.loo\u0138out.net",
"expect_url": "http://www.xn--looout-5bb.net"
},
{
"id": "118",
"name": "",
"url": "http://www.lookout.net\u2A7480",
"expect_url": "http://www.lookout.net::%3D80"
},
{
"id": "119",
"name": "",
"url": "http://www\u00A0.lookout.net",
"expect_url": "http://www%20.lookout.net"
},
{
"id": "120",
"name": "",
"url": "http://\u1680lookout.net",
"expect_url": "http://%E1%9A%80lookout.net"
},
{
"id": "121",
"name": "",
"url": "http://\u001Flookout.net",
"expect_url": "http://%1Flookout.net"
},
{
"id": "122",
"name": "",
"url": "http://look\u06DDout.net",
"expect_url": "http://look%DB%9Dout.net"
},
{
"id": "123",
"name": "",
"url": "http://look\u180Eout.net",
"expect_url": "http://look%E1%A0%8Eout.net"
},
{
"id": "124",
"name": "",
"url": "http://look\u2060out.net",
"expect_url": "http://look%E2%81%A0out.net"
},
{
"id": "125",
"name": "",
"url": "http://look\uFEFFout.net",
"expect_url": "http://look%EF%BB%BFout.net"
},
{
"id": "126",
"name": "",
"url": "http://look\uD83F\uDFFEout.net",
"expect_url": "http://look%F0%9F%BF%BEout.net"
},
{
"id": "127",
"name": "",
"ignored": true
},
{
"id": "128",
"name": "",
"url": "http://look\uFFFAout.net",
"expect_url": "http://look%EF%BF%BAout.net"
},
{
"id": "129",
"name": "",
"url": "http://look\u2FF0out.net",
"expect_url": "http://look%E2%BF%B0out.net"
},
{
"id": "130",
"name": "",
"url": "http://look\u0341out.net",
"expect_url": "http://look%CD%81out.net"
},
{
"id": "131",
"name": "",
"url": "http://look\u202Eout.net",
"expect_url": "http://look%E2%80%AEout.net"
},
{
"id": "132",
"name": "",
"url": "http://look\u206Bout.net",
"expect_url": "http://look%E2%81%ABout.net"
},
{
"id": "133",
"name": "",
"url": "http://look\uDB40\uDC01out.net",
"expect_url": "http://look%F3%A0%80%81out.net"
},
{
"id": "134",
"name": "",
"url": "http://look\uDB40\uDC20out.net",
"expect_url": "http://look%F3%A0%80%A0out.net"
},
{
"id": "135",
"name": "",
"url": "http://look\u05BEout.net",
"expect_url": "http://look%D6%BEout.net"
}
]
},
{
"name": "idna2008",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/idna2008.js",
"desc": "Test cases from Webkit's fast/url/idna2008.js",
"test": [
{
"id": "136",
"name": "",
"url": "http://B\u00FCcher.de",
"expect_url": "http://xn--bcher-kva.de"
},
{
"id": "137",
"name": "",
"url": "http://fa\u00DF.de",
"expect_url": "http://xn--fa-hia.de"
},
{
"id": "138",
"name": "",
"url": "http://\u03B2\u03CC\u03BB\u03BF\u03C2.com",
"expect_url": "http://xn--nxasmm1c.com"
},
{
"id": "139",
"name": "",
"url": "http://\u0DC1\u0DCA\u200D\u0DBB\u0DD3.com",
"expect_url": "http://xn--10cl1a0b660p.com"
},
{
"id": "140",
"name": "",
"url": "http://\u0646\u0627\u0645\u0647\u200C\u0627\u06CC.com",
"expect_url": "http://xn--mgba3gch31f060k.com"
},
{
"id": "141",
"name": "",
"url": "http://\u2665.net",
"expect_url": "http://\uFFFD.net"
},
{
"id": "142",
"name": "",
"url": "http://\u0378.net",
"expect_url": "http://\uFFFD.net"
},
{
"id": "143",
"name": "",
"url": "http://\u04C0.com",
"expect_url": "http://\uFFFD.com"
},
{
"id": "144",
"name": "",
"url": "http://\uD87E\uDC68.com",
"expect_url": "http://\uFFFD.com"
},
{
"id": "145",
"name": "",
"url": "http://\u2183.com",
"expect_url": "http://\uFFFD.com"
},
{
"id": "146",
"name": "",
"url": "http://look\u034Fout.net",
"expect_url": "http://lookout.net"
},
{
"id": "147",
"name": "",
"url": "http://gOoGle.com",
"expect_url": "http://google.com"
},
{
"id": "148",
"name": "",
"url": "http://\u09dc.com",
"expect_url": "http://\u09A1\u09BC.com"
},
{
"id": "149",
"name": "",
"url": "http://\u1E9E.com",
"expect_url": "http://ss.com"
},
{
"id": "150",
"name": "",
"url": "http://\u1E9E.foo.com",
"expect_url": "http://ss.foo.com"
},
{
"id": "151",
"name": "",
"ignored": true,
"scheme": "http://",
"rel": "-foo.bar.com"
},
{
"id": "152",
"name": "",
"ignored": true,
"scheme": "http://",
"rel": "foo-.bar.com"
},
{
"id": "153",
"name": "",
"ignored": true,
"scheme": "http://",
"rel": "ab--cd.com"
},
{
"id": "154",
"name": "",
"ignored": true,
"scheme": "http://",
"rel": "xn--0.com"
},
{
"id": "155",
"name": "",
"url": "http://foo\u0300.bar.com",
"expect_url": "http://foo%CC%80.bar.com"
}
]
},
{
"name": "ipv4",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/ipv4.js",
"desc": "Test cases from Webkit's fast/url/ipv4.js",
"test": [
{
"id": "156",
"name": "",
"url": "http://.",
"expect_url": "http://"
},
{
"id": "157",
"name": "",
"url": "http://192.168.0.1",
"expect_url": "http://192.168.0.1"
},
{
"id": "158",
"name": "",
"url": "http://0300.0250.00.01",
"expect_url": "http://192.168.0.1"
},
{
"id": "159",
"name": "",
"url": "http://0xC0.0Xa8.0x0.0x1",
"expect_url": "http://192.168.0.1"
},
{
"id": "160",
"name": "",
"url": "http://192.168.9.com",
"expect_url": "http://"
},
{
"id": "161",
"name": "",
"url": "http://19a.168.0.1",
"expect_url": "http://"
},
{
"id": "162",
"name": "",
"url": "http://0308.0250.00.01",
"expect_url": "http://"
},
{
"id": "163",
"name": "",
"url": "http://0xCG.0xA8.0x0.0x1",
"expect_url": "http://"
},
{
"id": "164",
"name": "",
"url": "http://192",
"expect_url": "http://0.0.0.192"
},
{
"id": "165",
"name": "",
"url": "http://0xC0a80001",
"expect_url": "http://192.168.0.1"
},
{
"id": "166",
"name": "",
"url": "http://030052000001",
"expect_url": "http://192.168.0.1"
},
{
"id": "167",
"name": "",
"url": "http://000030052000001",
"expect_url": "http://192.168.0.1"
},
{
"id": "168",
"name": "",
"url": "http://192.168",
"expect_url": "http://192.0.0.168"
},
{
"id": "169",
"name": "",
"url": "http://192.0x00A80001",
"expect_url": "http://192.168.0.1"
},
{
"id": "170",
"name": "",
"url": "http://0xc0.052000001",
"expect_url": "http://192.168.0.1"
},
{
"id": "171",
"name": "",
"url": "http://192.168.1",
"expect_url": "http://192.168.0.1"
},
{
"id": "172",
"name": "",
"url": "http://192.168.0.0.1",
"expect_url": "http://"
},
{
"id": "173",
"name": "",
"url": "http://192.168.0.1.",
"expect_url": "http://192.168.0.1"
},
{
"id": "174",
"name": "",
"url": "http://192.168.0.1. hello",
"expect_url": "http://"
},
{
"id": "175",
"name": "",
"url": "http://192.168.0.1..",
"expect_url": "http://"
},
{
"id": "176",
"name": "",
"url": "http://192.168..1",
"expect_url": "http://"
},
{
"id": "177",
"name": "",
"url": "http://0x100.0",
"expect_url": "http://"
},
{
"id": "178",
"name": "",
"url": "http://0x100.0.0",
"expect_url": "http://"
},
{
"id": "179",
"name": "",
"url": "http://0x100.0.0.0",
"expect_url": "http://"
},
{
"id": "180",
"name": "",
"url": "http://0.0x100.0.0",
"expect_url": "http://"
},
{
"id": "181",
"name": "",
"url": "http://0.0.0x100.0",
"expect_url": "http://"
},
{
"id": "182",
"name": "",
"url": "http://0.0.0.0x100",
"expect_url": "http://"
},
{
"id": "183",
"name": "",
"url": "http://0.0.0x10000",
"expect_url": "http://"
},
{
"id": "184",
"name": "",
"url": "http://0.0x1000000",
"expect_url": "http://"
},
{
"id": "185",
"name": "",
"url": "http://0x100000000",
"expect_url": "http://"
},
{
"id": "186",
"name": "",
"url": "http://0xFF.0",
"expect_url": "http://255.0.0.0",
"expect_rel": ""
},
{
"id": "187",
"name": "",
"url": "http://0xFF.0.0",
"expect_url": "http://255.0.0.0"
},
{
"id": "188",
"name": "",
"url": "http://0xFF.0.0.0",
"expect_url": "http://255.0.0.0"
},
{
"id": "189",
"name": "",
"url": "http://0.0xFF.0.0",
"expect_url": "http://0.255.0.0"
},
{
"id": "190",
"name": "",
"url": "http://0.0.0xFF.0",
"expect_url": "http://0.0.255.0"
},
{
"id": "191",
"name": "",
"url": "http://0.0.0.0xFF",
"expect_url": "http://0.0.0.255"
},
{
"id": "192",
"name": "",
"url": "http://0.0.0xFFFF",
"expect_url": "http://0.0.255.255"
},
{
"id": "193",
"name": "",
"url": "http://0.0xFFFFFF",
"expect_url": "http://0.255.255.255"
},
{
"id": "194",
"name": "",
"url": "http://0xFFFFFFFF",
"expect_url": "http://255.255.255.255"
},
{
"id": "195",
"name": "",
"url": "http://276.256.0xf1a2.077777",
"expect_url": "http://"
},
{
"id": "196",
"name": "",
"url": "http://192.168.0.257",
"expect_url": "http://"
},
{
"id": "197",
"name": "",
"url": "http://192.168.0xa20001",
"expect_url": "http://"
},
{
"id": "198",
"name": "",
"url": "http://192.015052000001",
"expect_url": "http://"
},
{
"id": "199",
"name": "",
"url": "http://0X12C0a80001",
"expect_url": "http://"
},
{
"id": "200",
"name": "",
"url": "http://276.1.2",
"expect_url": "http://"
},
{
"id": "201",
"name": "",
"url": "http://192.168.0.1 hello",
"expect_url": "http://"
},
{
"id": "202",
"name": "",
"url": "http://0000000000000300.0x00000000000000fF.00000000000000001",
"expect_url": "http://192.255.0.1"
},
{
"id": "203",
"name": "",
"url": "http://0000000000000300.0xffffffffFFFFFFFF.3022415481470977",
"expect_url": "http://"
},
{
"id": "204",
"name": "",
"url": "http://00000000000000000001",
"expect_url": "http://0.0.0.1"
},
{
"id": "205",
"name": "",
"url": "http://0000000000000000100000000000000001",
"expect_url": "http://"
},
{
"id": "206",
"name": "",
"url": "http://0.0.0.000000000000000000z",
"expect_url": "http://"
},
{
"id": "207",
"name": "",
"url": "http://0.0.0.100000000000000000z",
"expect_url": "http://"
},
{
"id": "208",
"name": "",
"url": "http://0.00.0x.0x0",
"expect_url": "http://0.0.0.0"
}
]
},
{
"name": "ipv6",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/ipv6.js",
"desc": "Test cases from Webkit's fast/url/ipv6.js",
"test": [
{
"id": "209",
"name": "",
"url": "http://[",
"expect_url": "http://"
},
{
"id": "210",
"name": "",
"url": "http://[:",
"expect_url": "http://"
},
{
"id": "211",
"name": "",
"url": "http://]",
"expect_url": "http://"
},
{
"id": "212",
"name": "",
"url": "http://:]",
"expect_url": "http://"
},
{
"id": "213",
"name": "",
"url": "http://[]",
"expect_url": "http://"
},
{
"id": "214",
"name": "",
"url": "http://[:]",
"expect_url": "http://"
},
{
"id": "215",
"name": "",
"url": "http://2001:db8::1",
"expect_url": "http://"
},
{
"id": "216",
"name": "",
"url": "http://[2001:db8::1",
"expect_url": "http://"
},
{
"id": "217",
"name": "",
"url": "http://2001:db8::1]",
"expect_url": "http://"
},
{
"id": "218",
"name": "",
"url": "http://[::]",
"expect_url": "http://[::]"
},
{
"id": "219",
"name": "",
"url": "http://[::1]",
"expect_url": "http://[::1]"
},
{
"id": "220",
"name": "",
"url": "http://[1::]",
"expect_url": "http://[1::]"
},
{
"id": "221",
"name": "",
"url": "http://[::192.168.0.1]",
"expect_url": "http://[::c0a8:1]"
},
{
"id": "222",
"name": "",
"url": "http://[::ffff:192.168.0.1]",
"expect_url": "http://[::ffff:c0a8:1]"
},
{
"id": "223",
"name": "",
"url": "http://[000:01:02:003:004:5:6:007]",
"expect_url": "http://[0:1:2:3:4:5:6:7]"
},
{
"id": "224",
"name": "",
"url": "http://[A:b:c:DE:fF:0:1:aC]",
"expect_url": "http://[a:b:c:de:ff:0:1:ac]"
},
{
"id": "225",
"name": "",
"url": "http://[1:0:0:2::3:0]",
"expect_url": "http://[1::2:0:0:3:0]"
},
{
"id": "226",
"name": "",
"url": "http://[1::2:0:0:3:0]",
"expect_url": "http://[1::2:0:0:3:0]"
},
{
"id": "227",
"name": "",
"url": "http://[::eeee:192.168.0.1]",
"expect_url": "http://"
},
{
"id": "228",
"name": "",
"url": "http://[2001::192.168.0.1]",
"expect_url": "http://"
},
{
"id": "229",
"name": "",
"url": "http://[1:2:192.168.0.1:5:6]",
"expect_url": "http://"
},
{
"id": "230",
"name": "",
"url": "http://[::ffff:192.1.2]",
"expect_url": "http://[::ffff:c001:2]"
},
{
"id": "231",
"name": "",
"url": "http://[::ffff:0xC0.0Xa8.0x0.0x1]",
"expect_url": "http://[::ffff:c0a8:1]"
},
{
"id": "232",
"name": "",
"url": "http://[0:0::0:0:8]",
"expect_url": "http://[::8]"
},
{
"id": "233",
"name": "",
"url": "http://[2001:db8::1]",
"expect_url": "http://[2001:db8::1]"
},
{
"id": "234",
"name": "",
"url": "http://[2001::db8::1]",
"expect_url": "http://"
},
{
"id": "235",
"name": "",
"url": "http://[2001:db8:::1]",
"expect_url": "http://"
},
{
"id": "236",
"name": "",
"url": "http://[:::]",
"expect_url": "http://"
},
{
"id": "237",
"name": "",
"url": "http://[2001::.com]",
"expect_url": "http://"
},
{
"id": "238",
"name": "",
"url": "http://[::192.168.0.0.1]",
"expect_url": "http://"
},
{
"id": "239",
"name": "",
"url": "http://[::ffff:192.168.0.0.1]",
"expect_url": "http://"
},
{
"id": "240",
"name": "",
"url": "http://[1:2:3:4:5:6:7:8:9]",
"expect_url": "http://"
},
{
"id": "241",
"name": "",
"url": "http://[0:0:0:0:0:0:0:192.168.0.1]",
"expect_url": "http://"
},
{
"id": "242",
"name": "",
"url": "http://[1:2:3:4:5:6::192.168.0.1]",
"expect_url": "http://"
},
{
"id": "243",
"name": "",
"url": "http://[1:2:3:4:5:6::8]",
"expect_url": "http://[1:2:3:4:5:6:0:8]"
},
{
"id": "244",
"name": "",
"url": "http://[1:2:3:4:5:6:7:8:]",
"expect_url": "http://"
},
{
"id": "245",
"name": "",
"url": "http://[1:2:3:4:5:6:192.168.0.1:]",
"expect_url": "http://"
},
{
"id": "246",
"name": "",
"url": "http://[-1:2:3:4:5:6:7:8]",
"expect_url": "http://"
},
{
"id": "247",
"name": "",
"url": "http://[1::%1]",
"expect_url": "http://"
},
{
"id": "248",
"name": "",
"url": "http://[1::%eth0]",
"expect_url": "http://"
},
{
"id": "249",
"name": "",
"url": "http://[1::%]",
"expect_url": "http://"
},
{
"id": "250",
"name": "",
"url": "http://[%]",
"expect_url": "http://"
},
{
"id": "251",
"name": "",
"url": "http://[::%:]",
"expect_url": "http://"
},
{
"id": "252",
"name": "",
"url": "http://[:0:0::0:0:8]",
"expect_url": "http://"
},
{
"id": "253",
"name": "",
"url": "http://[0:0::0:0:8:]",
"expect_url": "http://"
},
{
"id": "254",
"name": "",
"url": "http://[:0:0::0:0:8:]",
"expect_url": "http://"
},
{
"id": "255",
"name": "",
"url": "http://[::192.168..1]",
"expect_url": "http://"
},
{
"id": "256",
"name": "",
"url": "http://[::1 hello]",
"expect_url": "http://"
}
]
},
{
"name": "mailto",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/mailto.js",
"desc": "Test cases from Webkit's fast/url/mailto.js",
"test": [
{
"id": "257",
"name": "",
"url": "mailto:addr1",
"expect_url": "mailto:addr1"
},
{
"id": "258",
"name": "",
"url": "mailto:addr1@foo.com",
"expect_url": "mailto:addr1@foo.com"
},
{
"id": "259",
"name": "",
"url": "mailto:addr1 \\t ",
"expect_url": "mailto:addr1"
},
{
"id": "260",
"name": "",
"url": "mailto:addr1?to=jon",
"expect_url": "mailto:addr1?to=jon"
},
{
"id": "261",
"name": "",
"url": "mailto:addr1,addr2",
"expect_url": "mailto:addr1,addr2"
},
{
"id": "262",
"name": "",
"url": "mailto:addr1, addr2",
"expect_url": "mailto:addr1, addr2"
},
{
"id": "263",
"name": "",
"url": "mailto:addr1%2caddr2",
"expect_url": "mailto:addr1%2caddr2"
},
{
"id": "264",
"name": "",
"url": "mailto:\uD800\uDF00",
"expect_url": "mailto:%F0%90%8C%80"
},
{
"id": "265",
"name": "",
"url": "mailto:addr1?",
"expect_url": "mailto:addr1?"
}
]
},
{
"name": "path-url",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/path-url.js",
"desc": "Test cases from Webkit's fast/url/path-url.js",
"test": [
{
"id": "266",
"name": "",
"url": "javascript:",
"expect_url": "javascript:"
},
{
"id": "267",
"name": "",
"url": "JavaScript:Foo",
"expect_url": "javascript:Foo"
}
]
},
{
"name": "path",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/path.js",
"desc": "Test cases from Webkit's fast/url/path.js",
"test": [
{
"id": "268",
"name": "",
"url": "http://www.example.com/././foo",
"expect_url": "http://www.example.com/foo"
},
{
"id": "269",
"name": "",
"url": "http://www.example.com/./.foo",
"expect_url": "http://www.example.com/.foo"
},
{
"id": "270",
"name": "",
"url": "http://www.example.com/foo/.",
"expect_url": "http://www.example.com/foo/"
},
{
"id": "271",
"name": "",
"url": "http://www.example.com/foo/./",
"expect_url": "http://www.example.com/foo/"
},
{
"id": "272",
"name": "",
"url": "http://www.example.com/foo/bar/..",
"expect_url": "http://www.example.com/foo/"
},
{
"id": "273",
"name": "",
"url": "http://www.example.com/foo/bar/../",
"expect_url": "http://www.example.com/foo/"
},
{
"id": "274",
"name": "",
"url": "http://www.example.com/foo/..bar",
"expect_url": "http://www.example.com/foo/..bar"
},
{
"id": "275",
"name": "",
"url": "http://www.example.com/foo/bar/../ton",
"expect_url": "http://www.example.com/foo/ton"
},
{
"id": "276",
"name": "",
"url": "http://www.example.com/foo/bar/../ton/../../a",
"expect_url": "http://www.example.com/a"
},
{
"id": "277",
"name": "",
"url": "http://www.example.com/foo/../../..",
"expect_url": "http://www.example.com/"
},
{
"id": "278",
"name": "",
"url": "http://www.example.com/foo/../../../ton",
"expect_url": "http://www.example.com/ton"
},
{
"id": "279",
"name": "",
"url": "http://www.example.com/foo/%2e",
"expect_url": "http://www.example.com/foo/"
},
{
"id": "280",
"name": "",
"url": "http://www.example.com/foo/%2e%2",
"expect_url": "http://www.example.com/foo/.%2"
},
{
"id": "281",
"name": "",
"url": "http://www.example.com/foo/%2e./%2e%2e/.%2e/%2e.bar",
"expect_url": "http://www.example.com/..bar"
},
{
"id": "282",
"name": "",
"url": "http://www.example.com////../..",
"expect_url": "http://www.example.com//"
},
{
"id": "283",
"name": "",
"url": "http://www.example.com/foo/bar//../..",
"expect_url": "http://www.example.com/foo/"
},
{
"id": "284",
"name": "",
"url": "http://www.example.com/foo/bar//..",
"expect_url": "http://www.example.com/foo/bar/"
},
{
"id": "285",
"name": "",
"url": "http://www.example.com/foo/bar/..",
"expect_url": "http://www.example.com/foo/"
},
{
"id": "286",
"name": "",
"url": "http://www.example.com/foo",
"expect_url": "http://www.example.com/foo"
},
{
"id": "287",
"name": "",
"url": "http://www.example.com/%20foo",
"expect_url": "http://www.example.com/%20foo"
},
{
"id": "288",
"name": "",
"url": "http://www.example.com/foo%",
"expect_url": "http://www.example.com/foo%"
},
{
"id": "289",
"name": "",
"url": "http://www.example.com/foo%2",
"expect_url": "http://www.example.com/foo%2"
},
{
"id": "290",
"name": "",
"url": "http://www.example.com/foo%2zbar",
"expect_url": "http://www.example.com/foo%2zbar"
},
{
"id": "291",
"name": "",
"url": "http://www.example.com/foo%2\u00c2\u00a9zbar",
"expect_url": "http://www.example.com/foo%2%C3%82%C2%A9zbar"
},
{
"id": "292",
"name": "",
"url": "http://www.example.com/foo%41%7a",
"expect_url": "http://www.example.com/fooAz"
},
{
"id": "293",
"name": "",
"url": "http://www.example.com/foo\u0009\u0091%91",
"expect_url": "http://www.example.com/foo%09%C2%91%91"
},
{
"id": "294",
"name": "",
"url": "http://www.example.com/foo%00%51",
"expect_url": "http://www.example.com/foo%00Q"
},
{
"id": "295",
"name": "",
"url": "http://www.example.com/(%28:%3A%29)",
"expect_url": "http://www.example.com/(%28:%3A%29)"
},
{
"id": "296",
"name": "",
"url": "http://www.example.com/%3A%3a%3C%3c",
"expect_url": "http://www.example.com/%3A%3a%3C%3c"
},
{
"id": "297",
"name": "",
"url": "http://www.example.com/foo\\tbar",
"expect_url": "http://www.example.com/foo%09bar"
},
{
"id": "298",
"name": "",
"url": "http://www.example.com\\\\foo\\\\bar",
"expect_url": "http://www.example.com/foo/bar"
},
{
"id": "299",
"name": "",
"url": "http://www.example.com/%7Ffp3%3Eju%3Dduvgw%3Dd",
"expect_url": "http://www.example.com/%7Ffp3%3Eju%3Dduvgw%3Dd"
},
{
"id": "300",
"name": "",
"url": "http://www.example.com/@asdf%40",
"expect_url": "http://www.example.com/@asdf%40"
},
{
"id": "301",
"name": "",
"url": "http://www.example.com/\u4f60\u597d\u4f60\u597d",
"expect_url": "http://www.example.com/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD"
},
{
"id": "302",
"name": "",
"url": "http://www.example.com/\ufdd0zyx",
"expect_url": "http://www.example.com/%EF%BF%BDzyx"
},
{
"id": "303",
"name": "",
"url": "http://www.example.com/\u2025/foo",
"expect_url": "http://www.example.com/%E2%80%A5/foo"
},
{
"id": "304",
"name": "",
"ignored": true
},
{
"id": "305",
"name": "",
"url": "http://www.example.com/\uFEFF/foo",
"expect_url": "http://www.example.com/%EF%BB%BF/foo"
},
{
"id": "306",
"name": "",
"url": "http://www.example.com/\u202E/foo/\u202D/bar",
"expect_url": "http://www.example.com/%E2%80%AE/foo/%E2%80%AD/bar"
},
{
"id": "307",
"name": "",
"url": "http://www.example.com\uFF0Ffoo/",
"expect_url": "http://www.example.com/foo/"
}
]
},
{
"name": "port",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/port.js",
"desc": "Test cases from Webkit's fast/url/port.js",
"test": [
{
"id": "308",
"name": "",
"url": "http://www.example.com:as df",
"expect_url": "http://www.example.com:as%20df"
},
{
"id": "309",
"name": "",
"url": "http://www.example.com:-2",
"expect_url": "http://www.example.com:-2"
},
{
"id": "310",
"name": "",
"url": "http://www.example.com:80",
"expect_url": "http://www.example.com"
},
{
"id": "311",
"name": "",
"url": "http://www.example.com:8080",
"expect_url": "http://www.example.com:8080"
},
{
"id": "312",
"name": "",
"url": "http://www.example.com:",
"expect_url": "http://www.example.com"
},
{
"id": "313",
"name": "",
"url": "http://www.example.com:\u1369",
"expect_url": "http://www.example.com:%E1%8D%A9"
},
{
"id": "314",
"name": "",
"url": "http://www.example.com:\uD835\uDFD6",
"expect_url": "http://www.example.com:%F0%9D%9F%96"
}
]
},
{
"name": "query",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/query.js",
"desc": "Test cases from Webkit's fast/url/query.js",
"test": [
{
"id": "315",
"name": "",
"url": "http://www.example.com/?foo=bar",
"expect_url": "http://www.example.com/?foo=bar"
},
{
"id": "316",
"name": "",
"url": "http://www.example.com/?as?df",
"expect_url": "http://www.example.com/?as?df"
},
{
"id": "317",
"name": "",
"url": "http://www.example.com/?\\%02hello%7f bye",
"expect_url": "http://www.example.com/?%02hello%7F%20bye"
},
{
"id": "318",
"name": "",
"url": "http://www.example.com/?%40%41123",
"expect_url": "http://www.example.com/?%40%41123"
},
{
"id": "319",
"name": "",
"url": "http://www.example.com/?q=\u4F60\u597D",
"expect_url": "http://www.example.com/?q=%26%2320320%3B%26%2322909%3B"
},
{
"id": "320",
"name": "",
"ignored": true
},
{
"id": "321",
"name": "",
"url": "http://www.example.com/?q=<asdf>",
"expect_url": "http://www.example.com/?q=%3Casdf%3E"
},
{
"id": "322",
"name": "",
"url": "http://www.example.com/?q=\\\"asdf\\\"",
"expect_url": "http://www.example.com/?q=%22asdf%22"
}
]
},
{
"name": "relative-unix",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/relative-unix.js",
"desc": "Test cases from Webkit's fast/url/relative-unix.js",
"test": [
{
"id": "323",
"name": "",
"base": "http://host/a",
"rel": "\\\\\\\\Another\\\\path",
"expect_rel": "http://another/path"
},
{
"id": "324",
"name": "",
"base": "http://host/a",
"rel": "/c:\\\\foo",
"expect_rel": "http://host/c:/foo"
},
{
"id": "325",
"name": "",
"base": "http://host/a",
"rel": "//c:\\\\foo",
"expect_rel": "http://c/foo"
}
]
},
{
"name": "relative-win",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/relative-win.js",
"desc": "Test cases from Webkit's fast/url/relative-win.js",
"test": [
{
"id": "326",
"name": "",
"base": "file:///C:/foo",
"rel": "http://host/",
"expect_rel": "http://host/"
},
{
"id": "327",
"name": "",
"base": "file:///C:/foo",
"rel": "bar",
"expect_rel": "file:///C:/bar"
},
{
"id": "328",
"name": "",
"base": "file:///C:/foo",
"rel": "../../../bar.html",
"expect_rel": "file:///C:/bar.html"
},
{
"id": "329",
"name": "",
"base": "file:///C:/foo",
"rel": "/../bar.html",
"expect_rel": "file:///C:/bar.html"
},
{
"id": "330",
"name": "",
"base": "http://host/a",
"rel": "\\\\\\\\another\\\\path",
"expect_rel": ""
},
{
"id": "331",
"name": "",
"base": "file:///C:/something",
"rel": "//c:/foo",
"expect_rel": "file:///C:/foo"
},
{
"id": "332",
"name": "",
"base": "file:///C:/something",
"rel": "//localhost/c:/foo",
"expect_rel": "file:///C:/foo"
},
{
"id": "333",
"name": "",
"base": "file:///C:/foo",
"rel": "c:",
"expect_rel": ""
},
{
"id": "334",
"name": "",
"base": "file:///C:/foo",
"rel": "c:/foo",
"expect_rel": ""
},
{
"id": "335",
"name": "",
"base": "http://host/a",
"rel": "c:\\\\foo",
"expect_rel": ""
},
{
"id": "336",
"name": "",
"base": "file:///C:/foo",
"rel": "/z:/bar",
"expect_rel": "file:///Z:/bar"
},
{
"id": "337",
"name": "",
"base": "file:///C:/foo",
"rel": "/bar",
"expect_rel": "file:///C:/bar"
},
{
"id": "338",
"name": "",
"base": "file://localhost/C:/foo",
"rel": "/bar",
"expect_rel": "file://localhost/C:/bar"
},
{
"id": "339",
"name": "",
"base": "file:///C:/foo/com/",
"rel": "/bar",
"expect_rel": "file:///C:/bar"
},
{
"id": "340",
"name": "",
"base": "file:///C:/something",
"rel": "//somehost/path",
"expect_rel": "file://somehost/path"
},
{
"id": "341",
"name": "",
"base": "file:///C:/something",
"rel": "/\\\\//somehost/path",
"expect_rel": "file://somehost/path"
}
]
},
{
"name": "relative",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/relative.js",
"desc": "Test cases from Webkit's fast/url/relative.js",
"test": [
{
"id": "342",
"name": "",
"base": "http://host/a",
"rel": "http://another/",
"expect_rel": "http://another/"
},
{
"id": "343",
"name": "",
"base": "http://host/a",
"rel": "http:////another/",
"expect_rel": "http://another/"
},
{
"id": "344",
"name": "",
"base": "http://foo/bar",
"expect_rel": "http://foo/bar"
},
{
"id": "345",
"name": "",
"base": "http://foo/bar#ref",
"expect_rel": "http://foo/bar"
},
{
"id": "346",
"name": "",
"base": "http://foo/bar#",
"expect_rel": "http://foo/bar"
},
{
"id": "347",
"name": "",
"base": "http://foo/bar",
"rel": " another ",
"expect_rel": "http://foo/another"
},
{
"id": "348",
"name": "",
"base": "http://foo/bar",
"rel": " . ",
"expect_rel": "http://foo/"
},
{
"id": "349",
"name": "",
"base": "http://foo/bar",
"rel": " \\t ",
"expect_rel": "http://foo/bar"
},
{
"id": "350",
"name": "",
"base": "http://host/a",
"rel": "http:path",
"expect_rel": "http://host/path"
},
{
"id": "351",
"name": "",
"base": "http://host/a/",
"rel": "http:path",
"expect_rel": "http://host/a/path"
},
{
"id": "352",
"name": "",
"base": "http://host/a",
"rel": "http:/path",
"expect_rel": "http://host/path"
},
{
"id": "353",
"name": "",
"base": "http://host/a",
"rel": "HTTP:/path",
"expect_rel": "http://host/path"
},
{
"id": "354",
"name": "",
"base": "http://host/a",
"rel": "https:host2",
"expect_rel": "https://host2/"
},
{
"id": "355",
"name": "",
"base": "http://host/a",
"rel": "htto:/host2",
"expect_rel": "htto:/host2"
},
{
"id": "356",
"name": "",
"base": "http://host/a",
"rel": "/b/c/d",
"expect_rel": "http://host/b/c/d"
},
{
"id": "357",
"name": "",
"base": "http://host/a",
"rel": "\\\\b\\\\c\\\\d",
"expect_rel": "http://host/b/c/d"
},
{
"id": "358",
"name": "",
"base": "http://host/a",
"rel": "/b/../c",
"expect_rel": "http://host/c"
},
{
"id": "359",
"name": "",
"base": "http://host/a?b#c",
"rel": "/b/../c",
"expect_rel": "http://host/c"
},
{
"id": "360",
"name": "",
"base": "http://host/a",
"rel": "\\\\b/../c?x#y",
"expect_rel": "http://host/c?x#y"
},
{
"id": "361",
"name": "",
"base": "http://host/a?b#c",
"rel": "/b/../c?x#y",
"expect_rel": "http://host/c?x#y"
},
{
"id": "362",
"name": "",
"base": "http://host/a",
"rel": "b",
"expect_rel": "http://host/b"
},
{
"id": "363",
"name": "",
"base": "http://host/a",
"rel": "bc/de",
"expect_rel": "http://host/bc/de"
},
{
"id": "364",
"name": "",
"base": "http://host/a/",
"rel": "bc/de?query#ref",
"expect_rel": "http://host/a/bc/de?query#ref"
},
{
"id": "365",
"name": "",
"base": "http://host/a/",
"rel": ".",
"expect_rel": "http://host/a/"
},
{
"id": "366",
"name": "",
"base": "http://host/a/",
"rel": "..",
"expect_rel": "http://host/"
},
{
"id": "367",
"name": "",
"base": "http://host/a/",
"rel": "./..",
"expect_rel": "http://host/"
},
{
"id": "368",
"name": "",
"base": "http://host/a/",
"rel": "../.",
"expect_rel": "http://host/"
},
{
"id": "369",
"name": "",
"base": "http://host/a/",
"rel": "././.",
"expect_rel": "http://host/a/"
},
{
"id": "370",
"name": "",
"base": "http://host/a?query#ref",
"rel": "../../../foo",
"expect_rel": "http://host/foo"
},
{
"id": "371",
"name": "",
"base": "http://host/a",
"rel": "?foo=bar",
"expect_rel": "http://host/a?foo=bar"
},
{
"id": "372",
"name": "",
"base": "http://host/a?x=y#z",
"rel": "?",
"expect_rel": "http://host/a?"
},
{
"id": "373",
"name": "",
"base": "http://host/a?x=y#z",
"rel": "?foo=bar#com",
"expect_rel": "http://host/a?foo=bar#com"
},
{
"id": "374",
"name": "",
"base": "http://host/a",
"rel": "#ref",
"expect_rel": "http://host/a#ref"
},
{
"id": "375",
"name": "",
"base": "http://host/a#b",
"rel": "#",
"expect_rel": "http://host/a#"
},
{
"id": "376",
"name": "",
"base": "http://host/a?foo=bar#hello",
"rel": "#bye",
"expect_rel": "http://host/a?foo=bar#bye"
},
{
"id": "377",
"name": "",
"base": "data:foobar",
"rel": "baz.html",
"expect_rel": ""
},
{
"id": "378",
"name": "",
"base": "data:foobar",
"rel": "data:baz",
"expect_rel": "data:baz"
},
{
"id": "379",
"name": "",
"base": "data:foobar",
"rel": "data:/base",
"expect_rel": "data:/base"
},
{
"id": "380",
"name": "",
"base": "data:foobar",
"rel": "http://host/",
"expect_rel": "http://host/"
},
{
"id": "381",
"name": "",
"base": "data:foobar",
"rel": "http:host",
"expect_rel": "http://host/"
},
{
"id": "382",
"name": "",
"base": "http://foo/bar",
"rel": "./asd:fgh",
"expect_rel": "http://foo/asd:fgh"
},
{
"id": "383",
"name": "",
"base": "http://foo/bar",
"rel": ":foo",
"expect_rel": "http://foo/:foo"
},
{
"id": "384",
"name": "",
"base": "http://foo/bar",
"rel": " hello world",
"expect_rel": "http://foo/hello%20world"
},
{
"id": "385",
"name": "",
"base": "data:asdf",
"rel": ":foo",
"expect_rel": ""
},
{
"id": "386",
"name": "",
"base": "http://host/a",
"rel": ";foo",
"expect_rel": "http://host/;foo"
},
{
"id": "387",
"name": "",
"base": "http://host/a;",
"rel": ";foo",
"expect_rel": "http://host/;foo"
},
{
"id": "388",
"name": "",
"base": "http://host/a",
"rel": ";/../bar",
"expect_rel": "http://host/bar"
},
{
"id": "389",
"name": "",
"base": "http://host/a",
"rel": "//another",
"expect_rel": "http://another/"
},
{
"id": "390",
"name": "",
"base": "http://host/a",
"rel": "//another/path?query#ref",
"expect_rel": "http://another/path?query#ref"
},
{
"id": "391",
"name": "",
"base": "http://host/a",
"rel": "///another/path",
"expect_rel": "http://another/path"
},
{
"id": "392",
"name": "",
"base": "http://host/a",
"rel": "//Another\\\\path",
"expect_rel": "http://another/path"
},
{
"id": "393",
"name": "",
"base": "http://host/a",
"rel": "//",
"expect_rel": "http:"
},
{
"id": "394",
"name": "",
"base": "http://host/a",
"rel": "\\\\/another/path",
"expect_rel": "http://another/path"
},
{
"id": "395",
"name": "",
"base": "http://host/a",
"rel": "/\\\\Another\\\\path",
"expect_rel": "http://another/path"
}
]
},
{
"name": "scheme",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/scheme.js",
"desc": "Test cases from Webkit's fast/url/scheme.js",
"test": [
{
"id": "396",
"name": "",
"ignored": true,
"scheme": "http://example.com/",
"expect_scheme": "http://example.com/"
},
{
"id": "397",
"name": "",
"ignored": true,
"scheme": "HTTP://example.com/",
"expect_scheme": "http://example.com/"
}
]
},
{
"name": "segments-from-data-url",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/segments-from-data-url.js",
"desc": "Test cases from Webkit's fast/url/segments-from-data-url.js",
"test": [
{
"id": "398",
"name": "",
"rel": "http://user:pass@foo:21/bar;par?b#c",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "foo",
"expect_port": "21",
"expect_path": "/bar;par",
"expect_query": "?b",
"expect_fragment": "#c"
},
{
"id": "399",
"name": "",
"rel": "http:foo.com",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "foo.com",
"expect_port": "0",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "400",
"name": "",
"rel": "\u0009 :foo.com \u000A",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "401",
"name": "",
"rel": " foo.com ",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "402",
"name": "",
"rel": "a:\u0009 foo.com",
"base": "data:text/plain,baseURL",
"expect_scheme": "a:",
"expect_host": "",
"expect_port": "0",
"expect_path": " foo.com",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "403",
"name": "",
"rel": "http://f:21/ b ? d # e ",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "f",
"expect_port": "21",
"expect_path": "/%20b%20",
"expect_query": "?%20d%20",
"expect_fragment": "# e"
},
{
"id": "404",
"name": "",
"rel": "http://f:/c",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "f",
"expect_port": "0",
"expect_path": "/c",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "405",
"name": "",
"rel": "http://f:0/c",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "f",
"expect_port": "0",
"expect_path": "/c",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "406",
"name": "",
"rel": "http://f:00000000000000/c",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "f",
"expect_port": "0",
"expect_path": "/c",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "407",
"name": "",
"rel": "http://f:00000000000000000000080/c",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "f",
"expect_port": "0",
"expect_path": "/c",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "408",
"name": "",
"rel": "http://f:b/c",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "409",
"name": "",
"rel": "http://f: /c",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "410",
"name": "",
"rel": "http://f:\u000A/c",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "411",
"name": "",
"rel": "http://f:fifty-two/c",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "412",
"name": "",
"rel": "http://f:999999/c",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "413",
"name": "",
"rel": "http://f: 21 / b ? d # e ",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "414",
"name": "",
"rel": "",
"base": "data:text/plain,baseURL",
"expect_scheme": "data:",
"expect_host": "",
"expect_port": "0",
"expect_path": "text/plain,baseURL",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "415",
"name": "",
"rel": " \u0009",
"base": "data:text/plain,baseURL",
"expect_scheme": "data:",
"expect_host": "",
"expect_port": "0",
"expect_path": "text/plain,baseURL",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "416",
"name": "",
"rel": ":foo.com/",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "417",
"name": "",
"rel": ":foo.com\\\\",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "418",
"name": "",
"rel": ":",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "419",
"name": "",
"rel": ":a",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "420",
"name": "",
"rel": ":/",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "421",
"name": "",
"rel": ":\\\\",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "422",
"name": "",
"rel": ":#",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "423",
"name": "",
"rel": "#",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "424",
"name": "",
"rel": "#/",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "425",
"name": "",
"rel": "#\\\\",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "426",
"name": "",
"rel": "#;?",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "427",
"name": "",
"rel": "?",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "428",
"name": "",
"rel": "/",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "429",
"name": "",
"rel": ":23",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "430",
"name": "",
"rel": "/:23",
"base": "data:text/plain,baseURL",
"expect_scheme": "data:",
"expect_host": "",
"expect_port": "0",
"expect_path": "/:23",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "431",
"name": "",
"rel": "//",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "432",
"name": "",
"rel": "::",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "433",
"name": "",
"rel": "::23",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "434",
"name": "",
"rel": "foo://",
"base": "data:text/plain,baseURL",
"expect_scheme": "foo:",
"expect_host": "",
"expect_port": "0",
"expect_path": "//",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "435",
"name": "",
"rel": "http://a:b@c:29/d",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "c",
"expect_port": "29",
"expect_path": "/d",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "436",
"name": "",
"rel": "http::@c:29",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "c",
"expect_port": "29",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "437",
"name": "",
"rel": "http://&a:foo(b]c@d:2/",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "d",
"expect_port": "2",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "438",
"name": "",
"rel": "http://::@c@d:2",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "d",
"expect_port": "2",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "439",
"name": "",
"rel": "http://foo.com:b@d/",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "d",
"expect_port": "0",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "440",
"name": "",
"rel": "http://foo.com/\\\\@",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "foo.com",
"expect_port": "0",
"expect_path": "//@",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "441",
"name": "",
"rel": "http:\\\\\\\\foo.com\\\\",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "foo.com",
"expect_port": "0",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "442",
"name": "",
"rel": "http:\\\\\\\\a\\\\b:c\\\\d@foo.com\\\\",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "a",
"expect_port": "0",
"expect_path": "/b:c/d@foo.com/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "443",
"name": "",
"rel": "foo:/",
"base": "data:text/plain,baseURL",
"expect_scheme": "foo:",
"expect_host": "",
"expect_port": "0",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "444",
"name": "",
"rel": "foo:/bar.com/",
"base": "data:text/plain,baseURL",
"expect_scheme": "foo:",
"expect_host": "",
"expect_port": "0",
"expect_path": "/bar.com/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "445",
"name": "",
"rel": "foo://///////",
"base": "data:text/plain,baseURL",
"expect_scheme": "foo:",
"expect_host": "",
"expect_port": "0",
"expect_path": "/////////",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "446",
"name": "",
"rel": "foo://///////bar.com/",
"base": "data:text/plain,baseURL",
"expect_scheme": "foo:",
"expect_host": "",
"expect_port": "0",
"expect_path": "/////////bar.com/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "447",
"name": "",
"rel": "foo:////://///",
"base": "data:text/plain,baseURL",
"expect_scheme": "foo:",
"expect_host": "",
"expect_port": "0",
"expect_path": "////://///",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "448",
"name": "",
"rel": "c:/foo",
"base": "data:text/plain,baseURL",
"expect_scheme": "c:",
"expect_host": "",
"expect_port": "0",
"expect_path": "/foo",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "449",
"name": "",
"rel": "//foo/bar",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "450",
"name": "",
"rel": "http://foo/path;a??e#f#g",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "foo",
"expect_port": "0",
"expect_path": "/path;a",
"expect_query": "??e",
"expect_fragment": "#f#g"
},
{
"id": "451",
"name": "",
"rel": "http://foo/abcd?efgh?ijkl",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "foo",
"expect_port": "0",
"expect_path": "/abcd",
"expect_query": "?efgh?ijkl",
"expect_fragment": ""
},
{
"id": "452",
"name": "",
"rel": "http://foo/abcd#foo?bar",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "foo",
"expect_port": "0",
"expect_path": "/abcd",
"expect_query": "",
"expect_fragment": "#foo?bar"
},
{
"id": "453",
"name": "",
"rel": "[61:24:74]:98",
"base": "data:text/plain,baseURL",
"expect_scheme": "data:",
"expect_host": "",
"expect_port": "0",
"expect_path": "text/[61:24:74]:98",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "454",
"name": "",
"rel": "http://[61:27]:98",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "455",
"name": "",
"rel": "http:[61:27]/:foo",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "456",
"name": "",
"rel": "http://[1::2]:3:4",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "457",
"name": "",
"rel": "http://2001::1",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "458",
"name": "",
"rel": "http://[2001::1",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "459",
"name": "",
"rel": "http://2001::1]",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "460",
"name": "",
"rel": "http://2001::1]:80",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "461",
"name": "",
"rel": "http://[2001::1]",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "[2001::1]",
"expect_port": "0",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "462",
"name": "",
"rel": "http://[2001::1]:80",
"base": "data:text/plain,baseURL",
"expect_scheme": "http:",
"expect_host": "[2001::1]",
"expect_port": "0",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "463",
"name": "",
"rel": "http://[[::]]",
"base": "data:text/plain,baseURL",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
}
]
},
{
"name": "segments",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/segments.js",
"desc": "Test cases from Webkit's fast/url/segments.js",
"test": [
{
"id": "464",
"name": "",
"rel": "http://user:pass@foo:21/bar;par?b#c",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "foo",
"expect_port": "21",
"expect_path": "/bar;par",
"expect_query": "?b",
"expect_fragment": "#c"
},
{
"id": "465",
"name": "",
"rel": "http:foo.com",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/foo.com",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "466",
"name": "",
"rel": "\u0009 :foo.com \u000A",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/:foo.com",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "467",
"name": "",
"rel": " foo.com ",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/foo.com",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "468",
"name": "",
"rel": "a:\u0009 foo.com",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "a:",
"expect_host": "",
"expect_port": "0",
"expect_path": " foo.com",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "469",
"name": "",
"rel": "http://f:21/ b ? d # e ",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "f",
"expect_port": "21",
"expect_path": "/%20b%20",
"expect_query": "?%20d%20",
"expect_fragment": "# e"
},
{
"id": "470",
"name": "",
"rel": "http://f:/c",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "f",
"expect_port": "0",
"expect_path": "/c",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "471",
"name": "",
"rel": "http://f:0/c",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "f",
"expect_port": "0",
"expect_path": "/c",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "472",
"name": "",
"rel": "http://f:00000000000000/c",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "f",
"expect_port": "0",
"expect_path": "/c",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "473",
"name": "",
"rel": "http://f:00000000000000000000080/c",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "f",
"expect_port": "0",
"expect_path": "/c",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "474",
"name": "",
"rel": "http://f:b/c",
"base": "http://www.example.com/foo/bar",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "475",
"name": "",
"rel": "http://f: /c",
"base": "http://www.example.com/foo/bar",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "476",
"name": "",
"rel": "http://f:\u000A/c",
"base": "http://www.example.com/foo/bar",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "477",
"name": "",
"rel": "http://f:fifty-two/c",
"base": "http://www.example.com/foo/bar",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "478",
"name": "",
"rel": "http://f:999999/c",
"base": "http://www.example.com/foo/bar",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "479",
"name": "",
"rel": "http://f: 21 / b ? d # e ",
"base": "http://www.example.com/foo/bar",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "480",
"name": "",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/bar",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "481",
"name": "",
"rel": " \u0009",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/bar",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "482",
"name": "",
"rel": ":foo.com/",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/:foo.com/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "483",
"name": "",
"rel": ":foo.com\\\\",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/:foo.com/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "484",
"name": "",
"rel": ":",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/:",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "485",
"name": "",
"rel": ":a",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/:a",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "486",
"name": "",
"rel": ":/",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/:/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "487",
"name": "",
"rel": ":\\\\",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/:/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "488",
"name": "",
"rel": ":#",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/:",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "489",
"name": "",
"rel": "#",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/bar",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "490",
"name": "",
"rel": "#/",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/bar",
"expect_query": "",
"expect_fragment": "#/"
},
{
"id": "491",
"name": "",
"rel": "#\\\\",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/bar",
"expect_query": "",
"expect_fragment": "#\\\\"
},
{
"id": "492",
"name": "",
"rel": "#;?",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/bar",
"expect_query": "",
"expect_fragment": "#;?"
},
{
"id": "493",
"name": "",
"rel": "?",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/bar",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "494",
"name": "",
"rel": "/",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "495",
"name": "",
"rel": ":23",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/:23",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "496",
"name": "",
"rel": "/:23",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/:23",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "497",
"name": "",
"rel": "//",
"base": "http://www.example.com/foo/bar",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "498",
"name": "",
"rel": "::",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/::",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "499",
"name": "",
"rel": "::23",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/::23",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "500",
"name": "",
"rel": "foo://",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "foo:",
"expect_host": "",
"expect_port": "0",
"expect_path": "//",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "501",
"name": "",
"rel": "http://a:b@c:29/d",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "c",
"expect_port": "29",
"expect_path": "/d",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "502",
"name": "",
"rel": "http::@c:29",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/:@c:29",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "503",
"name": "",
"rel": "http://&a:foo(b]c@d:2/",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "d",
"expect_port": "2",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "504",
"name": "",
"rel": "http://::@c@d:2",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "d",
"expect_port": "2",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "505",
"name": "",
"rel": "http://foo.com:b@d/",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "d",
"expect_port": "0",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "506",
"name": "",
"rel": "http://foo.com/\\\\@",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "foo.com",
"expect_port": "0",
"expect_path": "//@",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "507",
"name": "",
"rel": "http:\\\\\\\\foo.com\\\\",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "foo.com",
"expect_port": "0",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "508",
"name": "",
"rel": "http:\\\\\\\\a\\\\b:c\\\\d@foo.com\\\\",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "a",
"expect_port": "0",
"expect_path": "/b:c/d@foo.com/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "509",
"name": "",
"rel": "foo:/",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "foo:",
"expect_host": "",
"expect_port": "0",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "510",
"name": "",
"rel": "foo:/bar.com/",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "foo:",
"expect_host": "",
"expect_port": "0",
"expect_path": "/bar.com/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "511",
"name": "",
"rel": "foo://///////",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "foo:",
"expect_host": "",
"expect_port": "0",
"expect_path": "/////////",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "512",
"name": "",
"rel": "foo://///////bar.com/",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "foo:",
"expect_host": "",
"expect_port": "0",
"expect_path": "/////////bar.com/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "513",
"name": "",
"rel": "foo:////://///",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "foo:",
"expect_host": "",
"expect_port": "0",
"expect_path": "////://///",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "514",
"name": "",
"rel": "c:/foo",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "c:",
"expect_host": "",
"expect_port": "0",
"expect_path": "/foo",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "515",
"name": "",
"rel": "//foo/bar",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "foo",
"expect_port": "0",
"expect_path": "/bar",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "516",
"name": "",
"rel": "http://foo/path;a??e#f#g",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "foo",
"expect_port": "0",
"expect_path": "/path;a",
"expect_query": "??e",
"expect_fragment": "#f#g"
},
{
"id": "517",
"name": "",
"rel": "http://foo/abcd?efgh?ijkl",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "foo",
"expect_port": "0",
"expect_path": "/abcd",
"expect_query": "?efgh?ijkl",
"expect_fragment": ""
},
{
"id": "518",
"name": "",
"rel": "http://foo/abcd#foo?bar",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "foo",
"expect_port": "0",
"expect_path": "/abcd",
"expect_query": "",
"expect_fragment": "#foo?bar"
},
{
"id": "519",
"name": "",
"rel": "[61:24:74]:98",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/[61:24:74]:98",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "520",
"name": "",
"rel": "http://[61:27]:98",
"base": "http://www.example.com/foo/bar",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "521",
"name": "",
"rel": "http:[61:27]/:foo",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.org",
"expect_port": "0",
"expect_path": "/foo/[61:27]/:foo",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "522",
"name": "",
"rel": "http://[1::2]:3:4",
"base": "http://www.example.com/foo/bar",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "523",
"name": "",
"rel": "http://2001::1",
"base": "http://www.example.com/foo/bar",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "524",
"name": "",
"rel": "http://[2001::1",
"base": "http://www.example.com/foo/bar",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "525",
"name": "",
"rel": "http://2001::1]",
"base": "http://www.example.com/foo/bar",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "526",
"name": "",
"rel": "http://2001::1]:80",
"base": "http://www.example.com/foo/bar",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "527",
"name": "",
"rel": "http://[2001::1]",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "[2001::1]",
"expect_port": "0",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "528",
"name": "",
"rel": "http://[2001::1]:80",
"base": "http://www.example.com/foo/bar",
"expect_scheme": "http:",
"expect_host": "[2001::1]",
"expect_port": "0",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "529",
"name": "",
"rel": "http://[[::]]",
"base": "http://www.example.com/foo/bar",
"expect_scheme": ":",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
}
]
},
{
"name": "standard-url",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/standard-url.js",
"desc": "Test cases from Webkit's fast/url/standard-url.js",
"test": [
{
"id": "530",
"name": "",
"url": "http://www.google.com/foo?bar=baz#",
"expect_url": "http://www.google.com/foo?bar=baz#"
},
{
"id": "531",
"name": "",
"url": "http://[www.google.com]/",
"expect_url": "http://[www.google.com]/"
},
{
"id": "532",
"name": "",
"url": "http:////////user:@google.com:99?foo",
"expect_url": "http://user@google.com:99/?foo"
},
{
"id": "533",
"name": "",
"url": "http://192.0x00A80001",
"expect_url": "http://192.168.0.1/"
},
{
"id": "534",
"name": "",
"url": "http://www/foo%2Ehtml",
"expect_url": "http://www/foo.html"
},
{
"id": "535",
"name": "",
"url": "http://user:pass@/",
"expect_url": "http://user:pass@/"
},
{
"id": "536",
"name": "",
"url": "http://%25DOMAIN:foobar@foodomain.com/",
"expect_url": "http://%25DOMAIN:foobar@foodomain.com/"
},
{
"id": "537",
"name": "",
"url": "http:\\\\\\\\www.google.com\\\\foo",
"expect_url": "http://www.google.com/foo"
},
{
"id": "538",
"name": "",
"ignored": true
},
{
"id": "539",
"name": "",
"url": "http://foo:80/",
"expect_url": "http://foo/"
},
{
"id": "540",
"name": "",
"url": "http://foo:81/",
"expect_url": "http://foo:81/"
},
{
"id": "541",
"name": "",
"url": "httpa://foo:80/",
"expect_url": "httpa://foo:80/"
},
{
"id": "542",
"name": "",
"url": "http://foo:-80/",
"expect_url": "http://foo:-80/"
},
{
"id": "543",
"name": "",
"url": "https://foo:443/",
"expect_url": "https://foo/"
},
{
"id": "544",
"name": "",
"url": "https://foo:80/",
"expect_url": "https://foo:80/"
},
{
"id": "545",
"name": "",
"url": "ftp://foo:21/",
"expect_url": "ftp://foo/"
},
{
"id": "546",
"name": "",
"url": "ftp://foo:80/",
"expect_url": "ftp://foo:80/"
},
{
"id": "547",
"name": "",
"url": "gopher://foo:70/",
"expect_url": "gopher://foo/"
},
{
"id": "548",
"name": "",
"url": "gopher://foo:443/",
"expect_url": "gopher://foo:443/"
},
{
"id": "549",
"name": "",
"url": "ws://foo:80/",
"expect_url": "ws://foo/"
},
{
"id": "550",
"name": "",
"url": "ws://foo:81/",
"expect_url": "ws://foo:81/"
},
{
"id": "551",
"name": "",
"url": "ws://foo:443/",
"expect_url": "ws://foo:443/"
},
{
"id": "552",
"name": "",
"url": "ws://foo:815/",
"expect_url": "ws://foo:815/"
},
{
"id": "553",
"name": "",
"url": "wss://foo:80/",
"expect_url": "wss://foo:80/"
},
{
"id": "554",
"name": "",
"url": "wss://foo:81/",
"expect_url": "wss://foo:81/"
},
{
"id": "555",
"name": "",
"url": "wss://foo:443/",
"expect_url": "wss://foo/"
},
{
"id": "556",
"name": "",
"url": "wss://foo:815/",
"expect_url": "wss://foo:815/"
}
]
},
{
"name": "trivial-segments",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/trivial-segments.js",
"desc": "Test cases from Webkit's fast/url/trivial-segments.js",
"test": [{
"id": "557",
"name": "",
"rel": "http://example.com/",
"base": "http://example.org/foo/bar",
"expect_scheme": "http:",
"expect_host": "example.com",
"expect_port": "0",
"expect_path": "/",
"expect_query": "",
"expect_fragment": ""
}]
},
{
"name": "trivial",
"link": "http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/trivial.js",
"desc": "Test cases from Webkit's fast/url/trivial.js",
"test": [
{
"id": "558",
"name": "",
"base": "http://example.org/foo/bar",
"rel": "http://example.com/",
"expect_rel": "http://example.com/"
},
{
"id": "559",
"name": "",
"base": "http://example.org/foo/bar",
"rel": "/",
"expect_rel": "http://example.org/"
}
]
},
{
"name": "normalization",
"link": "#",
"desc": "Test cases for normalization behaviors - see http://www.unicode.org/reports/tr15/ Figure 6 and RFC3987",
"test": [
{
"id": "560",
"name": "",
"charset": "utf-8",
"base": "http://www.example.com/",
"rel": "résumé/résumé.html",
"expect_rel": "résumé/résumé.html"
},
{
"id": "561",
"name": "",
"charset": "utf-8",
"base": "http://www.example.com/",
"rel": "résumé.html",
"expect_rel": "résumé.html"
},
{
"id": "562",
"name": "",
"charset": "windows-1258",
"base": "http://www.example.com/",
"rel": "ViệtNam.html",
"expect_rel": "ViệtNam.html"
},
{
"id": "563",
"name": "",
"charset": "utf-8",
"base": "http://www.example.com/",
"rel": "\uFB01?\uFB01#\uFB01",
"expect_rel": "\uFB01?\uFB01#\uFB01"
},
{
"id": "564",
"name": "",
"charset": "utf-8",
"base": "http://www.example.com/",
"rel": "?résumé#résumé",
"expect_rel": "?résumé#résumé"
},
{
"id": "565",
"name": "",
"charset": "utf-8",
"base": "http://www.example.com/",
"rel": "2\u2075?2\u2075#2\u2075",
"expect_rel": "2\u2075?2\u2075#2\u2075"
},
{
"id": "566",
"name": "",
"charset": "windows-1258",
"base": "http://www.example.com/",
"rel": "?ViệtNam#ViệtNam",
"expect_rel": "?ViệtNam#ViệtNam"
},
{
"id": "567",
"name": "",
"charset": "windows-1258",
"base": "http://www.example.com/",
"rel": "foo?q=\u2665",
"expect_rel": "foo?q=\u2665"
},
{
"id": "568",
"name": "",
"charset": "utf-8",
"base": "http://www.example.com/",
"rel": "\u1E9B\u0323/?\u1E9B\u0323#\u1E9B\u0323",
"expect_rel": "\u1E9B\u0323/?\u1E9B\u0323#\u1E9B\u0323"
},
{
"id": "569",
"name": "",
"charset": "utf-8",
"base": "http://www.example.com/",
"rel": "\u212B/?\u212B#\u212B",
"expect_rel": "\u1E9B\u0323/?\u1E9B\u0323#\u1E9B\u0323"
},
{
"id": "570",
"name": "",
"charset": "utf-8",
"base": "http://www.example.com/",
"rel": "\u1E9B\u0323/?\u1E9B\u0323#\u1E9B\u0323",
"expect_rel": "\u1E9B\u0323/?\u1E9B\u0323#\u1E9B\u0323"
},
{
"id": "571",
"name": "",
"charset": "utf-8",
"base": "http://www.example.com/",
"rel": "\u1E0B\u0323/?\u1E0B\u0323#\u1E0B\u0323",
"expect_rel": "\u1E0B\u0323/?\u1E0B\u0323#\u1E0B\u0323"
}
]
},
{
"name": "Test cases for whitespace handling",
"link": "#",
"desc": "Various references with white space",
"test": [
{
"id": "572",
"name": "",
"url": "http://www.example.com/foo bar/? foo = bar # foo",
"expect_url": "http://www.example.com/foo bar/? foo = bar # foo"
},
{
"id": "573",
"name": "",
"url": "http://www.example.com/ ",
"expect_url": "http://www.example.com/ "
}
]
},
{
"name": "Test cases for percent-encoding",
"link": "#",
"desc": "Test how percent-encoding is handled",
"test": [
{
"id": "573",
"name": "Test if delimeters such as \"?\" are unencoded",
"charset": "utf-8",
"url": "http://www.example.com/foo%3fbar",
"expect_url": "http://www.example.com/foo?bar"
},
{
"id": "574",
"name": "Test if delimeters such as \"/\" are unencoded",
"charset": "utf-8",
"url": "http://www.example.com/foo%2fbar",
"expect_url": "http://www.example.com/foo/bar"
},
{
"id": "575",
"name": "Test if entire string is unencoded",
"charset": "utf-8",
"url": "%68%74%74%70%3a%2f%2f%77%77%77%2e%65%78%61%6d%70%6c%65%2e%63%6f%6d%2f",
"expect_url": "http://www.example.com/"
},
{
"id": "576",
"name": "Test if scheme gets unencoded",
"charset": "utf-8",
"url": "http%3a%2f%2f%77%77%77%2e%65%78%61%6d%70%6c%65%2e%63%6f%6d%2f",
"expect_url": "http://www.example.com/"
},
{
"id": "577",
"name": "Test if authority and port gets unencoded",
"charset": "utf-8",
"url": "http://%77%77%77%2e%65%78%61%6d%70%6c%65%2e%63%6f%6d%3a%38%30",
"expect_url": "http://www.example.com:80/"
},
{
"id": "578",
"name": "",
"charset": "iso-8859-1",
"url": "http://%A1%C1.com",
"expect_url": "http://¡À.com"
},
{
"id": "579",
"name": "Test mixed encodings",
"charset": "iso-8859-1",
"url": "http://www.example.com/%A1%C1/?foo=%EF%BD%81",
"expect_url": "http://www.example.com/%A1%C1/?foo=%EF%BD%81"
},
{
"id": "580",
"name": "Test mixed encodings",
"charset": "iso-8859-1",
"url": "http://www.example.com/%EF%BD%81/?foo=%A1%C1",
"expect_url": "http://www.example.com/%EF%BD%81/?foo=%A1%C1",
"comment": "."
},
{
"id": "581",
"name": "Test mixed encodings",
"charset": "iso-8859-1",
"url": "http://www.example.com/FOO/?foo=%A1%C1",
"expect_url": "http://www.example.com/FOO/?foo=%A1%C1"
},
{
"id": "582",
"name": "Test mixed encodings",
"charset": "iso-8859-1",
"url": "http://www.example.com/%A1%C1/?foo=FOO",
"expect_url": "http://www.example.com/%A1%C1/?foo=FOO"
},
{
"id": "583",
"name": "Test mixed encodings",
"charset": "utf-8",
"url": "http://www.example.com/FOO/?foo=%A1%C1",
"expect_url": "http://www.example.com/FOO/?foo=%A1%C1"
},
{
"id": "584",
"name": "The Martin Dürst test",
"charset": "iso-8859-1",
"url": "http://www.example.com/D%FCrst",
"expect_url": "http://www.example.com/D%FCrst"
},
{
"id": "585",
"name": "The Martin Dürst test",
"charset": "iso-8859-1",
"url": "http://www.example.com/D%C3%BCrst",
"expect_url": "http://www.example.com/D%C3%BCrst"
},
{
"id": "586",
"name": "The Martin Dürst test",
"charset": "iso-8859-1",
"url": "http://www.example.com/?D%FCrst",
"expect_url": "http://www.example.com/?D%FCrst"
},
{
"id": "587",
"name": "The Martin Dürst test",
"charset": "iso-8859-1",
"url": "http://www.example.com/?D%C3%BCrst",
"expect_url": "http://www.example.com/?D%C3%BCrst"
}
]
},
{
"name": "Miscellaneous test cases",
"link": "#",
"desc": "Misc test cases",
"test": [
{
"id": "588",
"name": "",
"url": "http://user%40example.com",
"expect_url": "http://user@example.com",
"expect_scheme": "http:",
"expect_host": "example.com",
"expect_port": "80",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "589",
"name": "",
"url": "http://user%3Ainfo%40",
"expect_url": "http://user:info@",
"expect_scheme": "http:",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "590",
"name": "",
"url": "http://user@",
"expect_url": "http://user@",
"expect_scheme": "http:",
"expect_host": "",
"expect_port": "0",
"expect_path": "",
"expect_query": "",
"expect_fragment": ""
},
{
"id": "594",
"name": "",
"url": "$:foo/bar",
"expect_url": "$:",
"expect_scheme": "$:",
"expect_host": "foo",
"expect_port": "0",
"expect_path": "bar",
"expect_query": "",
"expect_fragment": ""
}
]
}
]
}
}