From 13950a8cc94ab93bb20976f2797b1df9740849b3 Mon Sep 17 00:00:00 2001 From: David Chelimsky Date: Tue, 17 May 2011 06:55:03 -0400 Subject: add more robust test for wrapping params with anonymous class --- actionpack/lib/action_controller/metal/params_wrapper.rb | 3 +-- actionpack/lib/action_controller/test_case.rb | 6 +++++- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'actionpack/lib/action_controller') diff --git a/actionpack/lib/action_controller/metal/params_wrapper.rb b/actionpack/lib/action_controller/metal/params_wrapper.rb index b7c46919fe..b7c37ce1c1 100644 --- a/actionpack/lib/action_controller/metal/params_wrapper.rb +++ b/actionpack/lib/action_controller/metal/params_wrapper.rb @@ -140,7 +140,6 @@ module ActionController # This method also does namespace lookup. Foo::Bar::UsersController will # try to find Foo::Bar::User, Foo::User and finally User. def _default_wrap_model #:nodoc: - # Return nil if the class is unnamed (i.e., anonymous) return nil if self.name.nil? model_name = self.name.sub(/Controller$/, '').singularize @@ -229,7 +228,7 @@ module ActionController # Checks if we should perform parameters wrapping. def _wrapper_enabled? ref = request.content_mime_type.try(:ref) - _wrapper_formats.include?(ref) && !request.request_parameters[_wrapper_key] + _wrapper_formats.include?(ref) && _wrapper_key && !request.request_parameters[_wrapper_key] end end end diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb index 0085f542aa..5e4b48a531 100644 --- a/actionpack/lib/action_controller/test_case.rb +++ b/actionpack/lib/action_controller/test_case.rb @@ -413,7 +413,11 @@ module ActionController @request.env['REQUEST_METHOD'] = http_method parameters ||= {} - @request.assign_parameters(@routes, @controller.class.name.underscore.sub(/_controller$/, ''), action.to_s, parameters) + controller_class_name = @controller.class.name ? + @controller.class.name.underscore.sub(/_controller$/, '') : + "anonymous_controller" + + @request.assign_parameters(@routes, controller_class_name, action.to_s, parameters) @request.session = ActionController::TestSession.new(session) if session @request.session["flash"] = @request.flash.update(flash || {}) -- cgit v1.2.3