~ubuntu-branches/ubuntu/intrepid/ruby1.9/intrepid-updates

« back to all changes in this revision

Viewing changes to test/uri/test_generic.rb

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2007-09-04 16:01:17 UTC
  • mto: This revision was merged to the branch mainline in revision 14.
  • Revision ID: james.westby@ubuntu.com-20070904160117-68anapnflh5c9kgb
Tags: upstream-1.9.0+20070830
ImportĀ upstreamĀ versionĀ 1.9.0+20070830

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
require 'test/unit'
2
2
require 'uri'
3
3
 
4
 
module URI
5
 
 
6
 
 
7
 
class TestGeneric < Test::Unit::TestCase
 
4
class URI::TestGeneric < Test::Unit::TestCase
8
5
  def setup
9
6
    @url = 'http://a/b/c/d;p?q'
10
7
    @base_url = URI.parse(@url)
296
293
    assert_equal('//g', url.to_s)
297
294
 
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)
306
303
 
452
449
    assert_equal('', url.to_s)
453
450
 
454
451
#  http://a/b/c/d;p?q
455
 
#        /./g          =  http://a/./g
 
452
#        /./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)
464
461
#        /../g         =  http://a/../g
465
462
    url = @base_url.merge('/../g')
466
463
    assert_kind_of(URI::HTTP, url)
467
 
    assert_equal('http://a/../g', url.to_s)
 
464
    assert_equal('http://a/g', url.to_s)
468
465
    url = @base_url.route_to('http://a/../g')
469
466
    assert_kind_of(URI::Generic, url)
470
467
    assert_equal('/../g', url.to_s)
506
503
    assert_equal('..g', url.to_s)
507
504
 
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
691
  end
 
692
 
 
693
  def m(s)
 
694
    @base_url.merge(s).to_s
695
695
end
696
696
 
697
 
 
 
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"))
 
723
 
 
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"))
 
730
 
 
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"))
 
737
 
 
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"))
 
742
 
 
743
    assert_equal("http:g",                      m("http:g"))
 
744
  end
698
745
end