summaryrefslogtreecommitdiff
path: root/ruby_1_8_6/test/uri/test_generic.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_8_6/test/uri/test_generic.rb')
-rw-r--r--ruby_1_8_6/test/uri/test_generic.rb698
1 files changed, 0 insertions, 698 deletions
diff --git a/ruby_1_8_6/test/uri/test_generic.rb b/ruby_1_8_6/test/uri/test_generic.rb
deleted file mode 100644
index 8a7feb4982..0000000000
--- a/ruby_1_8_6/test/uri/test_generic.rb
+++ /dev/null
@@ -1,698 +0,0 @@
-require 'test/unit'
-require 'uri'
-
-module URI
-
-
-class TestGeneric < Test::Unit::TestCase
- def setup
- @url = 'http://a/b/c/d;p?q'
- @base_url = URI.parse(@url)
- end
-
- def teardown
- end
-
- def uri_to_ary(uri)
- uri.class.component.collect {|c| uri.send(c)}
- end
-
- def test_parse
- # 0
- assert_kind_of(URI::HTTP, @base_url)
-
- exp = [
- 'http',
- nil, 'a', URI::HTTP.default_port,
- '/b/c/d;p',
- 'q',
- nil
- ]
- ary = uri_to_ary(@base_url)
- assert_equal(exp, ary)
-
- # 1
- url = URI.parse('ftp://ftp.is.co.za/rfc/rfc1808.txt')
- assert_kind_of(URI::FTP, url)
-
- exp = [
- 'ftp',
- nil, 'ftp.is.co.za', URI::FTP.default_port,
- '/rfc/rfc1808.txt', nil,
- ]
- ary = uri_to_ary(url)
- assert_equal(exp, ary)
-
- # 2
- url = URI.parse('gopher://spinaltap.micro.umn.edu/00/Weather/California/Los%20Angeles')
- assert_kind_of(URI::Generic, url)
-
- exp = [
- 'gopher',
- nil, 'spinaltap.micro.umn.edu', nil, nil,
- '/00/Weather/California/Los%20Angeles', nil,
- nil,
- nil
- ]
- ary = uri_to_ary(url)
- assert_equal(exp, ary)
-
- # 3
- url = URI.parse('http://www.math.uio.no/faq/compression-faq/part1.html')
- assert_kind_of(URI::HTTP, url)
-
- exp = [
- 'http',
- nil, 'www.math.uio.no', URI::HTTP.default_port,
- '/faq/compression-faq/part1.html',
- nil,
- nil
- ]
- ary = uri_to_ary(url)
- assert_equal(exp, ary)
-
- # 4
- url = URI.parse('mailto:mduerst@ifi.unizh.ch')
- assert_kind_of(URI::Generic, url)
-
- exp = [
- 'mailto',
- 'mduerst@ifi.unizh.ch',
- []
- ]
- ary = uri_to_ary(url)
- assert_equal(exp, ary)
-
- # 5
- url = URI.parse('news:comp.infosystems.www.servers.unix')
- assert_kind_of(URI::Generic, url)
-
- exp = [
- 'news',
- nil, nil, nil, nil,
- nil, 'comp.infosystems.www.servers.unix',
- nil,
- nil
- ]
- ary = uri_to_ary(url)
- assert_equal(exp, ary)
-
- # 6
- url = URI.parse('telnet://melvyl.ucop.edu/')
- assert_kind_of(URI::Generic, url)
-
- exp = [
- 'telnet',
- nil, 'melvyl.ucop.edu', nil, nil,
- '/', nil,
- nil,
- nil
- ]
- ary = uri_to_ary(url)
- assert_equal(exp, ary)
-
- # 7
- # reported by Mr. Kubota <em6t-kbt@asahi-net.or.jp>
- assert_raises(URI::InvalidURIError) { URI.parse('http://a_b:80/') }
- assert_raises(URI::InvalidURIError) { URI.parse('http://a_b/') }
-
- # 8
- # reported by m_seki
- uri = URI.parse('file:///foo/bar.txt')
- assert_kind_of(URI::Generic, url)
- uri = URI.parse('file:/foo/bar.txt')
- assert_kind_of(URI::Generic, url)
-
- # 9
- # [ruby-dev:25667]
- url = URI.parse('ftp://:pass@localhost/')
- assert_equal('', url.user)
- assert_equal('pass', url.password)
- assert_equal(':pass', url.userinfo)
- url = URI.parse('ftp://user@localhost/')
- assert_equal('user', url.user)
- assert_equal(nil, url.password)
- assert_equal('user', url.userinfo)
- url = URI.parse('ftp://localhost/')
- assert_equal(nil, url.user)
- assert_equal(nil, url.password)
- assert_equal(nil, url.userinfo)
- end
-
- def test_merge
- u1 = URI.parse('http://foo')
- u2 = URI.parse('http://foo/')
- u3 = URI.parse('http://foo/bar')
- u4 = URI.parse('http://foo/bar/')
-
- assert_equal(URI.parse('http://foo/baz'), u1 + 'baz')
- assert_equal(URI.parse('http://foo/baz'), u2 + 'baz')
- assert_equal(URI.parse('http://foo/baz'), u3 + 'baz')
- assert_equal(URI.parse('http://foo/bar/baz'), u4 + 'baz')
-
- assert_equal(URI.parse('http://foo/baz'), u1 + '/baz')
- assert_equal(URI.parse('http://foo/baz'), u2 + '/baz')
- assert_equal(URI.parse('http://foo/baz'), u3 + '/baz')
- assert_equal(URI.parse('http://foo/baz'), u4 + '/baz')
-
- # from [ruby-dev:11508] Re: uri
- url = URI.parse('http://hoge/a.html') + 'b.html'
- assert_equal('http://hoge/b.html', url.to_s)
-
- # reported by Mr. Kubota <em6t-kbt@asahi-net.or.jp>
- url = URI.parse('http://a/b') + 'http://x/y'
- assert_equal('http://x/y', url.to_s)
- assert_equal(url, URI.parse('') + 'http://x/y')
- assert_equal(url, URI.parse('').normalize + 'http://x/y')
- assert_equal(url, URI.parse('http://a/b').normalize + 'http://x/y')
-
- u = URI.parse('http://foo/bar/baz')
- assert_equal(nil, u.merge!(""))
- assert_equal(nil, u.merge!(u))
- assert(nil != u.merge!("."))
- assert_equal('http://foo/bar/', u.to_s)
- assert(nil != u.merge!("../baz"))
- assert_equal('http://foo/baz', u.to_s)
-
- # [ruby-dev:23628]
- u0 = URI.parse('mailto:foo@example.com')
- u1 = URI.parse('mailto:foo@example.com#bar')
- assert_equal(uri_to_ary(u0 + '#bar'), uri_to_ary(u1))
-
- # [ruby-list:39838]
- u0 = URI.parse('http://www.example.com/')
- u1 = URI.parse('http://www.example.com/foo/..') + './'
- assert_equal(u0, u1)
- u0 = URI.parse('http://www.example.com/foo/')
- u1 = URI.parse('http://www.example.com/foo/bar/..') + './'
- assert_equal(u0, u1)
- u0 = URI.parse('http://www.example.com/foo/bar/')
- u1 = URI.parse('http://www.example.com/foo/bar/baz/..') + './'
- assert_equal(u0, u1)
- u0 = URI.parse('http://www.example.com/')
- u1 = URI.parse('http://www.example.com/foo/bar/../..') + './'
- assert_equal(u0, u1)
- u0 = URI.parse('http://www.example.com/foo/')
- u1 = URI.parse('http://www.example.com/foo/bar/baz/../..') + './'
- assert_equal(u0, u1)
-
- # [ruby-list:39844]
- u = URI.parse('http://www.example.com/')
- u0 = u + './foo/'
- u1 = u + './foo/bar/..'
- assert_equal(u0, u1)
- u = URI.parse('http://www.example.com/')
- u0 = u + './'
- u1 = u + './foo/bar/../..'
- assert_equal(u0, u1)
- end
-
- def test_route
- url = URI.parse('http://hoge/a.html').route_to('http://hoge/b.html')
- assert_equal('b.html', url.to_s)
-
- url = URI.parse('http://hoge/a/').route_to('http://hoge/b/')
- assert_equal('../b/', url.to_s)
- url = URI.parse('http://hoge/a/b').route_to('http://hoge/b/')
- assert_equal('../b/', url.to_s)
-
- url = URI.parse('http://hoge/a/b/').route_to('http://hoge/b/')
- assert_equal('../../b/', url.to_s)
-
- url = URI.parse('http://hoge/a/b/').route_to('http://HOGE/b/')
- assert_equal('../../b/', url.to_s)
-
- url = URI.parse('http://hoge/a/b/').route_to('http://MOGE/b/')
- assert_equal('//MOGE/b/', url.to_s)
-
- url = URI.parse('file:///a/b/').route_to('file:///a/b/')
- assert_equal('', url.to_s)
-
- url = URI.parse('mailto:foo@example.com').route_to('mailto:foo@example.com#bar')
- assert_equal('#bar', url.to_s)
-
- url = URI.parse('mailto:foo@example.com#bar').route_to('mailto:foo@example.com')
- assert_equal('', url.to_s)
-
- url = URI.parse('mailto:foo@example.com').route_to('mailto:foo@example.com')
- assert_equal('', url.to_s)
- end
-
- def test_rfc2396_examples
-# http://a/b/c/d;p?q
-# g:h = g:h
- url = @base_url.merge('g:h')
- assert_kind_of(URI::Generic, url)
- assert_equal('g:h', url.to_s)
- url = @base_url.route_to('g:h')
- assert_kind_of(URI::Generic, url)
- assert_equal('g:h', url.to_s)
-
-# http://a/b/c/d;p?q
-# g = http://a/b/c/g
- url = @base_url.merge('g')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/g', url.to_s)
- url = @base_url.route_to('http://a/b/c/g')
- assert_kind_of(URI::Generic, url)
- assert_equal('g', url.to_s)
-
-# http://a/b/c/d;p?q
-# ./g = http://a/b/c/g
- url = @base_url.merge('./g')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/g', url.to_s)
- url = @base_url.route_to('http://a/b/c/g')
- assert_kind_of(URI::Generic, url)
- assert('./g' != url.to_s) # ok
- assert_equal('g', url.to_s)
-
-# http://a/b/c/d;p?q
-# g/ = http://a/b/c/g/
- url = @base_url.merge('g/')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/g/', url.to_s)
- url = @base_url.route_to('http://a/b/c/g/')
- assert_kind_of(URI::Generic, url)
- assert_equal('g/', url.to_s)
-
-# http://a/b/c/d;p?q
-# /g = http://a/g
- url = @base_url.merge('/g')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/g', url.to_s)
- url = @base_url.route_to('http://a/g')
- assert_kind_of(URI::Generic, url)
- assert('/g' != url.to_s) # ok
- assert_equal('../../g', url.to_s)
-
-# http://a/b/c/d;p?q
-# //g = http://g
- url = @base_url.merge('//g')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://g', url.to_s)
- url = @base_url.route_to('http://g')
- assert_kind_of(URI::Generic, url)
- assert_equal('//g', url.to_s)
-
-# http://a/b/c/d;p?q
-# ?y = http://a/b/c/?y
- url = @base_url.merge('?y')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/?y', url.to_s)
- url = @base_url.route_to('http://a/b/c/?y')
- assert_kind_of(URI::Generic, url)
- assert_equal('?y', url.to_s)
-
-# http://a/b/c/d;p?q
-# g?y = http://a/b/c/g?y
- url = @base_url.merge('g?y')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/g?y', url.to_s)
- url = @base_url.route_to('http://a/b/c/g?y')
- assert_kind_of(URI::Generic, url)
- assert_equal('g?y', url.to_s)
-
-# http://a/b/c/d;p?q
-# #s = (current document)#s
- url = @base_url.merge('#s')
- assert_kind_of(URI::HTTP, url)
- assert_equal(@base_url.to_s + '#s', url.to_s)
- url = @base_url.route_to(@base_url.to_s + '#s')
- assert_kind_of(URI::Generic, url)
- assert_equal('#s', url.to_s)
-
-# http://a/b/c/d;p?q
-# g#s = http://a/b/c/g#s
- url = @base_url.merge('g#s')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/g#s', url.to_s)
- url = @base_url.route_to('http://a/b/c/g#s')
- assert_kind_of(URI::Generic, url)
- assert_equal('g#s', url.to_s)
-
-# http://a/b/c/d;p?q
-# g?y#s = http://a/b/c/g?y#s
- url = @base_url.merge('g?y#s')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/g?y#s', url.to_s)
- url = @base_url.route_to('http://a/b/c/g?y#s')
- assert_kind_of(URI::Generic, url)
- assert_equal('g?y#s', url.to_s)
-
-# http://a/b/c/d;p?q
-# ;x = http://a/b/c/;x
- url = @base_url.merge(';x')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/;x', url.to_s)
- url = @base_url.route_to('http://a/b/c/;x')
- assert_kind_of(URI::Generic, url)
- assert_equal(';x', url.to_s)
-
-# http://a/b/c/d;p?q
-# g;x = http://a/b/c/g;x
- url = @base_url.merge('g;x')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/g;x', url.to_s)
- url = @base_url.route_to('http://a/b/c/g;x')
- assert_kind_of(URI::Generic, url)
- assert_equal('g;x', url.to_s)
-
-# http://a/b/c/d;p?q
-# g;x?y#s = http://a/b/c/g;x?y#s
- url = @base_url.merge('g;x?y#s')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/g;x?y#s', url.to_s)
- url = @base_url.route_to('http://a/b/c/g;x?y#s')
- assert_kind_of(URI::Generic, url)
- assert_equal('g;x?y#s', url.to_s)
-
-# http://a/b/c/d;p?q
-# . = http://a/b/c/
- url = @base_url.merge('.')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/', url.to_s)
- url = @base_url.route_to('http://a/b/c/')
- assert_kind_of(URI::Generic, url)
- assert('.' != url.to_s) # ok
- assert_equal('./', url.to_s)
-
-# http://a/b/c/d;p?q
-# ./ = http://a/b/c/
- url = @base_url.merge('./')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/', url.to_s)
- url = @base_url.route_to('http://a/b/c/')
- assert_kind_of(URI::Generic, url)
- assert_equal('./', url.to_s)
-
-# http://a/b/c/d;p?q
-# .. = http://a/b/
- url = @base_url.merge('..')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/', url.to_s)
- url = @base_url.route_to('http://a/b/')
- assert_kind_of(URI::Generic, url)
- assert('..' != url.to_s) # ok
- assert_equal('../', url.to_s)
-
-# http://a/b/c/d;p?q
-# ../ = http://a/b/
- url = @base_url.merge('../')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/', url.to_s)
- url = @base_url.route_to('http://a/b/')
- assert_kind_of(URI::Generic, url)
- assert_equal('../', url.to_s)
-
-# http://a/b/c/d;p?q
-# ../g = http://a/b/g
- url = @base_url.merge('../g')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/g', url.to_s)
- url = @base_url.route_to('http://a/b/g')
- assert_kind_of(URI::Generic, url)
- assert_equal('../g', url.to_s)
-
-# http://a/b/c/d;p?q
-# ../.. = http://a/
- url = @base_url.merge('../..')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/', url.to_s)
- url = @base_url.route_to('http://a/')
- assert_kind_of(URI::Generic, url)
- assert('../..' != url.to_s) # ok
- assert_equal('../../', url.to_s)
-
-# http://a/b/c/d;p?q
-# ../../ = http://a/
- url = @base_url.merge('../../')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/', url.to_s)
- url = @base_url.route_to('http://a/')
- assert_kind_of(URI::Generic, url)
- assert_equal('../../', url.to_s)
-
-# http://a/b/c/d;p?q
-# ../../g = http://a/g
- url = @base_url.merge('../../g')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/g', url.to_s)
- url = @base_url.route_to('http://a/g')
- assert_kind_of(URI::Generic, url)
- assert_equal('../../g', url.to_s)
-
-# http://a/b/c/d;p?q
-# <> = (current document)
- url = @base_url.merge('')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/d;p?q', url.to_s)
- url = @base_url.route_to('http://a/b/c/d;p?q')
- assert_kind_of(URI::Generic, url)
- assert_equal('', url.to_s)
-
-# http://a/b/c/d;p?q
-# /./g = http://a/./g
- url = @base_url.merge('/./g')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/./g', url.to_s)
- url = @base_url.route_to('http://a/./g')
- assert_kind_of(URI::Generic, url)
- assert_equal('/./g', url.to_s)
-
-# http://a/b/c/d;p?q
-# /../g = http://a/../g
- url = @base_url.merge('/../g')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/../g', url.to_s)
- url = @base_url.route_to('http://a/../g')
- assert_kind_of(URI::Generic, url)
- assert_equal('/../g', url.to_s)
-
-# http://a/b/c/d;p?q
-# g. = http://a/b/c/g.
- url = @base_url.merge('g.')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/g.', url.to_s)
- url = @base_url.route_to('http://a/b/c/g.')
- assert_kind_of(URI::Generic, url)
- assert_equal('g.', url.to_s)
-
-# http://a/b/c/d;p?q
-# .g = http://a/b/c/.g
- url = @base_url.merge('.g')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/.g', url.to_s)
- url = @base_url.route_to('http://a/b/c/.g')
- assert_kind_of(URI::Generic, url)
- assert_equal('.g', url.to_s)
-
-# http://a/b/c/d;p?q
-# g.. = http://a/b/c/g..
- url = @base_url.merge('g..')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/g..', url.to_s)
- url = @base_url.route_to('http://a/b/c/g..')
- assert_kind_of(URI::Generic, url)
- assert_equal('g..', url.to_s)
-
-# http://a/b/c/d;p?q
-# ..g = http://a/b/c/..g
- url = @base_url.merge('..g')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/..g', url.to_s)
- url = @base_url.route_to('http://a/b/c/..g')
- assert_kind_of(URI::Generic, url)
- assert_equal('..g', url.to_s)
-
-# http://a/b/c/d;p?q
-# ../../../g = http://a/../g
- url = @base_url.merge('../../../g')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/../g', url.to_s)
- url = @base_url.route_to('http://a/../g')
- assert_kind_of(URI::Generic, url)
- assert('../../../g' != url.to_s) # ok? yes, it confuses you
- assert_equal('/../g', url.to_s) # and it is clearly
-
-# http://a/b/c/d;p?q
-# ../../../../g = http://a/../../g
- url = @base_url.merge('../../../../g')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/../../g', url.to_s)
- url = @base_url.route_to('http://a/../../g')
- assert_kind_of(URI::Generic, url)
- assert('../../../../g' != url.to_s) # ok? yes, it confuses you
- assert_equal('/../../g', url.to_s) # and it is clearly
-
-# http://a/b/c/d;p?q
-# ./../g = http://a/b/g
- url = @base_url.merge('./../g')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/g', url.to_s)
- url = @base_url.route_to('http://a/b/g')
- assert_kind_of(URI::Generic, url)
- assert('./../g' != url.to_s) # ok
- assert_equal('../g', url.to_s)
-
-# http://a/b/c/d;p?q
-# ./g/. = http://a/b/c/g/
- url = @base_url.merge('./g/.')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/g/', url.to_s)
- url = @base_url.route_to('http://a/b/c/g/')
- assert_kind_of(URI::Generic, url)
- assert('./g/.' != url.to_s) # ok
- assert_equal('g/', url.to_s)
-
-# http://a/b/c/d;p?q
-# g/./h = http://a/b/c/g/h
- url = @base_url.merge('g/./h')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/g/h', url.to_s)
- url = @base_url.route_to('http://a/b/c/g/h')
- assert_kind_of(URI::Generic, url)
- assert('g/./h' != url.to_s) # ok
- assert_equal('g/h', url.to_s)
-
-# http://a/b/c/d;p?q
-# g/../h = http://a/b/c/h
- url = @base_url.merge('g/../h')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/h', url.to_s)
- url = @base_url.route_to('http://a/b/c/h')
- assert_kind_of(URI::Generic, url)
- assert('g/../h' != url.to_s) # ok
- assert_equal('h', url.to_s)
-
-# http://a/b/c/d;p?q
-# g;x=1/./y = http://a/b/c/g;x=1/y
- url = @base_url.merge('g;x=1/./y')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/g;x=1/y', url.to_s)
- url = @base_url.route_to('http://a/b/c/g;x=1/y')
- assert_kind_of(URI::Generic, url)
- assert('g;x=1/./y' != url.to_s) # ok
- assert_equal('g;x=1/y', url.to_s)
-
-# http://a/b/c/d;p?q
-# g;x=1/../y = http://a/b/c/y
- url = @base_url.merge('g;x=1/../y')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/y', url.to_s)
- url = @base_url.route_to('http://a/b/c/y')
- assert_kind_of(URI::Generic, url)
- assert('g;x=1/../y' != url.to_s) # ok
- assert_equal('y', url.to_s)
-
-# http://a/b/c/d;p?q
-# g?y/./x = http://a/b/c/g?y/./x
- url = @base_url.merge('g?y/./x')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/g?y/./x', url.to_s)
- url = @base_url.route_to('http://a/b/c/g?y/./x')
- assert_kind_of(URI::Generic, url)
- assert_equal('g?y/./x', url.to_s)
-
-# http://a/b/c/d;p?q
-# g?y/../x = http://a/b/c/g?y/../x
- url = @base_url.merge('g?y/../x')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/g?y/../x', url.to_s)
- url = @base_url.route_to('http://a/b/c/g?y/../x')
- assert_kind_of(URI::Generic, url)
- assert_equal('g?y/../x', url.to_s)
-
-# http://a/b/c/d;p?q
-# g#s/./x = http://a/b/c/g#s/./x
- url = @base_url.merge('g#s/./x')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/g#s/./x', url.to_s)
- url = @base_url.route_to('http://a/b/c/g#s/./x')
- assert_kind_of(URI::Generic, url)
- assert_equal('g#s/./x', url.to_s)
-
-# http://a/b/c/d;p?q
-# g#s/../x = http://a/b/c/g#s/../x
- url = @base_url.merge('g#s/../x')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http://a/b/c/g#s/../x', url.to_s)
- url = @base_url.route_to('http://a/b/c/g#s/../x')
- assert_kind_of(URI::Generic, url)
- assert_equal('g#s/../x', url.to_s)
-
-# http://a/b/c/d;p?q
-# http:g = http:g ; for validating parsers
-# | http://a/b/c/g ; for backwards compatibility
- url = @base_url.merge('http:g')
- assert_kind_of(URI::HTTP, url)
- assert_equal('http:g', url.to_s)
- url = @base_url.route_to('http:g')
- assert_kind_of(URI::Generic, url)
- assert_equal('http:g', url.to_s)
- end
-
- def test_join
- assert_equal(URI.parse('http://foo/bar'), URI.join('http://foo/bar'))
- assert_equal(URI.parse('http://foo/bar'), URI.join('http://foo', 'bar'))
- assert_equal(URI.parse('http://foo/bar/'), URI.join('http://foo', 'bar/'))
-
- assert_equal(URI.parse('http://foo/baz'), URI.join('http://foo', 'bar', 'baz'))
- assert_equal(URI.parse('http://foo/baz'), URI.join('http://foo', 'bar', '/baz'))
- assert_equal(URI.parse('http://foo/baz/'), URI.join('http://foo', 'bar', '/baz/'))
- assert_equal(URI.parse('http://foo/bar/baz'), URI.join('http://foo', 'bar/', 'baz'))
- assert_equal(URI.parse('http://foo/hoge'), URI.join('http://foo', 'bar', 'baz', 'hoge'))
-
- assert_equal(URI.parse('http://foo/bar/baz'), URI.join('http://foo', 'bar/baz'))
- assert_equal(URI.parse('http://foo/bar/hoge'), URI.join('http://foo', 'bar/baz', 'hoge'))
- assert_equal(URI.parse('http://foo/bar/baz/hoge'), URI.join('http://foo', 'bar/baz/', 'hoge'))
- assert_equal(URI.parse('http://foo/hoge'), URI.join('http://foo', 'bar/baz', '/hoge'))
- assert_equal(URI.parse('http://foo/bar/hoge'), URI.join('http://foo', 'bar/baz', 'hoge'))
- assert_equal(URI.parse('http://foo/bar/baz/hoge'), URI.join('http://foo', 'bar/baz/', 'hoge'))
- assert_equal(URI.parse('http://foo/hoge'), URI.join('http://foo', 'bar/baz', '/hoge'))
- end
-
- # ruby-dev:16728
- def test_set_component
- uri = URI.parse('http://foo:bar@baz')
- assert_equal('oof', uri.user = 'oof')
- assert_equal('http://oof:bar@baz', uri.to_s)
- assert_equal('rab', uri.password = 'rab')
- assert_equal('http://oof:rab@baz', uri.to_s)
- assert_equal('foo', uri.userinfo = 'foo')
- assert_equal('http://foo:rab@baz', uri.to_s)
- assert_equal(['foo', 'bar'], uri.userinfo = ['foo', 'bar'])
- assert_equal('http://foo:bar@baz', uri.to_s)
- assert_equal(['foo'], uri.userinfo = ['foo'])
- assert_equal('http://foo:bar@baz', uri.to_s)
- assert_equal('zab', uri.host = 'zab')
- assert_equal('http://foo:bar@zab', uri.to_s)
- assert_equal(8080, uri.port = 8080)
- assert_equal('http://foo:bar@zab:8080', uri.to_s)
- assert_equal('/', uri.path = '/')
- assert_equal('http://foo:bar@zab:8080/', uri.to_s)
- assert_equal('a=1', uri.query = 'a=1')
- assert_equal('http://foo:bar@zab:8080/?a=1', uri.to_s)
- assert_equal('b123', uri.fragment = 'b123')
- assert_equal('http://foo:bar@zab:8080/?a=1#b123', uri.to_s)
-
- uri = URI.parse('http://example.com')
- assert_raises(URI::InvalidURIError) { uri.password = 'bar' }
- uri.userinfo = 'foo:bar'
- assert_equal('http://foo:bar@example.com', uri.to_s)
- assert_raises(URI::InvalidURIError) { uri.registry = 'bar' }
- assert_raises(URI::InvalidURIError) { uri.opaque = 'bar' }
-
- uri = URI.parse('mailto:foo@example.com')
- assert_raises(URI::InvalidURIError) { uri.user = 'bar' }
- assert_raises(URI::InvalidURIError) { uri.password = 'bar' }
- assert_raises(URI::InvalidURIError) { uri.userinfo = ['bar', 'baz'] }
- assert_raises(URI::InvalidURIError) { uri.host = 'bar' }
- assert_raises(URI::InvalidURIError) { uri.port = 'bar' }
- assert_raises(URI::InvalidURIError) { uri.path = 'bar' }
- assert_raises(URI::InvalidURIError) { uri.query = 'bar' }
- end
-end
-
-
-end