summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/redmine/plugin.rb6
-rw-r--r--test/functional/settings_controller_test.rb9
2 files changed, 12 insertions, 3 deletions
diff --git a/lib/redmine/plugin.rb b/lib/redmine/plugin.rb
index 9f2862c53..f2800d211 100644
--- a/lib/redmine/plugin.rb
+++ b/lib/redmine/plugin.rb
@@ -113,6 +113,12 @@ module Redmine #:nodoc:
@registered_plugins = {}
end
+ # Removes a plugin from the registered plugins
+ # It doesn't unload the plugin
+ def self.unregister(id)
+ @registered_plugins.delete(id)
+ end
+
# Checks if a plugin is installed
#
# @param [String] id name of the plugin
diff --git a/test/functional/settings_controller_test.rb b/test/functional/settings_controller_test.rb
index fc64f87dc..80d3123a0 100644
--- a/test/functional/settings_controller_test.rb
+++ b/test/functional/settings_controller_test.rb
@@ -148,7 +148,8 @@ class SettingsControllerTest < ActionController::TestCase
assert_tag 'form', :attributes => {:action => '/settings/plugin/foo'},
:descendant => {:tag => 'input', :attributes => {:name => 'settings[sample_setting]', :value => 'Plugin setting value'}}
- Redmine::Plugin.clear
+ ensure
+ Redmine::Plugin.unregister(:foo)
end
def test_get_invalid_plugin_settings
@@ -162,7 +163,8 @@ class SettingsControllerTest < ActionController::TestCase
get :plugin, :id => 'foo'
assert_response 404
- Redmine::Plugin.clear
+ ensure
+ Redmine::Plugin.unregister(:foo)
end
def test_post_plugin_settings
@@ -181,6 +183,7 @@ class SettingsControllerTest < ActionController::TestCase
post :plugin, :id => 'foo', :settings => {'sample_setting' => 'Value'}
assert_response 404
- Redmine::Plugin.clear
+ ensure
+ Redmine::Plugin.unregister(:foo)
end
end