mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* lib/uri/generic.rb (URI::Generic.build):
use hostname= to detect and wrap IPv6 hosts. Build is accepting URI components and users may not expect that a host component needs to be wrapped with square brackets since it's not providing a URI. Note: initialize with arg_check => true does not wrap IPv6 hosts. by Joe Rafaniello <jrafanie@redhat.com> https://github.com/ruby/ruby/pull/765 fix GH-765 * test/uri/test_generic.rb: Add more tests git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									7f411d6ed4
								
							
						
					
					
						commit
						e1606f920b
					
				
					 3 changed files with 31 additions and 4 deletions
				
			
		
							
								
								
									
										13
									
								
								ChangeLog
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								ChangeLog
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,3 +1,16 @@
 | 
			
		|||
Tue Dec  2 02:30:25 2014  NARUSE, Yui  <naruse@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* lib/uri/generic.rb (URI::Generic.build):
 | 
			
		||||
	  use hostname= to detect and wrap IPv6 hosts.
 | 
			
		||||
	  Build is accepting URI components and users may not expect
 | 
			
		||||
	  that a host component needs to be wrapped with square brackets
 | 
			
		||||
	  since it's not providing a URI.
 | 
			
		||||
	  Note: initialize with arg_check => true does not wrap IPv6 hosts.
 | 
			
		||||
	  by Joe Rafaniello <jrafanie@redhat.com>
 | 
			
		||||
	  https://github.com/ruby/ruby/pull/765 fix GH-765
 | 
			
		||||
 | 
			
		||||
	* test/uri/test_generic.rb: Add more tests
 | 
			
		||||
 | 
			
		||||
Mon Dec  1 20:01:12 2014  Masaki Suketa <masaki.suketa@nifty.ne.jp>
 | 
			
		||||
 | 
			
		||||
	* ext/win32ole/win32ole.c: use typed data for WIN32OLE.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -184,7 +184,7 @@ module URI
 | 
			
		|||
      if arg_check
 | 
			
		||||
        self.scheme = scheme
 | 
			
		||||
        self.userinfo = userinfo
 | 
			
		||||
        self.host = host
 | 
			
		||||
        self.hostname = host
 | 
			
		||||
        self.port = port
 | 
			
		||||
        self.path = path
 | 
			
		||||
        self.query = query
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -758,12 +758,26 @@ class URI::TestGeneric < Test::Unit::TestCase
 | 
			
		|||
  end
 | 
			
		||||
 | 
			
		||||
  def test_build
 | 
			
		||||
    URI::Generic.build(['http', nil, 'example.com', 80, nil, '/foo', nil, nil, nil])
 | 
			
		||||
    u = URI::Generic.build(['http', nil, 'example.com', 80, nil, '/foo', nil, nil, nil])
 | 
			
		||||
    assert_equal('http://example.com:80/foo', u.to_s)
 | 
			
		||||
 | 
			
		||||
    u = URI::Generic.build(:scheme => "http", :host => "::1", :path => "/bar/baz")
 | 
			
		||||
    assert_equal("http://[::1]/bar/baz", u.to_s)
 | 
			
		||||
    assert_equal("[::1]", u.host)
 | 
			
		||||
    assert_equal("::1", u.hostname)
 | 
			
		||||
 | 
			
		||||
    u = URI::Generic.build(:scheme => "http", :host => "[::1]", :path => "/bar/baz")
 | 
			
		||||
    assert_equal("http://[::1]/bar/baz", u.to_s)
 | 
			
		||||
    assert_equal("[::1]", u.host)
 | 
			
		||||
    assert_equal("::1", u.hostname)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def test_build2
 | 
			
		||||
    URI::Generic.build2(path: "/foo bar/baz")
 | 
			
		||||
    URI::Generic.build2(['http', nil, 'example.com', 80, nil, '/foo bar' , nil, nil, nil])
 | 
			
		||||
    u = URI::Generic.build2(path: "/foo bar/baz")
 | 
			
		||||
    assert_equal('/foo%20bar/baz', u.to_s)
 | 
			
		||||
 | 
			
		||||
    u = URI::Generic.build2(['http', nil, 'example.com', 80, nil, '/foo bar' , nil, nil, nil])
 | 
			
		||||
    assert_equal('http://example.com:80/foo%20bar', u.to_s)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # 192.0.2.0/24 is TEST-NET.  [RFC3330]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue