annotate .svn/pristine/52/52fb1ca187bdbea92b2ca21fb1a15fadb8ae488e.svn-base @ 1519:afce8026aaeb redmine-2.4-integration

Merge from branch "live"
author Chris Cannam
date Tue, 09 Sep 2014 09:34:53 +0100
parents cbb26bc654de
children
rev   line source
Chris@909 1 # Tests in this file ensure that:
Chris@909 2 #
Chris@909 3 # * plugin controller actions are found
Chris@909 4 # * actions defined in application controllers take precedence over those in plugins
Chris@909 5 # * actions in controllers in subsequently loaded plugins take precendence over those in previously loaded plugins
Chris@909 6 # * this works for actions in namespaced controllers accordingly
Chris@909 7
Chris@909 8 require File.dirname(__FILE__) + '/../test_helper'
Chris@909 9
Chris@909 10 class ControllerLoadingTest < ActionController::TestCase
Chris@909 11 def setup
Chris@909 12 @request = ActionController::TestRequest.new
Chris@909 13 @response = ActionController::TestResponse.new
Chris@909 14 end
Chris@909 15
Chris@909 16 # plugin controller actions should be found
Chris@909 17
Chris@909 18 def test_WITH_an_action_defined_only_in_a_plugin_IT_should_use_this_action
Chris@909 19 get_action_on_controller :an_action, :alpha_plugin
Chris@909 20 assert_response_body 'rendered in AlphaPluginController#an_action'
Chris@909 21 end
Chris@909 22
Chris@909 23 def test_WITH_an_action_defined_only_in_a_namespaced_plugin_controller_IT_should_use_this_action
Chris@909 24 get_action_on_controller :an_action, :alpha_plugin, :namespace
Chris@909 25 assert_response_body 'rendered in Namespace::AlphaPluginController#an_action'
Chris@909 26 end
Chris@909 27
Chris@909 28 # app takes precedence over plugins
Chris@909 29
Chris@909 30 def test_WITH_an_action_defined_in_both_app_and_plugin_IT_should_use_the_one_in_app
Chris@909 31 get_action_on_controller :an_action, :app_and_plugin
Chris@909 32 assert_response_body 'rendered in AppAndPluginController#an_action (from app)'
Chris@909 33 end
Chris@909 34
Chris@909 35 def test_WITH_an_action_defined_in_namespaced_controllers_in_both_app_and_plugin_IT_should_use_the_one_in_app
Chris@909 36 get_action_on_controller :an_action, :app_and_plugin, :namespace
Chris@909 37 assert_response_body 'rendered in Namespace::AppAndPluginController#an_action (from app)'
Chris@909 38 end
Chris@909 39
Chris@909 40 # subsequently loaded plugins take precendence over previously loaded plugins
Chris@909 41
Chris@909 42 def test_WITH_an_action_defined_in_two_plugin_controllers_IT_should_use_the_latter_of_both
Chris@909 43 get_action_on_controller :an_action, :shared_plugin
Chris@909 44 assert_response_body 'rendered in SharedPluginController#an_action (from beta_plugin)'
Chris@909 45 end
Chris@909 46
Chris@909 47 def test_WITH_an_action_defined_in_two_namespaced_plugin_controllers_IT_should_use_the_latter_of_both
Chris@909 48 get_action_on_controller :an_action, :shared_plugin, :namespace
Chris@909 49 assert_response_body 'rendered in Namespace::SharedPluginController#an_action (from beta_plugin)'
Chris@909 50 end
Chris@909 51 end