1
0
Fork 0
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:
Rafael Mendonça França 2016-10-10 01:06:04 -03:00
parent 092033d59f
commit de9542acd5
No known key found for this signature in database
GPG key ID: FC23B6D0F1EEE948
4 changed files with 19 additions and 98 deletions

View file

@ -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*

View file

@ -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)

View file

@ -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

View file

@ -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