From d52820e0513bf03cfc4fbc72e6e1922df459c8c8 Mon Sep 17 00:00:00 2001 From: August Lilleaas Date: Tue, 1 Jun 2010 15:36:03 +0200 Subject: [PATCH] Making assign_parameters less flaky. --- actionpack/lib/action_controller/test_case.rb | 4 +++- actionpack/test/controller/test_test.rb | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 1 deletions(-) diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb index 34499fa..9e0e0fb 100644 --- a/actionpack/lib/action_controller/test_case.rb +++ b/actionpack/lib/action_controller/test_case.rb @@ -123,6 +123,7 @@ module ActionController def assign_parameters(routes, controller_path, action, parameters = {}) parameters = parameters.symbolize_keys.merge(:controller => controller_path, :action => action) + new_path_parameters = {} extra_keys = routes.extra_keys(parameters) non_path_parameters = get? ? query_parameters : request_parameters parameters.each do |key, value| @@ -135,10 +136,11 @@ module ActionController if extra_keys.include?(key.to_sym) non_path_parameters[key] = value else - path_parameters[key.to_s] = value + new_path_parameters[key.to_s] = value end end + self.path_parameters = new_path_parameters params = self.request_parameters.dup %w(controller action only_path).each do |k| diff --git a/actionpack/test/controller/test_test.rb b/actionpack/test/controller/test_test.rb index f9fc7a0..5dcb006 100644 --- a/actionpack/test/controller/test_test.rb +++ b/actionpack/test/controller/test_test.rb @@ -216,6 +216,20 @@ XML assert_equal "/explicit/uri", @response.body end + def test_safely_calling_params_before_path_params_is_assigned + @request.instance_eval { + alias :_request_method :request_method + def request_method + params + _request_method + end + } + + assert_nothing_raised do + get :no_op + end + end + def test_process_with_query_string process :test_query_string, :q => 'test' assert_equal "q=test", @response.body -- 1.7.1