Skip to content

Commit 1e7e9aa

Browse files
committed
Avoid unnecessary rebuild of test request querystring
1 parent 5e5211e commit 1e7e9aa

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

actionpack/lib/action_dispatch/testing/integration.rb

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,17 @@ def process(method, path, params: nil, headers: nil, env: nil, xhr: false, as: n
284284

285285
# NOTE: rack-test v0.5 doesn't build a default uri correctly Make sure requested
286286
# path is always a full URI.
287-
session.request(build_full_uri(path, request_env), request_env)
287+
uri = build_full_uri(path, request_env)
288+
289+
if method == :get && String === request_env[:params]
290+
# rack-test will needlessly parse and rebuild a :params
291+
# querystring, using Rack's query parser. At best that's a
292+
# waste of time; at worst it can change the value.
293+
294+
uri << "?" << request_env.delete(:params)
295+
end
296+
297+
session.request(uri, request_env)
288298

289299
@request_count += 1
290300
@request = ActionDispatch::Request.new(session.last_request.env)

0 commit comments

Comments
 (0)