Project

General

Profile

Defect #33459 » fix-33459.patch

Mizuki ISHIKAWA, 2020-05-18 10:01

View differences:

app/helpers/journals_helper.rb
22 22
  # Returns the attachments of a journal that are displayed as thumbnails
23 23
  def journal_thumbnail_attachments(journal)
24 24
    ids = journal.details.select {|d| d.property == 'attachment' && d.value.present?}.map(&:prop_key)
25
    ids.any? ? Attachment.where(:id => ids).select(&:thumbnailable?) : []
25
    ids.any? ? Attachment.where(:id => ids).select(&:thumbnailable?).sort_by{ |o| ids.index(o.id.to_s)} : []
26 26
  end
27 27

  
28 28
  # Returns the action links for an issue journal
test/helpers/journals_helper_test.rb
49 49
    assert_kind_of Attachment, thumbnails.first
50 50
    assert_equal 'image.png', thumbnails.first.filename
51 51
  end
52

  
53
  def test_journal_thumbnail_attachments_should_be_in_the_same_order_as_the_journal_details
54
    skip unless convert_installed?
55
    set_tmp_attachments_directory
56
    issue = Issue.generate!
57

  
58
    # If the order of Attachment id and journal.details is different, the order will be the same as journal_details.
59
    attachment1 = Attachment.generate!(:file => mock_file_with_options(:original_filename => 'image1.png'), :author => User.find(1))
60
    attachment2 = Attachment.generate!(:file => mock_file_with_options(:original_filename => 'image2.png'), :author => User.find(1))
61
    journal = Journal.create!(:journalized => issue, :user_id => 1)
62
    JournalDetail.create!(
63
        :journal => journal, :property => 'attachment',
64
        :prop_key => attachment2.id.to_s,
65
        :value => 'image2.png'
66
      )
67
    JournalDetail.create!(
68
        :journal => journal, :property => 'attachment',
69
        :prop_key => attachment1.id.to_s,
70
        :value => 'image1.png'
71
      )
72
    journal.reload
73
    thumbnails = journal_thumbnail_attachments(journal)
74
    assert_equal 2, thumbnails.count
75
    assert_equal 2, journal.details.count
76
    assert_equal journal.details.map(&:value), thumbnails.map(&:filename)
77
  end
52 78
end
(2-2/2)