mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Remove deprecated support to non-keyword arguments in ActionDispatch::IntegrationTest
,
`#process`, `#get`, `#post`, `#patch`, `#put`, `#delete`, and `#head`.
This commit is contained in:
parent
092033d59f
commit
de9542acd5
4 changed files with 19 additions and 98 deletions
|
@ -1,3 +1,8 @@
|
|||
* Remove deprecated support to non-keyword arguments in `ActionDispatch::IntegrationTest#process`,
|
||||
`#get`, `#post`, `#patch`, `#put`, `#delete`, and `#head`.
|
||||
|
||||
*Rafael Mendonça França*
|
||||
|
||||
* Remove deprecated `ActionDispatch::IntegrationTest#*_via_redirect`.
|
||||
|
||||
*Rafael Mendonça França*
|
||||
|
|
|
@ -38,38 +38,38 @@ module ActionDispatch
|
|||
#
|
||||
# get '/feed', params: { since: 201501011400 }
|
||||
# post '/profile', headers: { "X-Test-Header" => "testvalue" }
|
||||
def get(path, *args)
|
||||
process_with_kwargs(:get, path, *args)
|
||||
def get(path, **args)
|
||||
process(:get, path, **args)
|
||||
end
|
||||
|
||||
# Performs a POST request with the given parameters. See +#get+ for more
|
||||
# details.
|
||||
def post(path, *args)
|
||||
process_with_kwargs(:post, path, *args)
|
||||
def post(path, **args)
|
||||
process(:post, path, **args)
|
||||
end
|
||||
|
||||
# Performs a PATCH request with the given parameters. See +#get+ for more
|
||||
# details.
|
||||
def patch(path, *args)
|
||||
process_with_kwargs(:patch, path, *args)
|
||||
def patch(path, **args)
|
||||
process(:patch, path, **args)
|
||||
end
|
||||
|
||||
# Performs a PUT request with the given parameters. See +#get+ for more
|
||||
# details.
|
||||
def put(path, *args)
|
||||
process_with_kwargs(:put, path, *args)
|
||||
def put(path, **args)
|
||||
process(:put, path, **args)
|
||||
end
|
||||
|
||||
# Performs a DELETE request with the given parameters. See +#get+ for
|
||||
# more details.
|
||||
def delete(path, *args)
|
||||
process_with_kwargs(:delete, path, *args)
|
||||
def delete(path, **args)
|
||||
process(:delete, path, **args)
|
||||
end
|
||||
|
||||
# Performs a HEAD request with the given parameters. See +#get+ for more
|
||||
# details.
|
||||
def head(path, *args)
|
||||
process_with_kwargs(:head, path, *args)
|
||||
process(:head, path, *args)
|
||||
end
|
||||
|
||||
# Follow a single redirect response. If the last response was not a
|
||||
|
@ -208,37 +208,6 @@ module ActionDispatch
|
|||
@_mock_session ||= Rack::MockSession.new(@app, host)
|
||||
end
|
||||
|
||||
def process_with_kwargs(http_method, path, *args)
|
||||
if kwarg_request?(args)
|
||||
process(http_method, path, *args)
|
||||
else
|
||||
non_kwarg_request_warning if args.any?
|
||||
process(http_method, path, params: args[0], headers: args[1])
|
||||
end
|
||||
end
|
||||
|
||||
REQUEST_KWARGS = %i(params headers env xhr as)
|
||||
def kwarg_request?(args)
|
||||
args[0].respond_to?(:keys) && args[0].keys.any? { |k| REQUEST_KWARGS.include?(k) }
|
||||
end
|
||||
|
||||
def non_kwarg_request_warning
|
||||
ActiveSupport::Deprecation.warn(<<-MSG.strip_heredoc)
|
||||
ActionDispatch::IntegrationTest HTTP request methods will accept only
|
||||
the following keyword arguments in future Rails versions:
|
||||
#{REQUEST_KWARGS.join(', ')}
|
||||
|
||||
Examples:
|
||||
|
||||
get '/profile',
|
||||
params: { id: 1 },
|
||||
headers: { 'X-Extra-Header' => '123' },
|
||||
env: { 'action_dispatch.custom' => 'custom' },
|
||||
xhr: true,
|
||||
as: :json
|
||||
MSG
|
||||
end
|
||||
|
||||
# Performs the actual request.
|
||||
def process(method, path, params: nil, headers: nil, env: nil, xhr: false, as: nil)
|
||||
request_encoder = RequestEncoder.encoder(as)
|
||||
|
|
|
@ -46,25 +46,6 @@ class SessionTest < ActiveSupport::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def test_deprecated_get
|
||||
path = "/index"; params = "blah"; headers = { location: "blah" }
|
||||
|
||||
assert_called_with @session, :process, [:get, path, params: params, headers: headers] do
|
||||
assert_deprecated {
|
||||
@session.get(path, params, headers)
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
def test_deprecated_post
|
||||
path = "/index"; params = "blah"; headers = { location: "blah" }
|
||||
assert_called_with @session, :process, [:post, path, params: params, headers: headers] do
|
||||
assert_deprecated {
|
||||
@session.post(path, params, headers)
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
def test_post
|
||||
path = "/index"; params = "blah"; headers = { location: "blah" }
|
||||
assert_called_with @session, :process, [:post, path, params: params, headers: headers] do
|
||||
|
@ -79,15 +60,6 @@ class SessionTest < ActiveSupport::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def test_deprecated_patch
|
||||
path = "/index"; params = "blah"; headers = { location: "blah" }
|
||||
assert_called_with @session, :process, [:patch, path, params: params, headers: headers] do
|
||||
assert_deprecated {
|
||||
@session.patch(path, params, headers)
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
def test_put
|
||||
path = "/index"; params = "blah"; headers = { location: "blah" }
|
||||
assert_called_with @session, :process, [:put, path, params: params, headers: headers] do
|
||||
|
@ -95,24 +67,6 @@ class SessionTest < ActiveSupport::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def test_deprecated_put
|
||||
path = "/index"; params = "blah"; headers = { location: "blah" }
|
||||
assert_called_with @session, :process, [:put, path, params: params, headers: headers] do
|
||||
assert_deprecated {
|
||||
@session.put(path, params, headers)
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
def test_deprecated_delete
|
||||
path = "/index"; params = "blah"; headers = { location: "blah" }
|
||||
assert_called_with @session, :process, [:delete, path, params: params, headers: headers] do
|
||||
assert_deprecated {
|
||||
@session.delete(path,params,headers)
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
def test_delete
|
||||
path = "/index"; params = "blah"; headers = { location: "blah" }
|
||||
assert_called_with @session, :process, [:delete, path, params: params, headers: headers] do
|
||||
|
@ -127,15 +81,6 @@ class SessionTest < ActiveSupport::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def deprecated_test_head
|
||||
path = "/index"; params = "blah"; headers = { location: "blah" }
|
||||
assert_called_with @session, :process, [:head, path, params: params, headers: headers] do
|
||||
assert_deprecated {
|
||||
@session.head(path, params, headers)
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
def test_xml_http_request_get
|
||||
path = "/index"; params = "blah"; headers = { location: "blah" }
|
||||
assert_called_with @session, :process, [:get, path, params: params, headers: headers, xhr: true] do
|
||||
|
|
|
@ -75,7 +75,9 @@ class JsonParamsParsingTest < ActionDispatch::IntegrationTest
|
|||
begin
|
||||
$stderr = StringIO.new # suppress the log
|
||||
json = "[\"person]\": {\"name\": \"David\"}}"
|
||||
exception = assert_raise(ActionDispatch::Http::Parameters::ParseError) { post "/parse", json, "CONTENT_TYPE" => "application/json", "action_dispatch.show_exceptions" => false }
|
||||
exception = assert_raise(ActionDispatch::Http::Parameters::ParseError) do
|
||||
post "/parse", params: json, headers: { "CONTENT_TYPE" => "application/json", "action_dispatch.show_exceptions" => false }
|
||||
end
|
||||
assert_equal JSON::ParserError, exception.cause.class
|
||||
assert_equal exception.cause.message, exception.message
|
||||
ensure
|
||||
|
|
Loading…
Reference in a new issue