Mercurial > hg > soundsoftware-site
diff vendor/plugins/engines/test/functional/view_loading_test.rb @ 0:513646585e45
* Import Redmine trunk SVN rev 3859
author | Chris Cannam |
---|---|
date | Fri, 23 Jul 2010 15:52:44 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/plugins/engines/test/functional/view_loading_test.rb Fri Jul 23 15:52:44 2010 +0100 @@ -0,0 +1,60 @@ +# Tests in this file ensure that: +# +# * plugin views are found +# * views in the application take precedence over those in plugins +# * views in subsequently loaded plugins take precendence over those in previously loaded plugins +# * this works for namespaced views accordingly + +require File.dirname(__FILE__) + '/../test_helper' + +class ViewLoadingTest < ActionController::TestCase + def setup + @request = ActionController::TestRequest.new + @response = ActionController::TestResponse.new + end + + # plugin views should be found + + def test_WITH_a_view_defined_only_in_a_plugin_IT_should_find_the_view + get_action_on_controller :a_view, :alpha_plugin + assert_response_body 'alpha_plugin/a_view' + end + + def test_WITH_a_namespaced_view_defined_only_in_a_plugin_IT_should_find_the_view + get_action_on_controller :a_view, :alpha_plugin, :namespace + assert_response_body 'namespace/alpha_plugin/a_view' + end + + # app takes precedence over plugins + + def test_WITH_a_view_defined_in_both_app_and_plugin_IT_should_find_the_one_in_app + get_action_on_controller :a_view, :app_and_plugin + assert_response_body 'app_and_plugin/a_view (from app)' + end + + def test_WITH_a_namespaced_view_defined_in_both_app_and_plugin_IT_should_find_the_one_in_app + get_action_on_controller :a_view, :app_and_plugin, :namespace + assert_response_body 'namespace/app_and_plugin/a_view (from app)' + end + + # subsequently loaded plugins take precendence over previously loaded plugins + + def test_WITH_a_view_defined_in_two_plugins_IT_should_find_the_latter_of_both + get_action_on_controller :a_view, :shared_plugin + assert_response_body 'shared_plugin/a_view (from beta_plugin)' + end + + def test_WITH_a_namespaced_view_defined_in_two_plugins_IT_should_find_the_latter_of_both + get_action_on_controller :a_view, :shared_plugin, :namespace + assert_response_body 'namespace/shared_plugin/a_view (from beta_plugin)' + end + + # layouts loaded from plugins + + def test_should_be_able_to_load_a_layout_from_a_plugin + get_action_on_controller :action_with_layout, :alpha_plugin + assert_response_body 'rendered in AlphaPluginController#action_with_layout (with plugin layout)' + end + +end + \ No newline at end of file