git-svn-id: https://svn.redmine.org/redmine/branches/4.2-stable@21730 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/4.2.8
@@ -105,7 +105,7 @@ class Setting < ActiveRecord::Base | |||
v = read_attribute(:value) | |||
# Unserialize serialized settings | |||
if available_settings[name]['serialized'] && v.is_a?(String) | |||
v = YAML.safe_load(v, permitted_classes: [ActiveSupport::HashWithIndifferentAccess]) | |||
v = YAML.safe_load(v, permitted_classes: [Symbol, ActiveSupport::HashWithIndifferentAccess]) | |||
v = force_utf8_strings(v) | |||
end | |||
v = v.to_sym if available_settings[name]['format'] == 'symbol' && !v.blank? |
@@ -191,6 +191,13 @@ class Redmine::PluginTest < ActiveSupport::TestCase | |||
end | |||
end | |||
def test_default_settings | |||
@klass.register(:foo_plugin) {settings :default => {'key1' => 'abc', :key2 => 123}} | |||
h = Setting.plugin_foo_plugin | |||
assert_equal 'abc', h['key1'] | |||
assert_equal 123, h[:key2] | |||
end | |||
def test_settings_warns_about_possible_partial_collision | |||
@klass.register(:foo_plugin) {settings :partial => 'foo/settings'} | |||
Rails.logger.expects(:warn) |