From 97fc28da3a563501e6e0d777a1a01d9b93486196 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 14 Mar 2015 15:03:04 +0000 Subject: [PATCH] Merged r14079 (#19316). git-svn-id: http://svn.redmine.org/redmine/branches/3.0-stable@14094 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/custom_field.rb | 4 ++-- test/unit/custom_field_test.rb | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/app/models/custom_field.rb b/app/models/custom_field.rb index 02d183397..3fbb1edc2 100644 --- a/app/models/custom_field.rb +++ b/app/models/custom_field.rb @@ -118,7 +118,7 @@ class CustomField < ActiveRecord::Base values = read_attribute(:possible_values) if values.is_a?(Array) values.each do |value| - value.force_encoding('UTF-8') + value.to_s.force_encoding('UTF-8') end values else @@ -129,7 +129,7 @@ class CustomField < ActiveRecord::Base # Makes possible_values accept a multiline string def possible_values=(arg) if arg.is_a?(Array) - values = arg.compact.collect(&:strip).select {|v| !v.blank?} + values = arg.compact.map {|a| a.to_s.strip}.reject(&:blank?) write_attribute(:possible_values, values) else self.possible_values = arg.to_s.split(/[\n\r]+/) diff --git a/test/unit/custom_field_test.rb b/test/unit/custom_field_test.rb index 815939d33..f40875137 100644 --- a/test/unit/custom_field_test.rb +++ b/test/unit/custom_field_test.rb @@ -85,12 +85,26 @@ class CustomFieldTest < ActiveSupport::TestCase assert_equal ["One value"], field.possible_values end + def test_possible_values_should_stringify_values + field = CustomField.new + field.possible_values = [1, 2] + assert_equal ["1", "2"], field.possible_values + end + def test_possible_values_should_accept_a_string field = CustomField.new field.possible_values = "One value" assert_equal ["One value"], field.possible_values end + def test_possible_values_should_return_utf8_encoded_strings + field = CustomField.new + s = "Value".force_encoding('BINARY') + field.possible_values = s + assert_equal [s], field.possible_values + assert_equal 'UTF-8', field.possible_values.first.encoding.name + end + def test_possible_values_should_accept_a_multiline_string field = CustomField.new field.possible_values = "One value\nAnd another one \r\n \n" -- 2.39.5