annotate vendor/plugins/engines/test/functional/controller_loading_test.rb @ 8:0c83d98252d9 yuya

* Add custom repo prefix and proper auth realm, remove auth cache (seems like an unwise feature), pass DB handle around, various other bits of tidying
author Chris Cannam
date Thu, 12 Aug 2010 15:31:37 +0100
parents 513646585e45
children
rev   line source
Chris@0 1 # Tests in this file ensure that:
Chris@0 2 #
Chris@0 3 # * plugin controller actions are found
Chris@0 4 # * actions defined in application controllers take precedence over those in plugins
Chris@0 5 # * actions in controllers in subsequently loaded plugins take precendence over those in previously loaded plugins
Chris@0 6 # * this works for actions in namespaced controllers accordingly
Chris@0 7
Chris@0 8 require File.dirname(__FILE__) + '/../test_helper'
Chris@0 9
Chris@0 10 class ControllerLoadingTest < ActionController::TestCase
Chris@0 11 def setup
Chris@0 12 @request = ActionController::TestRequest.new
Chris@0 13 @response = ActionController::TestResponse.new
Chris@0 14 end
Chris@0 15
Chris@0 16 # plugin controller actions should be found
Chris@0 17
Chris@0 18 def test_WITH_an_action_defined_only_in_a_plugin_IT_should_use_this_action
Chris@0 19 get_action_on_controller :an_action, :alpha_plugin
Chris@0 20 assert_response_body 'rendered in AlphaPluginController#an_action'
Chris@0 21 end
Chris@0 22
Chris@0 23 def test_WITH_an_action_defined_only_in_a_namespaced_plugin_controller_IT_should_use_this_action
Chris@0 24 get_action_on_controller :an_action, :alpha_plugin, :namespace
Chris@0 25 assert_response_body 'rendered in Namespace::AlphaPluginController#an_action'
Chris@0 26 end
Chris@0 27
Chris@0 28 # app takes precedence over plugins
Chris@0 29
Chris@0 30 def test_WITH_an_action_defined_in_both_app_and_plugin_IT_should_use_the_one_in_app
Chris@0 31 get_action_on_controller :an_action, :app_and_plugin
Chris@0 32 assert_response_body 'rendered in AppAndPluginController#an_action (from app)'
Chris@0 33 end
Chris@0 34
Chris@0 35 def test_WITH_an_action_defined_in_namespaced_controllers_in_both_app_and_plugin_IT_should_use_the_one_in_app
Chris@0 36 get_action_on_controller :an_action, :app_and_plugin, :namespace
Chris@0 37 assert_response_body 'rendered in Namespace::AppAndPluginController#an_action (from app)'
Chris@0 38 end
Chris@0 39
Chris@0 40 # subsequently loaded plugins take precendence over previously loaded plugins
Chris@0 41
Chris@0 42 def test_WITH_an_action_defined_in_two_plugin_controllers_IT_should_use_the_latter_of_both
Chris@0 43 get_action_on_controller :an_action, :shared_plugin
Chris@0 44 assert_response_body 'rendered in SharedPluginController#an_action (from beta_plugin)'
Chris@0 45 end
Chris@0 46
Chris@0 47 def test_WITH_an_action_defined_in_two_namespaced_plugin_controllers_IT_should_use_the_latter_of_both
Chris@0 48 get_action_on_controller :an_action, :shared_plugin, :namespace
Chris@0 49 assert_response_body 'rendered in Namespace::SharedPluginController#an_action (from beta_plugin)'
Chris@0 50 end
Chris@0 51 end