@@ -74,6 +74,18 @@ def test_initialize_GET_uri
7474 assert_equal "/foo" , req . path
7575 assert_equal "example.com" , req [ 'Host' ]
7676
77+ req = Net ::HTTP ::Get . new ( URI ( "https://203.0.113.1/foo" ) )
78+ assert_equal "/foo" , req . path
79+ assert_equal "203.0.113.1" , req [ 'Host' ]
80+
81+ req = Net ::HTTP ::Get . new ( URI ( "https://203.0.113.1:8000/foo" ) )
82+ assert_equal "/foo" , req . path
83+ assert_equal "203.0.113.1:8000" , req [ 'Host' ]
84+
85+ req = Net ::HTTP ::Get . new ( URI ( "https://[2001:db8::1]:8000/foo" ) )
86+ assert_equal "/foo" , req . path
87+ assert_equal "[2001:db8::1]:8000" , req [ 'Host' ]
88+
7789 assert_raise ( ArgumentError ) { Net ::HTTP ::Get . new ( URI ( "urn:ietf:rfc:7231" ) ) }
7890 assert_raise ( ArgumentError ) { Net ::HTTP ::Get . new ( URI ( "http://" ) ) }
7991 end
@@ -89,5 +101,25 @@ def test_header_set
89101 'Bug #7831 - do not decode content if the user overrides'
90102 end if Net ::HTTP ::HAVE_ZLIB
91103
104+ def test_update_uri
105+ req = Net ::HTTP ::Get . new ( URI . parse ( "http://203.0.113.1" ) )
106+ req . update_uri ( "test" , 8080 , false )
107+ assert_equal "203.0.113.1" , req . uri . host
108+ assert_equal 8080 , req . uri . port
109+
110+ req = Net ::HTTP ::Get . new ( URI . parse ( "http://203.0.113.1:2020" ) )
111+ req . update_uri ( "test" , 8080 , false )
112+ assert_equal "203.0.113.1" , req . uri . host
113+ assert_equal 8080 , req . uri . port
114+
115+ req = Net ::HTTP ::Get . new ( URI . parse ( "http://[2001:db8::1]" ) )
116+ req . update_uri ( "test" , 8080 , false )
117+ assert_equal "[2001:db8::1]" , req . uri . host
118+ assert_equal 8080 , req . uri . port
119+
120+ req = Net ::HTTP ::Get . new ( URI . parse ( "http://[2001:db8::1]:2020" ) )
121+ req . update_uri ( "test" , 8080 , false )
122+ assert_equal "[2001:db8::1]" , req . uri . host
123+ assert_equal 8080 , req . uri . port
124+ end
92125end
93-
0 commit comments