summaryrefslogtreecommitdiffstats
path: root/test/unit/setting_test.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2015-03-15 14:38:46 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2015-03-15 14:38:46 +0000
commited2a3a2244980bc39fba05a0d0e4de2e0b628211 (patch)
tree124a912bd5ada269344feb5f542b926ca6528326 /test/unit/setting_test.rb
parent5c43b4860e752965329e38a11a7e3f4b266b2d5b (diff)
downloadredmine-ed2a3a2244980bc39fba05a0d0e4de2e0b628211.tar.gz
redmine-ed2a3a2244980bc39fba05a0d0e4de2e0b628211.zip
Make sure that settings are unserialized as UTF-8 encoded strings (#19305).
git-svn-id: http://svn.redmine.org/redmine/trunk@14112 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test/unit/setting_test.rb')
-rw-r--r--test/unit/setting_test.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/unit/setting_test.rb b/test/unit/setting_test.rb
index 46383e867..6c3c27df9 100644
--- a/test/unit/setting_test.rb
+++ b/test/unit/setting_test.rb
@@ -1,3 +1,5 @@
+# encoding: utf-8
+#
# Redmine - project management software
# Copyright (C) 2006-2015 Jean-Philippe Lang
#
@@ -101,4 +103,25 @@ class SettingTest < ActiveSupport::TestCase
assert_equal [10, 25, 50], Setting.per_page_options_array
end
end
+
+ def test_setting_serialied_as_binary_should_be_loaded_as_utf8_encoded_strings
+ yaml = <<-YAML
+---
+- keywords: !binary |
+ Zml4ZXMsY2xvc2VzLNC40YHQv9GA0LDQstC70LXQvdC+LNCz0L7RgtC+0LLQ
+ vizRgdC00LXQu9Cw0L3QvixmaXhlZA==
+
+ done_ratio: "100"
+ status_id: "5"
+YAML
+
+ Setting.commit_update_keywords = {}
+ assert_equal 1, Setting.where(:name => 'commit_update_keywords').update_all(:value => yaml)
+ Setting.clear_cache
+
+ assert_equal 'UTF-8', Setting.commit_update_keywords.first['keywords'].encoding.name
+ ensure
+ Setting.where(:name => 'commit_update_keywords').delete_all
+ Setting.clear_cache
+ end
end