Skip to content

Commit daffa5c

Browse files
Peter Marklundjosh
Peter Marklund
authored andcommitted
Reset request_parameters in TestRequest#recycle! to avoid multiple posts clobbering each other [#2271 state:resolved]
Signed-off-by: Joshua Peek <josh@joshpeek.com>
1 parent c919127 commit daffa5c

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

actionpack/lib/action_controller/test_process.rb

+1
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ def assign_parameters(controller_path, action, parameters)
110110
end
111111

112112
def recycle!
113+
@env["action_controller.request.request_parameters"] = {}
113114
self.query_parameters = {}
114115
self.path_parameters = {}
115116
@headers, @request_method, @accepts, @content_type = nil, nil, nil, nil

actionpack/test/controller/test_test.rb

+8
Original file line numberDiff line numberDiff line change
@@ -515,6 +515,14 @@ def test_header_properly_reset_after_get_request
515515
assert_nil @request.instance_variable_get("@request_method")
516516
end
517517

518+
def test_params_reset_after_post_request
519+
post :no_op, :foo => "bar"
520+
assert_equal "bar", @request.params[:foo]
521+
@request.recycle!
522+
post :no_op
523+
assert @request.params[:foo].blank?
524+
end
525+
518526
%w(controller response request).each do |variable|
519527
%w(get post put delete head process).each do |method|
520528
define_method("test_#{variable}_missing_for_#{method}_raises_error") do

0 commit comments

Comments
 (0)