annotate vendor/plugins/engines/test/unit/model_and_lib_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 require File.dirname(__FILE__) + '/../test_helper'
Chris@0 2
Chris@0 3 class ModelAndLibTest < Test::Unit::TestCase
Chris@0 4
Chris@0 5 def test_WITH_a_model_defined_only_in_a_plugin_IT_should_load_the_model
Chris@0 6 assert_equal 'AlphaPluginModel (from alpha_plugin)', AlphaPluginModel.report_location
Chris@0 7 end
Chris@0 8
Chris@0 9 def test_WITH_a_model_defined_only_in_a_plugin_lib_dir_IT_should_load_the_model
Chris@0 10 assert_equal 'AlphaPluginLibModel (from alpha_plugin)', AlphaPluginLibModel.report_location
Chris@0 11 end
Chris@0 12
Chris@0 13 # app takes precedence over plugins
Chris@0 14
Chris@0 15 def test_WITH_a_model_defined_in_both_app_and_plugin_IT_should_load_the_one_in_app
Chris@0 16 assert_equal 'AppAndPluginModel (from app)', AppAndPluginModel.report_location
Chris@0 17 assert_raises(NoMethodError) { AppAndPluginLibModel.defined_only_in_alpha_engine_version }
Chris@0 18 end
Chris@0 19
Chris@0 20 def test_WITH_a_model_defined_in_both_app_and_plugin_lib_dirs_IT_should_load_the_one_in_app
Chris@0 21 assert_equal 'AppAndPluginLibModel (from lib)', AppAndPluginLibModel.report_location
Chris@0 22 assert_raises(NoMethodError) { AppAndPluginLibModel.defined_only_in_alpha_engine_version }
Chris@0 23 end
Chris@0 24
Chris@0 25 # subsequently loaded plugins take precendence over previously loaded plugins
Chris@0 26
Chris@0 27 # TODO
Chris@0 28 #
Chris@0 29 # this does work when we rely on $LOAD_PATH while it won't work when we use
Chris@0 30 # Dependency constant autoloading. This somewhat confusing difference has
Chris@0 31 # been there since at least Rails 1.2.x. See http://www.ruby-forum.com/topic/134529
Chris@0 32
Chris@0 33 def test_WITH_a_model_defined_in_two_plugins_IT_should_load_the_latter_of_both
Chris@0 34 require 'shared_plugin_model'
Chris@0 35 assert_equal SharedPluginModel.report_location, 'SharedPluginModel (from beta_plugin)'
Chris@0 36 end
Chris@0 37 end