view 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
line wrap: on
line source
require File.dirname(__FILE__) + '/../test_helper'

class ModelAndLibTest < Test::Unit::TestCase

 	def test_WITH_a_model_defined_only_in_a_plugin_IT_should_load_the_model
 	  assert_equal 'AlphaPluginModel (from alpha_plugin)', AlphaPluginModel.report_location
  end
  
  def test_WITH_a_model_defined_only_in_a_plugin_lib_dir_IT_should_load_the_model
 	  assert_equal 'AlphaPluginLibModel (from alpha_plugin)', AlphaPluginLibModel.report_location
  end

  # app takes precedence over plugins
	
	def test_WITH_a_model_defined_in_both_app_and_plugin_IT_should_load_the_one_in_app
 	  assert_equal 'AppAndPluginModel (from app)',	AppAndPluginModel.report_location  
 	  assert_raises(NoMethodError) { AppAndPluginLibModel.defined_only_in_alpha_engine_version }
  end
	
	def test_WITH_a_model_defined_in_both_app_and_plugin_lib_dirs_IT_should_load_the_one_in_app
 	  assert_equal 'AppAndPluginLibModel (from lib)', AppAndPluginLibModel.report_location
 	  assert_raises(NoMethodError) { AppAndPluginLibModel.defined_only_in_alpha_engine_version }
  end

  # subsequently loaded plugins take precendence over previously loaded plugins
	
  # TODO
  #
  # this does work when we rely on $LOAD_PATH while it won't work when we use
  # Dependency constant autoloading. This somewhat confusing difference has
  # been there since at least Rails 1.2.x. See http://www.ruby-forum.com/topic/134529
  
  def test_WITH_a_model_defined_in_two_plugins_IT_should_load_the_latter_of_both
    require 'shared_plugin_model'
    assert_equal SharedPluginModel.report_location, 'SharedPluginModel (from beta_plugin)'
  end
end