diff --git a/lib/noosfero/plugin.rb b/lib/noosfero/plugin.rb index 4927c87..9b9d226 100644 --- a/lib/noosfero/plugin.rb +++ b/lib/noosfero/plugin.rb @@ -16,14 +16,7 @@ class Noosfero::Plugin end def init_system - enabled_plugins = Dir.glob(File.join(Rails.root, 'config', 'plugins', '*')) - if Rails.env.test? && !enabled_plugins.include?(File.join(Rails.root, 'config', 'plugins', 'foo')) - enabled_plugins << File.join(Rails.root, 'plugins', 'foo') - end - - enabled_plugins.select do |entry| - File.directory?(entry) - end.each do |dir| + available_plugins.each do |dir| load_plugin dir end end @@ -76,12 +69,19 @@ class Noosfero::Plugin klass(plugin_name) end - def all - @all ||= [] + def available_plugins + unless @available_plugins + path = File.join(Rails.root, 'config', 'plugins', '*') + @available_plugins = Dir.glob(path).select{ |i| File.directory?(i) } + if Rails.env.test? && !@available_plugins.include?(File.join(Rails.root, 'config', 'plugins', 'foo')) + @available_plugins << File.join(Rails.root, 'plugins', 'foo') + end + end + @available_plugins end - def inherited(subclass) - all << subclass.to_s unless all.include?(subclass.to_s) + def all + @all ||= available_plugins.map{ |dir| (File.basename(dir) + "_plugin").camelize } end def public_name diff --git a/test/functional/account_controller_test.rb b/test/functional/account_controller_test.rb index 65a7864..7356ba9 100644 --- a/test/functional/account_controller_test.rb +++ b/test/functional/account_controller_test.rb @@ -689,6 +689,7 @@ class AccountControllerTest < ActionController::TestCase {:test => 5} end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) e = User.find_by_login('ze').environment e.enable_plugin(Plugin1.name) @@ -779,6 +780,7 @@ class AccountControllerTest < ActionController::TestCase lambda {"Plugin2 text"} end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) Environment.default.enable_plugin(Plugin1.name) Environment.default.enable_plugin(Plugin2.name) @@ -795,6 +797,7 @@ class AccountControllerTest < ActionController::TestCase User.new(:login => 'testuser') end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.name]) Environment.default.enable_plugin(Plugin1.name) post :login, :user => {:login => "testuser"} @@ -809,6 +812,7 @@ class AccountControllerTest < ActionController::TestCase nil end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.name]) Environment.default.enable_plugin(Plugin1.name) post :login, :user => {:login => 'johndoe', :password => 'test'} assert session[:user] @@ -822,6 +826,7 @@ class AccountControllerTest < ActionController::TestCase false end end + Noosfero::Plugin.stubs(:all).returns([TestRegistrationPlugin.name]) Noosfero::Plugin::Manager.any_instance.stubs(:enabled_plugins).returns([TestRegistrationPlugin.new]) post :signup, :user => { :login => 'testuser', :password => '123456', :password_confirmation => '123456', :email => 'testuser@example.com' } @@ -840,6 +845,7 @@ class AccountControllerTest < ActionController::TestCase true end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) Noosfero::Plugin::Manager.any_instance.stubs(:enabled_plugins).returns([Plugin1.new, Plugin2.new]) get :login @@ -853,6 +859,7 @@ class AccountControllerTest < ActionController::TestCase false end end + Noosfero::Plugin.stubs(:all).returns([TestRegistrationPlugin.name]) Noosfero::Plugin::Manager.any_instance.stubs(:enabled_plugins).returns([TestRegistrationPlugin.new]) #Redirect on get action @@ -876,6 +883,7 @@ class AccountControllerTest < ActionController::TestCase true end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.new, Plugin2.new]) Noosfero::Plugin::Manager.any_instance.stubs(:enabled_plugins).returns([Plugin1.new, Plugin2.new]) get :login @@ -894,6 +902,7 @@ class AccountControllerTest < ActionController::TestCase lambda {"Plugin2 text"} end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) Environment.default.enable_plugin(Plugin1.name) Environment.default.enable_plugin(Plugin2.name) diff --git a/test/functional/application_controller_test.rb b/test/functional/application_controller_test.rb index fd1c4da..f7f4108 100644 --- a/test/functional/application_controller_test.rb +++ b/test/functional/application_controller_test.rb @@ -374,6 +374,8 @@ class ApplicationControllerTest < ActionController::TestCase end plugin2_path = '/plugin2/style.css' + Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) + environment = Environment.default environment.enable_plugin(Plugin1.name) environment.enable_plugin(Plugin2.name) @@ -405,6 +407,8 @@ class ApplicationControllerTest < ActionController::TestCase plugin2_path2 = '/plugin2/'+js2 plugin2_path3 = '/plugin2/'+js3 + Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) + environment = Environment.default environment.enable_plugin(Plugin1.name) environment.enable_plugin(Plugin2.name) @@ -431,6 +435,8 @@ class ApplicationControllerTest < ActionController::TestCase end end + Noosfero::Plugin.stubs(:all).returns([TestBodyBeginning1Plugin.name, TestBodyBeginning2Plugin.name]) + Noosfero::Plugin::Manager.any_instance.stubs(:enabled_plugins).returns([TestBodyBeginning1Plugin.new, TestBodyBeginning2Plugin.new]) get :index @@ -455,6 +461,8 @@ class ApplicationControllerTest < ActionController::TestCase end end + Noosfero::Plugin.stubs(:all).returns([TestHeadEnding1Plugin.name, TestHeadEnding2Plugin.name]) + Noosfero::Plugin::Manager.any_instance.stubs(:enabled_plugins).returns([TestHeadEnding1Plugin.new, TestHeadEnding2Plugin.new]) get :index @@ -519,6 +527,7 @@ class ApplicationControllerTest < ActionController::TestCase :block => lambda {} } end end + Noosfero::Plugin.stubs(:all).returns([FilterPlugin.name]) Noosfero::Plugin::Manager.any_instance.stubs(:enabled_plugins).returns([FilterPlugin.new]) @@ -537,6 +546,7 @@ class ApplicationControllerTest < ActionController::TestCase :block => lambda {'plugin block called'} } end end + Noosfero::Plugin.stubs(:all).returns([OtherFilterPlugin.name]) environment1 = fast_create(Environment, :name => 'test environment') environment1.enable_plugin(OtherFilterPlugin.name) diff --git a/test/functional/catalog_controller_test.rb b/test/functional/catalog_controller_test.rb index ac9aa8b..5cf2efb 100644 --- a/test/functional/catalog_controller_test.rb +++ b/test/functional/catalog_controller_test.rb @@ -91,6 +91,7 @@ class CatalogControllerTest < ActionController::TestCase lambda {"This is Plugin2 speaking!"} end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) product = fast_create(Product, :profile_id => @enterprise.id) environment = Environment.default diff --git a/test/functional/content_viewer_controller_test.rb b/test/functional/content_viewer_controller_test.rb index 408f550..704cef3 100644 --- a/test/functional/content_viewer_controller_test.rb +++ b/test/functional/content_viewer_controller_test.rb @@ -1199,6 +1199,7 @@ class ContentViewerControllerTest < ActionController::TestCase class Plugin2 < Noosfero::Plugin def content_remove_edit(content); false; end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) environment.enable_plugin(Plugin1.name) environment.enable_plugin(Plugin2.name) @@ -1215,6 +1216,7 @@ class ContentViewerControllerTest < ActionController::TestCase class Plugin2 < Noosfero::Plugin def content_expire_edit(content); nil; end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) environment.enable_plugin(Plugin1.name) environment.enable_plugin(Plugin2.name) @@ -1260,6 +1262,7 @@ class ContentViewerControllerTest < ActionController::TestCase } end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) Environment.default.enable_plugin(Plugin1.name) Environment.default.enable_plugin(Plugin2.name) @@ -1284,6 +1287,7 @@ class ContentViewerControllerTest < ActionController::TestCase scope.where(:referrer => 'kernel.org') end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) Environment.default.enable_plugin(Plugin1) Environment.default.enable_plugin(Plugin2) @@ -1341,6 +1345,7 @@ class ContentViewerControllerTest < ActionController::TestCase } end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) Environment.default.enable_plugin(Plugin1.name) Environment.default.enable_plugin(Plugin2.name) diff --git a/test/functional/enterprise_registration_controller_test.rb b/test/functional/enterprise_registration_controller_test.rb index 958b05a..71596a3 100644 --- a/test/functional/enterprise_registration_controller_test.rb +++ b/test/functional/enterprise_registration_controller_test.rb @@ -193,6 +193,7 @@ class EnterpriseRegistrationControllerTest < ActionController::TestCase {'plugin2' => 'Plugin 2'} end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) environment = Environment.default environment.enable_plugin(Plugin1.name) diff --git a/test/functional/friends_controller_test.rb b/test/functional/friends_controller_test.rb index 7284321..d9128b9 100644 --- a/test/functional/friends_controller_test.rb +++ b/test/functional/friends_controller_test.rb @@ -68,6 +68,7 @@ class FriendsControllerTest < ActionController::TestCase false end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) e = profile.environment e.enable_plugin(Plugin1.name) diff --git a/test/functional/home_controller_test.rb b/test/functional/home_controller_test.rb index 99233ef..453d025 100644 --- a/test/functional/home_controller_test.rb +++ b/test/functional/home_controller_test.rb @@ -107,6 +107,7 @@ class HomeControllerTest < ActionController::TestCase lambda {"Plugin2 link"} end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) Environment.default.enable_plugin(Plugin1) Environment.default.enable_plugin(Plugin2) @@ -129,6 +130,7 @@ class HomeControllerTest < ActionController::TestCase true end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) Noosfero::Plugin::Manager.any_instance.stubs(:enabled_plugins).returns([Plugin1.new, Plugin2.new]) get :index diff --git a/test/functional/memberships_controller_test.rb b/test/functional/memberships_controller_test.rb index bb24c14..39d65e8 100644 --- a/test/functional/memberships_controller_test.rb +++ b/test/functional/memberships_controller_test.rb @@ -234,6 +234,7 @@ class MembershipsControllerTest < ActionController::TestCase {'plugin2' => 'Plugin 2'} end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.name, Plugin2.name]) environment = Environment.default environment.enable_plugin(Plugin1.name) diff --git a/test/functional/plugins_controller_test.rb b/test/functional/plugins_controller_test.rb index 46b0889..9478f4e 100644 --- a/test/functional/plugins_controller_test.rb +++ b/test/functional/plugins_controller_test.rb @@ -47,7 +47,7 @@ class PluginsControllerTest < ActionController::TestCase end end - Noosfero::Plugin.stubs(:all).returns([Plugin1.to_s,Plugin2.to_s]) + Noosfero::Plugin.stubs(:all).returns([Plugin1.to_s, Plugin2.to_s]) get :index diff --git a/test/functional/profile_controller_test.rb b/test/functional/profile_controller_test.rb index eac86e3..e0f9d58 100644 --- a/test/functional/profile_controller_test.rb +++ b/test/functional/profile_controller_test.rb @@ -1255,6 +1255,7 @@ class ProfileControllerTest < ActionController::TestCase {:title => 'Plugin2 tab', :id => 'plugin2_tab', :content => lambda { 'Content from plugin2.' }} end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.to_s, Plugin2.to_s]) e = profile.environment e.enable_plugin(Plugin1.name) diff --git a/test/functional/profile_editor_controller_test.rb b/test/functional/profile_editor_controller_test.rb index 274df70..e3fe9bf 100644 --- a/test/functional/profile_editor_controller_test.rb +++ b/test/functional/profile_editor_controller_test.rb @@ -868,6 +868,7 @@ class ProfileEditorControllerTest < ActionController::TestCase {:title => "Plugin2 button", :icon => 'plugin2_icon', :url => 'plugin2_url'} end end + Noosfero::Plugin.stubs(:all).returns([TestControlPanelButtons1.to_s, TestControlPanelButtons2.to_s]) Noosfero::Plugin::Manager.any_instance.stubs(:enabled_plugins).returns([TestControlPanelButtons1.new, TestControlPanelButtons2.new]) @@ -883,6 +884,7 @@ class ProfileEditorControllerTest < ActionController::TestCase "" end end + Noosfero::Plugin.stubs(:all).returns([TestProfileEditPlugin.to_s]) Noosfero::Plugin::Manager.any_instance.stubs(:enabled_plugins).returns([TestProfileEditPlugin.new]) @@ -911,6 +913,7 @@ class ProfileEditorControllerTest < ActionController::TestCase lambda {"Plugin2 text"} end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.to_s, Plugin2.to_s]) Environment.default.enable_plugin(Plugin1) Environment.default.enable_plugin(Plugin2) @@ -932,6 +935,7 @@ class ProfileEditorControllerTest < ActionController::TestCase lambda {"Plugin2 text"} end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.to_s, Plugin2.to_s]) Environment.default.enable_plugin(Plugin1) Environment.default.enable_plugin(Plugin2) diff --git a/test/functional/search_controller_test.rb b/test/functional/search_controller_test.rb index da563a6..c91bd04 100644 --- a/test/functional/search_controller_test.rb +++ b/test/functional/search_controller_test.rb @@ -163,6 +163,7 @@ class SearchControllerTest < ActionController::TestCase lambda {"This is Plugin2 speaking!"} end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.to_s, Plugin2.to_s]) enterprise = fast_create(Enterprise) prod_cat = fast_create(ProductCategory) @@ -189,6 +190,7 @@ class SearchControllerTest < ActionController::TestCase return { :name => _('Property2'), :content => lambda { link_to(product.name, '/plugin2') } } end end + Noosfero::Plugin.stubs(:all).returns([Plugin1.to_s, Plugin2.to_s]) enterprise = fast_create(Enterprise) prod_cat = fast_create(ProductCategory) product = fast_create(Product, {:profile_id => enterprise.id, :name => "produto1", :product_category_id => prod_cat.id}, :search => true) diff --git a/test/unit/application_helper_test.rb b/test/unit/application_helper_test.rb index 7106acd..09c06f2 100644 --- a/test/unit/application_helper_test.rb +++ b/test/unit/application_helper_test.rb @@ -676,6 +676,7 @@ class ApplicationHelperTest < ActiveSupport::TestCase should 'parse macros' do class Plugin1 < Noosfero::Plugin end + Noosfero::Plugin.stubs(:all).returns(['ApplicationHelperTest::Plugin1']) class Plugin1::Macro1 < Noosfero::Plugin::Macro def parse(params, inner_html, source) diff --git a/test/unit/comment_test.rb b/test/unit/comment_test.rb index 28a3d94..fe76131 100644 --- a/test/unit/comment_test.rb +++ b/test/unit/comment_test.rb @@ -468,8 +468,8 @@ class CommentTest < ActiveSupport::TestCase end end - should 'delegate spam detection to plugins' do + Noosfero::Plugin.stubs(:all).returns(['CommentTest::EverythingIsSpam']) Environment.default.enable_plugin(EverythingIsSpam) c1 = create_comment @@ -495,6 +495,7 @@ class CommentTest < ActiveSupport::TestCase end should 'notify plugins of comments being marked as spam' do + Noosfero::Plugin.stubs(:all).returns(['CommentTest::SpamNotification']) Environment.default.enable_plugin(SpamNotification) c = create_comment @@ -506,6 +507,7 @@ class CommentTest < ActiveSupport::TestCase end should 'notify plugins of comments being marked as ham' do + Noosfero::Plugin.stubs(:all).returns(['CommentTest::SpamNotification']) Environment.default.enable_plugin(SpamNotification) c = create_comment diff --git a/test/unit/forgot_password_helper_test.rb b/test/unit/forgot_password_helper_test.rb index 60d3120..6f980cb 100644 --- a/test/unit/forgot_password_helper_test.rb +++ b/test/unit/forgot_password_helper_test.rb @@ -22,6 +22,7 @@ class ForgotPasswordHelperTest < ActionView::TestCase {:field => 'f3', :name => 'F3', :model => 'person'}] end end + Noosfero::Plugin.stubs(:all).returns(['ForgotPasswordHelperTest::Plugin1', 'ForgotPasswordHelperTest::Plugin2']) environment.enable_plugin(Plugin1) environment.enable_plugin(Plugin2) @@ -43,6 +44,7 @@ class ForgotPasswordHelperTest < ActionView::TestCase {:field => 'f3', :name => 'F3', :model => 'person'}] end end + Noosfero::Plugin.stubs(:all).returns(['ForgotPasswordHelperTest::Plugin1', 'ForgotPasswordHelperTest::Plugin2']) environment.enable_plugin(Plugin1) environment.enable_plugin(Plugin2) @@ -64,6 +66,7 @@ class ForgotPasswordHelperTest < ActionView::TestCase {:field => 'f3', :name => 'F3', :model => 'user'}] end end + Noosfero::Plugin.stubs(:all).returns(['ForgotPasswordHelperTest::Plugin1', 'ForgotPasswordHelperTest::Plugin2']) environment.enable_plugin(Plugin1) environment.enable_plugin(Plugin2) @@ -85,6 +88,7 @@ class ForgotPasswordHelperTest < ActionView::TestCase {:field => 'f3', :name => 'F3', :model => 'user'}] end end + Noosfero::Plugin.stubs(:all).returns(['ForgotPasswordHelperTest::Plugin1', 'ForgotPasswordHelperTest::Plugin2']) environment.enable_plugin(Plugin1) environment.enable_plugin(Plugin2) diff --git a/test/unit/macros_helper_test.rb b/test/unit/macros_helper_test.rb index 7a961c5..112ebcd 100644 --- a/test/unit/macros_helper_test.rb +++ b/test/unit/macros_helper_test.rb @@ -28,6 +28,7 @@ class MacrosHelperTest < ActiveSupport::TestCase end def setup + Noosfero::Plugin.stubs(:all).returns(['MacrosHelperTest::Plugin1']) @environment = Environment.default @environment.enable_plugin(Plugin1) @plugins = Noosfero::Plugin::Manager.new(@environment, self) diff --git a/test/unit/person_test.rb b/test/unit/person_test.rb index 5c7d867..d6d39cb 100644 --- a/test/unit/person_test.rb +++ b/test/unit/person_test.rb @@ -1255,6 +1255,7 @@ class PersonTest < ActiveSupport::TestCase false end end + Noosfero::Plugin.stubs(:all).returns(['PersonTest::Plugin1', 'PersonTest::Plugin2']) e = Environment.default e.enable_plugin(Plugin1.name) @@ -1424,6 +1425,7 @@ class PersonTest < ActiveSupport::TestCase Profile.memberships_of(Person.find_by_identifier('person2')) end end + Noosfero::Plugin.stubs(:all).returns(['PersonTest::Plugin1', 'PersonTest::Plugin2']) Environment.default.enable_plugin(Plugin1) Environment.default.enable_plugin(Plugin2) diff --git a/test/unit/plugin_manager_test.rb b/test/unit/plugin_manager_test.rb index a9f9603..8d3374d 100644 --- a/test/unit/plugin_manager_test.rb +++ b/test/unit/plugin_manager_test.rb @@ -26,6 +26,7 @@ class PluginManagerTest < ActiveSupport::TestCase class Plugin2 < Noosfero::Plugin; end; class Plugin3 < Noosfero::Plugin; end; class Plugin4 < Noosfero::Plugin; end; + Noosfero::Plugin.stubs(:all).returns(['PluginManagerTest::Plugin1', 'PluginManagerTest::Plugin2', 'PluginManagerTest::Plugin3', 'PluginManagerTest::Plugin4']) environment.stubs(:enabled_plugins).returns([Plugin1.to_s, Plugin2.to_s, Plugin4.to_s]) Noosfero::Plugin.stubs(:all).returns([Plugin1.to_s, Plugin3.to_s, Plugin4.to_s]) results = plugins.enabled_plugins.map { |instance| instance.class.to_s } @@ -51,6 +52,7 @@ class PluginManagerTest < ActiveSupport::TestCase 'Plugin 2 action.' end end + Noosfero::Plugin.stubs(:all).returns(['PluginManagerTest::Plugin1', 'PluginManagerTest::Plugin2']) environment.stubs(:enabled_plugins).returns([Plugin1.to_s, Plugin2.to_s]) @@ -83,6 +85,7 @@ class PluginManagerTest < ActiveSupport::TestCase 'Plugin 3 action.' end end + Noosfero::Plugin.stubs(:all).returns(['PluginManagerTest::Plugin1', 'PluginManagerTest::Plugin2', 'PluginManagerTest::Plugin3']) environment.stubs(:enabled_plugins).returns([Plugin1.to_s, Plugin2.to_s, Plugin3.to_s]) p1 = Plugin1.new @@ -107,6 +110,7 @@ class PluginManagerTest < ActiveSupport::TestCase 'Plugin3' end end + Noosfero::Plugin.stubs(:all).returns(['PluginManagerTest::Plugin1', 'PluginManagerTest::Plugin2', 'PluginManagerTest::Plugin3']) environment.enable_plugin(Plugin1.name) environment.enable_plugin(Plugin2.name) @@ -134,6 +138,7 @@ class PluginManagerTest < ActiveSupport::TestCase true end end + Noosfero::Plugin.stubs(:all).returns(['PluginManagerTest::Plugin1', 'PluginManagerTest::Plugin2', 'PluginManagerTest::Plugin3']) environment.enable_plugin(Plugin1.name) environment.enable_plugin(Plugin2.name) @@ -162,6 +167,7 @@ class PluginManagerTest < ActiveSupport::TestCase true end end + Noosfero::Plugin.stubs(:all).returns(['PluginManagerTest::Plugin1', 'PluginManagerTest::Plugin2', 'PluginManagerTest::Plugin3']) environment.enable_plugin(Plugin1.name) environment.enable_plugin(Plugin2.name) @@ -178,6 +184,7 @@ class PluginManagerTest < ActiveSupport::TestCase [Macro1, Macro2] end end + Noosfero::Plugin.stubs(:all).returns(['PluginManagerTest::Plugin1']) class Plugin1::Macro1 < Noosfero::Plugin::Macro def convert(macro, source) @@ -212,6 +219,7 @@ class PluginManagerTest < ActiveSupport::TestCase [v1 * v, v2 * v] end end + Noosfero::Plugin.stubs(:all).returns(['PluginManagerTest::Plugin1', 'PluginManagerTest::Plugin2']) environment.enable_plugin(Plugin1) environment.enable_plugin(Plugin2) @@ -231,6 +239,7 @@ class PluginManagerTest < ActiveSupport::TestCase value * 5 end end + Noosfero::Plugin.stubs(:all).returns(['PluginManagerTest::Plugin1', 'PluginManagerTest::Plugin2']) environment.enable_plugin(Plugin1) environment.enable_plugin(Plugin2) @@ -252,6 +261,7 @@ class PluginManagerTest < ActiveSupport::TestCase [v1 * v, v2 * v, 666] end end + Noosfero::Plugin.stubs(:all).returns(['PluginManagerTest::Plugin1', 'PluginManagerTest::Plugin2']) environment.enable_plugin(Plugin1) environment.enable_plugin(Plugin2) @@ -273,6 +283,7 @@ class PluginManagerTest < ActiveSupport::TestCase numbers.reject {|n| n<=5} end end + Noosfero::Plugin.stubs(:all).returns(['PluginManagerTest::Plugin1', 'PluginManagerTest::Plugin2']) environment.enable_plugin(Plugin1) environment.enable_plugin(Plugin2) diff --git a/test/unit/plugin_test.rb b/test/unit/plugin_test.rb index 50cc012..1db0350 100644 --- a/test/unit/plugin_test.rb +++ b/test/unit/plugin_test.rb @@ -9,15 +9,9 @@ class PluginTest < ActiveSupport::TestCase include Noosfero::Plugin::HotSpot - should 'keep the list of all loaded subclasses' do - class Plugin1 < Noosfero::Plugin - end - - class Plugin2 < Noosfero::Plugin - end - - assert_includes Noosfero::Plugin.all, Plugin1.to_s - assert_includes Noosfero::Plugin.all, Plugin2.to_s + should 'keep the list of all available plugins' do + assert File.directory?(File.join(Rails.root, 'plugins', 'foo')) + assert_includes Noosfero::Plugin.all, 'FooPlugin' end should 'returns url to plugin management if plugin has admin_controller' do diff --git a/test/unit/profile_test.rb b/test/unit/profile_test.rb index f06c0ff..27c4526 100644 --- a/test/unit/profile_test.rb +++ b/test/unit/profile_test.rb @@ -1812,6 +1812,7 @@ class ProfileTest < ActiveSupport::TestCase Person.members_of(Community.find_by_identifier('community2')) end end + Noosfero::Plugin.stubs(:all).returns(['ProfileTest::Plugin1', 'ProfileTest::Plugin2']) Environment.default.enable_plugin(Plugin1) Environment.default.enable_plugin(Plugin2) @@ -1969,6 +1970,7 @@ class ProfileTest < ActiveSupport::TestCase end environment = Environment.default + Noosfero::Plugin.stubs(:all).returns(['ProfileTest::Plugin1']) environment.enable_plugin(Plugin1) plugins = Noosfero::Plugin::Manager.new(environment, self) p = fast_create(Profile) diff --git a/test/unit/suggest_article_test.rb b/test/unit/suggest_article_test.rb index b85a405..6dacbeb 100644 --- a/test/unit/suggest_article_test.rb +++ b/test/unit/suggest_article_test.rb @@ -7,6 +7,7 @@ class SuggestArticleTest < ActiveSupport::TestCase ActionMailer::Base.perform_deliveries = true ActionMailer::Base.deliveries = [] @profile = create_user('test_user').person + Noosfero::Plugin.stubs(:all).returns(['SuggestArticleTest::EverythingIsSpam', 'SuggestArticleTest::SpamNotification']) end attr_reader :profile -- libgit2 0.21.2