summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2012-12-15 07:52:39 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2012-12-15 07:52:39 +0000
commit82c7dc11d203f51cffea26d84e8c7a83f6694385 (patch)
tree661ff2ad82732b8e6e42755377eff56d4ecfc637
parentd22f782d3f9b0774843266ac189018f4a651a991 (diff)
downloadredmine-82c7dc11d203f51cffea26d84e8c7a83f6694385.tar.gz
redmine-82c7dc11d203f51cffea26d84e8c7a83f6694385.zip
Merged r10992 from trunk (#12400).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.2-stable@11006 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/models/custom_field.rb8
-rw-r--r--test/fixtures/mail_handler/ticket_with_custom_fields.eml1
-rw-r--r--test/unit/custom_field_test.rb5
-rw-r--r--test/unit/mail_handler_test.rb4
4 files changed, 15 insertions, 3 deletions
diff --git a/app/models/custom_field.rb b/app/models/custom_field.rb
index 22f29d3ac..5db56de7e 100644
--- a/app/models/custom_field.rb
+++ b/app/models/custom_field.rb
@@ -158,7 +158,13 @@ class CustomField < ActiveRecord::Base
possible_values_options = possible_values_options(customized)
if possible_values_options.present?
keyword = keyword.to_s.downcase
- possible_values_options.detect {|text, id| text.downcase == keyword}.try(:last)
+ if v = possible_values_options.detect {|text, id| text.downcase == keyword}
+ if v.is_a?(Array)
+ v.last
+ else
+ v
+ end
+ end
else
keyword
end
diff --git a/test/fixtures/mail_handler/ticket_with_custom_fields.eml b/test/fixtures/mail_handler/ticket_with_custom_fields.eml
index f3798a4b6..58dde7e0f 100644
--- a/test/fixtures/mail_handler/ticket_with_custom_fields.eml
+++ b/test/fixtures/mail_handler/ticket_with_custom_fields.eml
@@ -39,3 +39,4 @@ pulvinar dui, a gravida orci mi eget odio. Nunc a lacus.
category: Stock management
searchable field: Value for a custom field
+Database: postgresql
diff --git a/test/unit/custom_field_test.rb b/test/unit/custom_field_test.rb
index d858045ed..c3e9962f2 100644
--- a/test/unit/custom_field_test.rb
+++ b/test/unit/custom_field_test.rb
@@ -218,4 +218,9 @@ class CustomFieldTest < ActiveSupport::TestCase
assert_nil CustomField.new(:field_format => 'text').value_class
assert_nil CustomField.new.value_class
end
+
+ def test_value_from_keyword_for_list_custom_field
+ field = CustomField.find(1)
+ assert_equal 'PostgreSQL', field.value_from_keyword('postgresql', Issue.find(1))
+ end
end
diff --git a/test/unit/mail_handler_test.rb b/test/unit/mail_handler_test.rb
index 798d3b592..92d007c36 100644
--- a/test/unit/mail_handler_test.rb
+++ b/test/unit/mail_handler_test.rb
@@ -177,8 +177,8 @@ class MailHandlerTest < ActiveSupport::TestCase
assert !issue.new_record?
issue.reload
assert_equal 'New ticket with custom field values', issue.subject
- assert_equal 'Value for a custom field',
- issue.custom_value_for(CustomField.find_by_name('Searchable field')).value
+ assert_equal 'PostgreSQL', issue.custom_field_value(1)
+ assert_equal 'Value for a custom field', issue.custom_field_value(2)
assert !issue.description.match(/^searchable field:/i)
end