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