Browse Source

Case-insensitive matching fails for Unicode filenames when referring to attachments in text formatting (#27780).

Patch by Go MAEDA.


git-svn-id: http://svn.redmine.org/redmine/trunk@20835 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/4.2.0
Go MAEDA 3 years ago
parent
commit
7337343f56
2 changed files with 16 additions and 1 deletions
  1. 3
    1
      app/models/attachment.rb
  2. 13
    0
      test/unit/attachment_test.rb

+ 3
- 1
app/models/attachment.rb View File

@@ -368,8 +368,10 @@ class Attachment < ActiveRecord::Base
end

def self.latest_attach(attachments, filename)
return unless filename.valid_encoding?

attachments.sort_by(&:created_on).reverse.detect do |att|
filename.casecmp(att.filename) == 0
filename.casecmp?(att.filename)
end
end


+ 13
- 0
test/unit/attachment_test.rb View File

@@ -473,6 +473,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?

Loading…
Cancel
Save