aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/plugin_test.rb
diff options
context:
space:
mode:
authorMarcel Molina <marcel@vernix.org>2007-03-02 00:20:32 +0000
committerMarcel Molina <marcel@vernix.org>2007-03-02 00:20:32 +0000
commitb0e1430c523cf09155f72d5996be2cc2bf8e2eb7 (patch)
treec1f0dfd39794fa284737386f6c7520529e581b3b /railties/test/plugin_test.rb
parent36cf67e8e50056e178f2d43705a324778fddfd0f (diff)
downloadrails-b0e1430c523cf09155f72d5996be2cc2bf8e2eb7.tar.gz
rails-b0e1430c523cf09155f72d5996be2cc2bf8e2eb7.tar.bz2
rails-b0e1430c523cf09155f72d5996be2cc2bf8e2eb7.zip
Split plugin location and loading out of the initializer and into a new Plugin namespace, which includes Plugin::Locater and Plugin::Loader. The loader class that is used can be customized using the config.plugin_loader option. Those monkey patching the plugin loading subsystem take note, the internals changing here will likely break your modifications. The good news is that it should be substantially easier to hook into the plugin locating and loading process now. [Marcel Molina Jr.]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6277 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'railties/test/plugin_test.rb')
-rw-r--r--railties/test/plugin_test.rb111
1 files changed, 0 insertions, 111 deletions
diff --git a/railties/test/plugin_test.rb b/railties/test/plugin_test.rb
deleted file mode 100644
index f46f1db615..0000000000
--- a/railties/test/plugin_test.rb
+++ /dev/null
@@ -1,111 +0,0 @@
-$:.unshift File.dirname(__FILE__) + "/../lib"
-$:.unshift File.dirname(__FILE__) + "/../../activesupport/lib"
-
-require 'test/unit'
-require 'active_support'
-require 'initializer'
-
-unless defined?(RAILS_ROOT)
- module Rails
- class Initializer
- RAILS_ROOT = '.'
- end
- end
-end
-
-class PluginTest < Test::Unit::TestCase
- class TestConfig < Rails::Configuration
- protected
- def root_path
- File.dirname(__FILE__)
- end
- end
-
- def setup
- @init = Rails::Initializer.new(TestConfig.new)
- end
-
- def test_plugin_path?
- assert @init.send(:plugin_path?, "#{File.dirname(__FILE__)}/fixtures/plugins/default/stubby")
- assert !@init.send(:plugin_path?, "#{File.dirname(__FILE__)}/fixtures/plugins/default/empty")
- assert !@init.send(:plugin_path?, "#{File.dirname(__FILE__)}/fixtures/plugins/default/jalskdjflkas")
- end
-
- def test_find_plugins
- base = "#{File.dirname(__FILE__)}/fixtures/plugins"
- default = "#{base}/default"
- alt = "#{base}/alternate"
- acts = "#{default}/acts"
- assert_equal ["#{acts}/acts_as_chunky_bacon"], @init.send(:find_plugins, acts)
- assert_equal ["#{acts}/acts_as_chunky_bacon", "#{default}/stubby"], @init.send(:find_plugins, default).sort
- assert_equal ["#{alt}/a", "#{acts}/acts_as_chunky_bacon", "#{default}/stubby"], @init.send(:find_plugins, base).sort
- end
-
- def test_load_plugin
- stubby = "#{File.dirname(__FILE__)}/fixtures/plugins/default/stubby"
- expected = ['stubby']
-
- assert @init.send(:load_plugin, stubby)
- assert_equal expected, @init.loaded_plugins
-
- assert !@init.send(:load_plugin, stubby)
- assert_equal expected, @init.loaded_plugins
-
- assert_raise(LoadError) { @init.send(:load_plugin, 'lakjsdfkasljdf') }
- assert_equal expected, @init.loaded_plugins
- end
-
- def test_load_default_plugins
- assert_loaded_plugins %w(stubby acts_as_chunky_bacon), 'default'
- end
-
- def test_load_alternate_plugins
- assert_loaded_plugins %w(a), 'alternate'
- end
-
- def test_load_plugins_from_two_sources
- assert_loaded_plugins %w(a stubby acts_as_chunky_bacon), ['default', 'alternate']
- end
-
- def test_load_all_plugins_when_config_plugins_is_nil
- @init.configuration.plugins = nil
- assert_loaded_plugins %w(a stubby acts_as_chunky_bacon), ['default', 'alternate']
- end
-
- def test_load_no_plugins_when_config_plugins_is_empty_array
- @init.configuration.plugins = []
- assert_loaded_plugins [], ['default', 'alternate']
- end
-
- def test_load_only_selected_plugins
- plugins = %w(stubby a)
- @init.configuration.plugins = plugins
- assert_loaded_plugins plugins, ['default', 'alternate']
- end
-
- def test_load_plugins_in_order
- plugins = %w(stubby acts_as_chunky_bacon a)
- @init.configuration.plugins = plugins
- assert_plugin_load_order plugins, ['default', 'alternate']
- end
-
- def test_raise_error_when_plugin_not_found
- @init.configuration.plugins = %w(this_plugin_does_not_exist)
- assert_raise(LoadError) { load_plugins(['default', 'alternate']) }
- end
-
- protected
- def assert_loaded_plugins(plugins, paths)
- assert_equal plugins.sort, load_plugins(paths).sort
- end
-
- def assert_plugin_load_order(plugins, paths)
- assert_equal plugins, load_plugins(paths)
- end
-
- def load_plugins(*paths)
- @init.configuration.plugin_paths = paths.flatten.map { |p| "#{File.dirname(__FILE__)}/fixtures/plugins/#{p}" }
- @init.load_plugins
- @init.loaded_plugins
- end
-end