From a0ff3cec5b6f4652ba4244fdd1df55c8f61699e1 Mon Sep 17 00:00:00 2001 From: Ryan Angilly Date: Tue, 24 Mar 2009 23:54:00 -0400 Subject: [PATCH] clearing @env['action_controller.request.query_parameters'] on test request and adding test --- actionpack/lib/action_controller/test_process.rb | 9 ++++- actionpack/test/controller/test_test.rb | 39 ++++++++++++++++++++++ 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/actionpack/lib/action_controller/test_process.rb b/actionpack/lib/action_controller/test_process.rb index b2d1341..76b4faa 100644 --- a/actionpack/lib/action_controller/test_process.rb +++ b/actionpack/lib/action_controller/test_process.rb @@ -44,7 +44,7 @@ module ActionController #:nodoc: def action=(action_name) @query_parameters.update({ "action" => action_name }) - @parameters = nil + clear_parameters end # Used to check AbstractRequest's request_uri functionality. @@ -107,7 +107,7 @@ module ActionController #:nodoc: end end raw_post # populate env['RAW_POST_DATA'] - @parameters = nil # reset TestRequest#parameters to use the new path_parameters + clear_parameters end def recycle! @@ -126,6 +126,11 @@ module ActionController #:nodoc: @cookies = {} end + def clear_parameters + @env.delete('action_controller.request.query_parameters') + @parameters = nil + end + def initialize_default_values @host = "test.host" @request_uri = "/" diff --git a/actionpack/test/controller/test_test.rb b/actionpack/test/controller/test_test.rb index 6bf8a10..2f48682 100644 --- a/actionpack/test/controller/test_test.rb +++ b/actionpack/test/controller/test_test.rb @@ -1,6 +1,45 @@ require 'abstract_unit' require 'controller/fake_controllers' +class ParamsControllerTest < ActionController::TestCase + class ParamsController < ActionController::Base + def get_me + @new_params = params + end + + def post_me + @new_params = params + end + + end + + def setup + @controller = ParamsController.new + @request = ActionController::TestRequest.new + @response = ActionController::TestResponse.new + ActionController::Routing.use_controllers! %w(params_controller_test/params) + ActionController::Routing::Routes.load_routes! + end + + def test_post_resets_request_parameters + post :post_me, :a => "ay" + assert_equal assigns(:new_params)[:a], "ay" + + post :post_me, :b => "bee" + assert assigns(:new_params)[:a].nil? + assert_equal assigns(:new_params)[:b], "bee" + end + + def test_get_resets_query_parameters + get :get_me, :a => "ay" + assert_equal assigns(:new_params)[:a], "ay" + + get :get_me, :b => "bee" + assert assigns(:new_params)[:a].nil? + assert_equal assigns(:new_params)[:b], "bee" + end +end + class TestTest < ActionController::TestCase class TestController < ActionController::Base def no_op -- 1.5.4.3