| ... | ... | @@ -264,6 +264,66 @@ test { try parseFail("stun://test:test", null); } |
| 264 | 264 | test { try parseFail("stun://[:1]", null); } |
| 265 | 265 | test { try parseFail("non-special://host\\a", null); } |
| 266 | 266 | |
| 267 | test { try parseFail("http://f:b/c", "http://example.org/foo/bar"); } |
| 268 | test { try parseFail("http://f: /c", "http://example.org/foo/bar"); } |
| 269 | test { try parseFail("http://f:fifty-two/c", "http://example.org/foo/bar"); } |
| 270 | test { try parseFail("http://f:999999/c", "http://example.org/foo/bar"); } |
| 271 | test { try parseFail("non-special://f:999999/c", "http://example.org/foo/bar"); } |
| 272 | test { try parseFail("http://f: 21 / b ? d # e ", "http://example.org/foo/bar"); } |
| 273 | test { try parseFail("http://[1::2]:3:4", "http://example.org/foo/bar"); } |
| 274 | test { try parseFail("http://2001::1", "http://example.org/foo/bar"); } |
| 275 | test { try parseFail("http://2001::1]", "http://example.org/foo/bar"); } |
| 276 | test { try parseFail("http://2001::1]:80", "http://example.org/foo/bar"); } |
| 277 | test { try parseFail("http://[::127.0.0.1.]", "http://example.org/foo/bar"); } |
| 278 | test { try parseFail("http://example example.com", "http://other.com/"); } |
| 279 | test { try parseFail("http://Goo%20 goo%7C|.com", "http://other.com/"); } |
| 280 | test { try parseFail("http://[]", "http://other.com/"); } |
| 281 | test { try parseFail("http://[:]", "http://other.com/"); } |
| 282 | test { try parseFail("http://GOO\xc2\xa0\xe3\x80\x80goo.com", "http://other.com/"); } |
| 283 | test { try parseFail("http://\xef\xb7\x90zyx.com", "http://other.com/"); } |
| 284 | test { try parseFail("http://%ef%b7%90zyx.com", "http://other.com/"); } |
| 285 | test { try parseFail("http://\xef\xbc\x85\xef\xbc\x94\xef\xbc\x91.com", "http://other.com/"); } |
| 286 | test { try parseFail("http://%ef%bc%85%ef%bc%94%ef%bc%91.com", "http://other.com/"); } |
| 287 | test { try parseFail("http://\xef\xbc\x85\xef\xbc\x90\xef\xbc\x90.com", "http://other.com/"); } |
| 288 | test { try parseFail("http://%ef%bc%85%ef%bc%90%ef%bc%90.com", "http://other.com/"); } |
| 289 | test { try parseFail("http://%zz%66%a.com", "http://other.com/"); } |
| 290 | test { try parseFail("http://%25", "http://other.com/"); } |
| 291 | test { try parseFail("http://hello%00", "http://other.com/"); } |
| 292 | test { try parseFail("http://192.168.0.257", "http://other.com/"); } |
| 293 | test { try parseFail("http://%3g%78%63%30%2e%30%32%35%30%2E.01", "http://other.com/"); } |
| 294 | test { try parseFail("http://192.168.0.1 hello", "http://other.com/"); } |
| 295 | test { try parseFail("http://[google.com]", "http://other.com/"); } |
| 296 | test { try parseFail("http://[::1.2.3.4x]", "http://other.com/"); } |
| 297 | test { try parseFail("http://[::1.2.3.]", "http://other.com/"); } |
| 298 | test { try parseFail("http://[::1.2.]", "http://other.com/"); } |
| 299 | test { try parseFail("http://[::.1.2]", "http://other.com/"); } |
| 300 | test { try parseFail("http://[::1.]", "http://other.com/"); } |
| 301 | test { try parseFail("http://[::.1]", "http://other.com/"); } |
| 302 | test { try parseFail("http://[::%31]", "http://other.com/"); } |
| 303 | test { try parseFail("http://%5B::1]", "http://other.com/"); } |
| 304 | test { try parseFail("i", "sc:sd"); } |
| 305 | test { try parseFail("i", "sc:sd/sd"); } |
| 306 | test { try parseFail("../i", "sc:sd"); } |
| 307 | test { try parseFail("../i", "sc:sd/sd"); } |
| 308 | test { try parseFail("/i", "sc:sd"); } |
| 309 | test { try parseFail("/i", "sc:sd/sd"); } |
| 310 | test { try parseFail("?i", "sc:sd"); } |
| 311 | test { try parseFail("?i", "sc:sd/sd"); } |
| 312 | test { try parseFail("http:", "https://example.org/foo/bar"); } |
| 313 | test { try parseFail("http://10000000000", "http://other.com/"); } |
| 314 | test { try parseFail("http://4294967296", "http://other.com/"); } |
| 315 | test { try parseFail("http://0xffffffff1", "http://other.com/"); } |
| 316 | test { try parseFail("http://256.256.256.256", "http://other.com/"); } |
| 317 | test { try parseFail("http://[0:1:2:3:4:5:6:7:8]", "http://example.net/"); } |
| 318 | test { try parseFail("http://f:4294967377/c", "http://example.org/"); } |
| 319 | test { try parseFail("http://f:18446744073709551697/c", "http://example.org/"); } |
| 320 | test { try parseFail("http://f:340282366920938463463374607431768211537/c", "http://example.org/"); } |
| 321 | test { try parseFail("test-a-colon.html", "a:"); } |
| 322 | test { try parseFail("test-a-colon-b.html", "a:b"); } |
| 323 | test { try parseFail("http://1.2.3.4.5", "http://other.com/"); } |
| 324 | test { try parseFail("http://1.2.3.4.5.", "http://other.com/"); } |
| 325 | test { try parseFail("http://256.256.256.256.256", "http://other.com/"); } |
| 326 | test { try parseFail("http://256.256.256.256.256.", "http://other.com/"); } |
| 267 | 327 | |
| 268 | 328 | test { try parsePass("https://test:@test", null, "https://test@test/", "https://test", "https:", "test", "", "test", "test", "", "/", "", ""); } |
| 269 | 329 | test { try parsePass("https://:@test", null, "https://test/", "https://test", "https:", "", "", "test", "test", "", "/", "", ""); } |