diff --git a/actionpack/lib/action_controller/metal.rb b/actionpack/lib/action_controller/metal.rb index 038beea32e..e1812a5c89 100644 --- a/actionpack/lib/action_controller/metal.rb +++ b/actionpack/lib/action_controller/metal.rb @@ -126,7 +126,7 @@ module ActionController # ==== Returns # * string def self.controller_name - @controller_name ||= name.demodulize.delete_suffix("Controller").underscore + @controller_name ||= (name.demodulize.delete_suffix("Controller").underscore unless anonymous?) end def self.make_response!(request) diff --git a/actionview/lib/action_view/test_case.rb b/actionview/lib/action_view/test_case.rb index 9f1b36174a..3aa6af0893 100644 --- a/actionview/lib/action_view/test_case.rb +++ b/actionview/lib/action_view/test_case.rb @@ -16,11 +16,12 @@ module ActionView attr_accessor :request, :response, :params class << self - attr_writer :controller_path + # Overrides AbstractController::Base#controller_path + attr_accessor :controller_path end def controller_path=(path) - self.class.controller_path = (path) + self.class.controller_path = path end def initialize @@ -101,7 +102,7 @@ module ActionView end def setup_with_controller - @controller = ActionView::TestCase::TestController.new + @controller = Class.new(ActionView::TestCase::TestController).new @request = @controller.request @view_flow = ActionView::OutputFlow.new # empty string ensures buffer has UTF-8 encoding as diff --git a/actionview/test/template/test_case_test.rb b/actionview/test/template/test_case_test.rb index bf93259305..55e89cd3f5 100644 --- a/actionview/test/template/test_case_test.rb +++ b/actionview/test/template/test_case_test.rb @@ -156,6 +156,13 @@ module ActionView assert_equal "controller_helper_method", some_method end + + class AnotherTestClass < ActionView::TestCase + test "doesn't use controller helpers from other tests" do + assert_not_respond_to view, :render_from_helper + assert_not_includes @controller._helpers.instance_methods, :render_from_helper + end + end end class ViewAssignsTest < ActionView::TestCase