##// END OF EJS Templates
Merged r14079 (#19316)....
Jean-Philippe Lang -
r13712:97fc28da3a56
parent child
Show More
@@ -118,7 +118,7 class CustomField < ActiveRecord::Base
118 values = read_attribute(:possible_values)
118 values = read_attribute(:possible_values)
119 if values.is_a?(Array)
119 if values.is_a?(Array)
120 values.each do |value|
120 values.each do |value|
121 value.force_encoding('UTF-8')
121 value.to_s.force_encoding('UTF-8')
122 end
122 end
123 values
123 values
124 else
124 else
@@ -129,7 +129,7 class CustomField < ActiveRecord::Base
129 # Makes possible_values accept a multiline string
129 # Makes possible_values accept a multiline string
130 def possible_values=(arg)
130 def possible_values=(arg)
131 if arg.is_a?(Array)
131 if arg.is_a?(Array)
132 values = arg.compact.collect(&:strip).select {|v| !v.blank?}
132 values = arg.compact.map {|a| a.to_s.strip}.reject(&:blank?)
133 write_attribute(:possible_values, values)
133 write_attribute(:possible_values, values)
134 else
134 else
135 self.possible_values = arg.to_s.split(/[\n\r]+/)
135 self.possible_values = arg.to_s.split(/[\n\r]+/)
@@ -85,12 +85,26 class CustomFieldTest < ActiveSupport::TestCase
85 assert_equal ["One value"], field.possible_values
85 assert_equal ["One value"], field.possible_values
86 end
86 end
87
87
88 def test_possible_values_should_stringify_values
89 field = CustomField.new
90 field.possible_values = [1, 2]
91 assert_equal ["1", "2"], field.possible_values
92 end
93
88 def test_possible_values_should_accept_a_string
94 def test_possible_values_should_accept_a_string
89 field = CustomField.new
95 field = CustomField.new
90 field.possible_values = "One value"
96 field.possible_values = "One value"
91 assert_equal ["One value"], field.possible_values
97 assert_equal ["One value"], field.possible_values
92 end
98 end
93
99
100 def test_possible_values_should_return_utf8_encoded_strings
101 field = CustomField.new
102 s = "Value".force_encoding('BINARY')
103 field.possible_values = s
104 assert_equal [s], field.possible_values
105 assert_equal 'UTF-8', field.possible_values.first.encoding.name
106 end
107
94 def test_possible_values_should_accept_a_multiline_string
108 def test_possible_values_should_accept_a_multiline_string
95 field = CustomField.new
109 field = CustomField.new
96 field.possible_values = "One value\nAnd another one \r\n \n"
110 field.possible_values = "One value\nAnd another one \r\n \n"
General Comments 0
You need to be logged in to leave comments. Login now