Defect #13385 » rm13385-do_not_set_searchable_for_user_and_version_cf-trunk_r12224.diff
| test/unit/custom_field_test.rb (working copy) | ||
|---|---|---|
| 227 | 227 |
assert_equal 2, item_with_multiple_values.custom_field_value(other).size |
| 228 | 228 |
end |
| 229 | 229 | |
| 230 |
def test_searchable_should_be_set_for_string_text_list_custom_field_formats_only |
|
| 231 |
Redmine::CustomFieldFormat.available_formats.each do |format| |
|
| 232 |
if format == 'list' |
|
| 233 |
field = CustomField.new(:name => 'test_searchable_list_cf', :field_format => format, :possible_values => ['v1', 'v2']) |
|
| 234 |
else |
|
| 235 |
field = CustomField.new(:name => 'test_searchable_' + format + '_cf', :field_format => format) |
|
| 236 |
end |
|
| 237 |
field.searchable = true |
|
| 238 |
assert field.save |
|
| 239 |
case format |
|
| 240 |
when 'string', 'text', 'list' |
|
| 241 |
assert_equal true, field.searchable, format + " custom field isn't searchable while it should" |
|
| 242 |
when 'int', 'float', 'date', 'bool', 'user', 'version' |
|
| 243 |
assert_equal false, field.searchable, format + " custom field is searchable while it shouldn't" |
|
| 244 |
end |
|
| 245 |
end |
|
| 246 |
end |
|
| 247 | ||
| 230 | 248 |
def test_value_class_should_return_the_class_used_for_fields_values |
| 231 | 249 |
assert_equal User, CustomField.new(:field_format => 'user').value_class |
| 232 | 250 |
assert_equal Version, CustomField.new(:field_format => 'version').value_class |
| app/models/custom_field.rb (working copy) | ||
|---|---|---|
| 64 | 64 | |
| 65 | 65 |
def set_searchable |
| 66 | 66 |
# make sure these fields are not searchable |
| 67 |
self.searchable = false if %w(int float date bool).include?(field_format) |
|
| 67 |
self.searchable = false if %w(int float date bool user version).include?(field_format)
|
|
| 68 | 68 |
# make sure only these fields can have multiple values |
| 69 | 69 |
self.multiple = false unless %w(list user version).include?(field_format) |
| 70 | 70 |
true |