From b704a5457549c713eb998bc750af09c69b034cc2 Mon Sep 17 00:00:00 2001 From: Andrew White Date: Tue, 24 Aug 2010 15:05:26 +0100 Subject: [PATCH] Reset symbolized path parameters when a test request is recycled [#5437 state:resolved] --- actionpack/lib/action_controller/test_case.rb | 1 + actionpack/lib/action_dispatch/http/parameters.rb | 4 ++-- actionpack/test/controller/test_test.rb | 8 ++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb index e02fe20..75ea652 100644 --- a/actionpack/lib/action_controller/test_case.rb +++ b/actionpack/lib/action_controller/test_case.rb @@ -167,6 +167,7 @@ module ActionController @formats = nil @env.delete_if { |k, v| k =~ /^(action_dispatch|rack)\.request/ } @env.delete_if { |k, v| k =~ /^action_dispatch\.rescue/ } + @symbolized_path_params = nil @method = @request_method = nil @fullpath = @ip = @remote_ip = nil @env['action_dispatch.request.query_parameters'] = {} diff --git a/actionpack/lib/action_dispatch/http/parameters.rb b/actionpack/lib/action_dispatch/http/parameters.rb index 5e1a240..ef5d207 100644 --- a/actionpack/lib/action_dispatch/http/parameters.rb +++ b/actionpack/lib/action_dispatch/http/parameters.rb @@ -15,14 +15,14 @@ module ActionDispatch alias :params :parameters def path_parameters=(parameters) #:nodoc: - @_symbolized_path_params = nil + @symbolized_path_params = nil @env.delete("action_dispatch.request.parameters") @env["action_dispatch.request.path_parameters"] = parameters end # The same as path_parameters with explicitly symbolized keys. def symbolized_path_parameters - @_symbolized_path_params ||= path_parameters.symbolize_keys + @symbolized_path_params ||= path_parameters.symbolize_keys end # Returns a hash with the \parameters used to form the \path of the request. diff --git a/actionpack/test/controller/test_test.rb b/actionpack/test/controller/test_test.rb index de2cab3..e959b41 100644 --- a/actionpack/test/controller/test_test.rb +++ b/actionpack/test/controller/test_test.rb @@ -549,6 +549,14 @@ XML assert_blank @request.params[:foo] end + def test_symbolized_path_params_reset_after_request + get :test_params, :id => "foo" + assert_equal "foo", @request.symbolized_path_parameters[:id] + @request.recycle! + get :test_params + assert_nil @request.symbolized_path_parameters[:id] + end + def test_should_have_knowledge_of_client_side_cookie_state_even_if_they_are_not_set @request.cookies['foo'] = 'bar' get :no_op -- 1.7.1