diff --git a/app/models/attachment.rb b/app/models/attachment.rb index d6c272453..8bf9fdfa0 100644 --- a/app/models/attachment.rb +++ b/app/models/attachment.rb @@ -342,7 +342,7 @@ class Attachment < ActiveRecord::Base def self.latest_attach(attachments, filename) attachments.sort_by(&:created_on).reverse.detect do |att| - filename.casecmp(att.filename) == 0 + filename.casecmp?(att.filename) end end diff --git a/test/unit/attachment_test.rb b/test/unit/attachment_test.rb index 90d0dc679..f47b916bd 100644 --- a/test/unit/attachment_test.rb +++ b/test/unit/attachment_test.rb @@ -464,6 +464,19 @@ class AttachmentTest < ActiveSupport::TestCase Attachment.latest_attach(Attachment.limit(2).to_a, string) end + def test_latest_attach_should_support_unicode_case_folding + a_capital = Attachment.create!( + :author => User.find(1), + :file => mock_file(:filename => 'Ā.TXT') + ) + a_small = Attachment.create!( + :author => User.find(1), + :file => mock_file(:filename => 'ā.txt') + ) + + assert_equal(a_small, Attachment.latest_attach([a_capital, a_small], 'Ā.TXT')) + end + def test_thumbnailable_should_be_true_for_images skip unless convert_installed? assert_equal true, Attachment.new(:filename => 'test.jpg').thumbnailable?