296
293
assert_equal('//g', url.to_s)
298
295
# http://a/b/c/d;p?q
299
# ?y = http://a/b/c/?y
296
# ?y = http://a/b/c/d;p?y
300
297
url = @base_url.merge('?y')
301
298
assert_kind_of(URI::HTTP, url)
302
assert_equal('http://a/b/c/?y', url.to_s)
303
url = @base_url.route_to('http://a/b/c/?y')
299
assert_equal('http://a/b/c/d;p?y', url.to_s)
300
url = @base_url.route_to('http://a/b/c/d;p?y')
304
301
assert_kind_of(URI::Generic, url)
305
302
assert_equal('?y', url.to_s)
452
449
assert_equal('', url.to_s)
454
451
# http://a/b/c/d;p?q
455
# /./g = http://a/./g
456
453
url = @base_url.merge('/./g')
457
454
assert_kind_of(URI::HTTP, url)
458
assert_equal('http://a/./g', url.to_s)
455
assert_equal('http://a/g', url.to_s)
459
456
url = @base_url.route_to('http://a/./g')
460
457
assert_kind_of(URI::Generic, url)
461
458
assert_equal('/./g', url.to_s)
506
503
assert_equal('..g', url.to_s)
508
505
# http://a/b/c/d;p?q
509
# ../../../g = http://a/../g
506
# ../../../g = http://a/g
510
507
url = @base_url.merge('../../../g')
511
508
assert_kind_of(URI::HTTP, url)
512
assert_equal('http://a/../g', url.to_s)
509
assert_equal('http://a/g', url.to_s)
513
510
url = @base_url.route_to('http://a/../g')
514
511
assert_kind_of(URI::Generic, url)
515
512
assert('../../../g' != url.to_s) # ok? yes, it confuses you
519
516
# ../../../../g = http://a/../../g
520
517
url = @base_url.merge('../../../../g')
521
518
assert_kind_of(URI::HTTP, url)
522
assert_equal('http://a/../../g', url.to_s)
519
assert_equal('http://a/g', url.to_s)
523
520
url = @base_url.route_to('http://a/../../g')
524
521
assert_kind_of(URI::Generic, url)
525
522
assert('../../../../g' != url.to_s) # ok? yes, it confuses you
692
689
assert_raises(URI::InvalidURIError) { uri.path = 'bar' }
693
690
assert_raises(URI::InvalidURIError) { uri.query = 'bar' }
694
@base_url.merge(s).to_s
697
def test_rfc3986_examples
698
assert_equal("g:h", m("g:h"))
699
assert_equal("http://a/b/c/g", m("g"))
700
assert_equal("http://a/b/c/g", m("./g"))
701
assert_equal("http://a/b/c/g/", m("g/"))
702
assert_equal("http://a/g", m("/g"))
703
assert_equal("http://g", m("//g"))
704
assert_equal("http://a/b/c/d;p?y", m("?y"))
705
assert_equal("http://a/b/c/g?y", m("g?y"))
706
assert_equal("http://a/b/c/d;p?q#s", m("#s"))
707
assert_equal("http://a/b/c/g#s", m("g#s"))
708
assert_equal("http://a/b/c/g?y#s", m("g?y#s"))
709
assert_equal("http://a/b/c/;x", m(";x"))
710
assert_equal("http://a/b/c/g;x", m("g;x"))
711
assert_equal("http://a/b/c/g;x?y#s", m("g;x?y#s"))
712
assert_equal("http://a/b/c/d;p?q", m(""))
713
assert_equal("http://a/b/c/", m("."))
714
assert_equal("http://a/b/c/", m("./"))
715
assert_equal("http://a/b/", m(".."))
716
assert_equal("http://a/b/", m("../"))
717
assert_equal("http://a/b/g", m("../g"))
718
assert_equal("http://a/", m("../.."))
719
assert_equal("http://a/", m("../../"))
720
assert_equal("http://a/g", m("../../g"))
721
assert_equal("http://a/g", m("../../../g"))
722
assert_equal("http://a/g", m("../../../../g"))
724
assert_equal("http://a/g", m("/./g"))
725
assert_equal("http://a/g", m("/../g"))
726
assert_equal("http://a/b/c/g.", m("g."))
727
assert_equal("http://a/b/c/.g", m(".g"))
728
assert_equal("http://a/b/c/g..", m("g.."))
729
assert_equal("http://a/b/c/..g", m("..g"))
731
assert_equal("http://a/b/g", m("./../g"))
732
assert_equal("http://a/b/c/g/", m("./g/."))
733
assert_equal("http://a/b/c/g/h", m("g/./h"))
734
assert_equal("http://a/b/c/h", m("g/../h"))
735
assert_equal("http://a/b/c/g;x=1/y", m("g;x=1/./y"))
736
assert_equal("http://a/b/c/y", m("g;x=1/../y"))
738
assert_equal("http://a/b/c/g?y/./x", m("g?y/./x"))
739
assert_equal("http://a/b/c/g?y/../x", m("g?y/../x"))
740
assert_equal("http://a/b/c/g#s/./x", m("g#s/./x"))
741
assert_equal("http://a/b/c/g#s/../x", m("g#s/../x"))
743
assert_equal("http:g", m("http:g"))