mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/net/http.rb (Net::HTTP.post_form): Do not ignore query part of
the given URI to post. See #655. * test/net/http/test_http.rb, test/net/http/utils.rb: Test it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
7d11226058
commit
800c313bde
4 changed files with 20 additions and 4 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
Wed Jun 22 02:39:54 2011 Hiroshi Nakamura <nahi@ruby-lang.org>
|
||||||
|
|
||||||
|
* lib/net/http.rb (Net::HTTP.post_form): Do not ignore query part of
|
||||||
|
the given URI to post. See #655.
|
||||||
|
|
||||||
|
* test/net/http/test_http.rb, test/net/http/utils.rb: Test it.
|
||||||
|
|
||||||
Wed Jun 22 01:28:13 2011 Hiroshi Nakamura <nahi@ruby-lang.org>
|
Wed Jun 22 01:28:13 2011 Hiroshi Nakamura <nahi@ruby-lang.org>
|
||||||
|
|
||||||
* test/openssl/test_x509store.rb (test_set_errors): Redhat is
|
* test/openssl/test_x509store.rb (test_set_errors): Redhat is
|
||||||
|
|
|
@ -475,7 +475,7 @@ module Net #:nodoc:
|
||||||
# { "q" => "ruby", "max" => "50" }
|
# { "q" => "ruby", "max" => "50" }
|
||||||
#
|
#
|
||||||
def HTTP.post_form(url, params)
|
def HTTP.post_form(url, params)
|
||||||
req = Post.new(url.path)
|
req = Post.new(url.request_uri)
|
||||||
req.form_data = params
|
req.form_data = params
|
||||||
req.basic_auth url.user, url.password if url.user
|
req.basic_auth url.user, url.password if url.user
|
||||||
new(url.hostname, url.port).start {|http|
|
new(url.hostname, url.port).start {|http|
|
||||||
|
|
|
@ -147,22 +147,30 @@ module TestNetHTTP_version_1_1_methods
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_s_post_form
|
def test_s_post_form
|
||||||
|
url = "http://#{config('host')}:#{config('port')}/"
|
||||||
res = Net::HTTP.post_form(
|
res = Net::HTTP.post_form(
|
||||||
URI.parse("http://#{config('host')}:#{config('port')}/"),
|
URI.parse(url),
|
||||||
"a" => "x")
|
"a" => "x")
|
||||||
assert_equal ["a=x"], res.body.split(/[;&]/).sort
|
assert_equal ["a=x"], res.body.split(/[;&]/).sort
|
||||||
|
|
||||||
res = Net::HTTP.post_form(
|
res = Net::HTTP.post_form(
|
||||||
URI.parse("http://#{config('host')}:#{config('port')}/"),
|
URI.parse(url),
|
||||||
"a" => "x",
|
"a" => "x",
|
||||||
"b" => "y")
|
"b" => "y")
|
||||||
assert_equal ["a=x", "b=y"], res.body.split(/[;&]/).sort
|
assert_equal ["a=x", "b=y"], res.body.split(/[;&]/).sort
|
||||||
|
|
||||||
res = Net::HTTP.post_form(
|
res = Net::HTTP.post_form(
|
||||||
URI.parse("http://#{config('host')}:#{config('port')}/"),
|
URI.parse(url),
|
||||||
"a" => ["x1", "x2"],
|
"a" => ["x1", "x2"],
|
||||||
"b" => "y")
|
"b" => "y")
|
||||||
|
assert_equal url, res['X-request-uri']
|
||||||
assert_equal ["a=x1", "a=x2", "b=y"], res.body.split(/[;&]/).sort
|
assert_equal ["a=x1", "a=x2", "b=y"], res.body.split(/[;&]/).sort
|
||||||
|
|
||||||
|
res = Net::HTTP.post_form(
|
||||||
|
URI.parse(url + '?a=x'),
|
||||||
|
"b" => "y")
|
||||||
|
assert_equal url + '?a=x', res['X-request-uri']
|
||||||
|
assert_equal ["b=y"], res.body.split(/[;&]/).sort
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_patch
|
def test_patch
|
||||||
|
|
|
@ -91,6 +91,7 @@ module TestNetHTTPUtils
|
||||||
# echo server
|
# echo server
|
||||||
def do_POST(req, res)
|
def do_POST(req, res)
|
||||||
res['Content-Type'] = req['Content-Type']
|
res['Content-Type'] = req['Content-Type']
|
||||||
|
res['X-request-uri'] = req.request_uri.to_s
|
||||||
res.body = req.body
|
res.body = req.body
|
||||||
res.chunked = @chunked
|
res.chunked = @chunked
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue