@@ -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. |
|
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