##// END OF EJS Templates
Merged r14054 (#19225)....
Jean-Philippe Lang -
r13682:7879d8e4dcb4
parent child
Show More
@@ -320,15 +320,19 module IssuesHelper
320 end
320 end
321 strings << show_detail(detail, no_html, options)
321 strings << show_detail(detail, no_html, options)
322 end
322 end
323 values_by_field.each do |field, changes|
323 if values_by_field.present?
324 detail = JournalDetail.new(:property => 'cf', :prop_key => field.id.to_s)
324 multiple_values_detail = Struct.new(:property, :prop_key, :custom_field, :old_value, :value)
325 detail.instance_variable_set "@custom_field", field
325 values_by_field.each do |field, changes|
326 if changes[:added].any?
326 if changes[:added].any?
327 detail.value = changes[:added]
327 detail = multiple_values_detail.new('cf', field.id.to_s, field)
328 strings << show_detail(detail, no_html, options)
328 detail.value = changes[:added]
329 elsif changes[:deleted].any?
329 strings << show_detail(detail, no_html, options)
330 detail.old_value = changes[:deleted]
330 end
331 strings << show_detail(detail, no_html, options)
331 if changes[:deleted].any?
332 detail = multiple_values_detail.new('cf', field.id.to_s, field)
333 detail.old_value = changes[:deleted]
334 strings << show_detail(detail, no_html, options)
335 end
332 end
336 end
333 end
337 end
334 strings
338 strings
@@ -296,6 +296,43 class IssuesHelperTest < ActionView::TestCase
296 assert_equal "<strong>Precedes</strong> deleted (<i>Issue ##{issue.id}</i>)", show_detail(detail, false)
296 assert_equal "<strong>Precedes</strong> deleted (<i>Issue ##{issue.id}</i>)", show_detail(detail, false)
297 end
297 end
298
298
299 def test_details_to_strings_with_multiple_values_removed_from_custom_field
300 field = IssueCustomField.generate!(:name => 'User', :field_format => 'user', :multiple => true)
301 details = []
302 details << JournalDetail.new(:property => 'cf', :prop_key => field.id.to_s, :old_value => '1', :value => nil)
303 details << JournalDetail.new(:property => 'cf', :prop_key => field.id.to_s, :old_value => '3', :value => nil)
304
305 assert_equal ["User deleted (Dave Lopper, Redmine Admin)"], details_to_strings(details, true)
306 assert_equal ["<strong>User</strong> deleted (<del><i>Dave Lopper, Redmine Admin</i></del>)"], details_to_strings(details, false)
307 end
308
309 def test_details_to_strings_with_multiple_values_added_to_custom_field
310 field = IssueCustomField.generate!(:name => 'User', :field_format => 'user', :multiple => true)
311 details = []
312 details << JournalDetail.new(:property => 'cf', :prop_key => field.id.to_s, :old_value => nil, :value => '1')
313 details << JournalDetail.new(:property => 'cf', :prop_key => field.id.to_s, :old_value => nil, :value => '3')
314
315 assert_equal ["User Dave Lopper, Redmine Admin added"], details_to_strings(details, true)
316 assert_equal ["<strong>User</strong> <i>Dave Lopper, Redmine Admin</i> added"], details_to_strings(details, false)
317 end
318
319 def test_details_to_strings_with_multiple_values_added_and_removed_from_custom_field
320 field = IssueCustomField.generate!(:name => 'User', :field_format => 'user', :multiple => true)
321 details = []
322 details << JournalDetail.new(:property => 'cf', :prop_key => field.id.to_s, :old_value => nil, :value => '1')
323 details << JournalDetail.new(:property => 'cf', :prop_key => field.id.to_s, :old_value => '2', :value => nil)
324 details << JournalDetail.new(:property => 'cf', :prop_key => field.id.to_s, :old_value => '3', :value => nil)
325
326 assert_equal [
327 "User Redmine Admin added",
328 "User deleted (Dave Lopper, John Smith)"
329 ], details_to_strings(details, true)
330 assert_equal [
331 "<strong>User</strong> <i>Redmine Admin</i> added",
332 "<strong>User</strong> deleted (<del><i>Dave Lopper, John Smith</i></del>)"
333 ], details_to_strings(details, false)
334 end
335
299 def test_find_name_by_reflection_should_return_nil_for_missing_record
336 def test_find_name_by_reflection_should_return_nil_for_missing_record
300 assert_nil find_name_by_reflection('status', 99)
337 assert_nil find_name_by_reflection('status', 99)
301 end
338 end
General Comments 0
You need to be logged in to leave comments. Login now