Commit 80389491 authored by jplang's avatar jplang

Fix 500 error for requests to the settings path for non-configurable plugins (#12911).

Path by Harry Garrood.

git-svn-id: https://svn.redmine.org/redmine/trunk@11216 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent 39a9b73f
......@@ -52,6 +52,11 @@ class SettingsController < ApplicationController
def plugin
@plugin = Redmine::Plugin.find(params[:id])
unless @plugin.configurable?
render_404
return
end
if request.post?
Setting.send "plugin_#{@plugin.id}=", params[:settings]
flash[:notice] = l(:notice_successful_update)
......
......@@ -101,11 +101,31 @@ class SettingsControllerTest < ActionController::TestCase
assert_response 404
end
def test_get_non_configurable_plugin_settings
Redmine::Plugin.register(:foo) {}
get :plugin, :id => 'foo'
assert_response 404
Redmine::Plugin.clear
end
def test_post_plugin_settings
Setting.expects(:plugin_foo=).with({'sample_setting' => 'Value'}).returns(true)
Redmine::Plugin.register(:foo) {}
Redmine::Plugin.register(:foo) do
settings :partial => 'not blank' # so that configurable? is true
end
post :plugin, :id => 'foo', :settings => {'sample_setting' => 'Value'}
assert_redirected_to '/settings/plugin/foo'
end
def test_post_non_configurable_plugin_settings
Redmine::Plugin.register(:foo) {}
post :plugin, :id => 'foo', :settings => {'sample_setting' => 'Value'}
assert_response 404
Redmine::Plugin.clear
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment