| 453 | ('mailto', None, '1337@example.org', None, None, None)) |
| 454 | |
| 455 | def test_RFC2396(self): |
| 456 | # cases from RFC 2396 |
| 457 | |
| 458 | self.checkJoin(RFC2396_BASE, 'g:h', 'g:h') |
| 459 | self.checkJoin(RFC2396_BASE, 'g', 'http://a/b/c/g') |
| 460 | self.checkJoin(RFC2396_BASE, './g', 'http://a/b/c/g') |
| 461 | self.checkJoin(RFC2396_BASE, 'g/', 'http://a/b/c/g/') |
| 462 | self.checkJoin(RFC2396_BASE, '/g', 'http://a/g') |
| 463 | self.checkJoin(RFC2396_BASE, '//g', 'http://g') |
| 464 | self.checkJoin(RFC2396_BASE, 'g?y', 'http://a/b/c/g?y') |
| 465 | self.checkJoin(RFC2396_BASE, '#s', 'http://a/b/c/d;p?q#s') |
| 466 | self.checkJoin(RFC2396_BASE, 'g#s', 'http://a/b/c/g#s') |
| 467 | self.checkJoin(RFC2396_BASE, 'g?y#s', 'http://a/b/c/g?y#s') |
| 468 | self.checkJoin(RFC2396_BASE, 'g;x', 'http://a/b/c/g;x') |
| 469 | self.checkJoin(RFC2396_BASE, 'g;x?y#s', 'http://a/b/c/g;x?y#s') |
| 470 | self.checkJoin(RFC2396_BASE, '.', 'http://a/b/c/') |
| 471 | self.checkJoin(RFC2396_BASE, './', 'http://a/b/c/') |
| 472 | self.checkJoin(RFC2396_BASE, '..', 'http://a/b/') |
| 473 | self.checkJoin(RFC2396_BASE, '../', 'http://a/b/') |
| 474 | self.checkJoin(RFC2396_BASE, '../g', 'http://a/b/g') |
| 475 | self.checkJoin(RFC2396_BASE, '../..', 'http://a/') |
| 476 | self.checkJoin(RFC2396_BASE, '../../', 'http://a/') |
| 477 | self.checkJoin(RFC2396_BASE, '../../g', 'http://a/g') |
| 478 | self.checkJoin(RFC2396_BASE, '', RFC2396_BASE) |
| 479 | self.checkJoin(RFC2396_BASE, 'g.', 'http://a/b/c/g.') |
| 480 | self.checkJoin(RFC2396_BASE, '.g', 'http://a/b/c/.g') |
| 481 | self.checkJoin(RFC2396_BASE, 'g..', 'http://a/b/c/g..') |
| 482 | self.checkJoin(RFC2396_BASE, '..g', 'http://a/b/c/..g') |
| 483 | self.checkJoin(RFC2396_BASE, './../g', 'http://a/b/g') |
| 484 | self.checkJoin(RFC2396_BASE, './g/.', 'http://a/b/c/g/') |
| 485 | self.checkJoin(RFC2396_BASE, 'g/./h', 'http://a/b/c/g/h') |
| 486 | self.checkJoin(RFC2396_BASE, 'g/../h', 'http://a/b/c/h') |
| 487 | self.checkJoin(RFC2396_BASE, 'g;x=1/./y', 'http://a/b/c/g;x=1/y') |
| 488 | self.checkJoin(RFC2396_BASE, 'g;x=1/../y', 'http://a/b/c/y') |
| 489 | self.checkJoin(RFC2396_BASE, 'g?y/./x', 'http://a/b/c/g?y/./x') |
| 490 | self.checkJoin(RFC2396_BASE, 'g?y/../x', 'http://a/b/c/g?y/../x') |
| 491 | self.checkJoin(RFC2396_BASE, 'g#s/./x', 'http://a/b/c/g#s/./x') |
| 492 | self.checkJoin(RFC2396_BASE, 'g#s/../x', 'http://a/b/c/g#s/../x') |
| 493 | |
| 494 | # XXX: The following tests are no longer compatible with RFC3986 |
| 495 | # self.checkJoin(RFC2396_BASE, '../../../g', 'http://a/../g') |
| 496 | # self.checkJoin(RFC2396_BASE, '../../../../g', 'http://a/../../g') |
| 497 | # self.checkJoin(RFC2396_BASE, '/./g', 'http://a/./g') |
| 498 | # self.checkJoin(RFC2396_BASE, '/../g', 'http://a/../g') |
| 499 | |
| 500 | def test_RFC3986(self): |
| 501 | self.checkJoin(RFC3986_BASE, '?y','http://a/b/c/d;p?y') |