Parcourir la source

Attached inline images with non-ascii file name can not be seen when text formatting is Makdown (#19313).

Patch by Go MAEDA.

git-svn-id: http://svn.redmine.org/redmine/trunk@14080 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/3.1.0
Jean-Philippe Lang il y a 9 ans
Parent
révision
5da48d9293

+ 1
- 1
app/helpers/application_helper.rb Voir le fichier

@@ -634,7 +634,7 @@ module ApplicationHelper
text.gsub!(/src="([^\/"]+\.(bmp|gif|jpg|jpe|jpeg|png))"(\s+alt="([^"]*)")?/i) do |m|
filename, ext, alt, alttext = $1.downcase, $2, $3, $4
# search for the picture in attachments
if found = Attachment.latest_attach(attachments, filename)
if found = Attachment.latest_attach(attachments, CGI.unescape(filename))
image_url = download_named_attachment_url(found, found.filename, :only_path => only_path)
desc = found.description.to_s.gsub('"', '')
if !desc.blank? && alttext.blank?

+ 16
- 0
test/unit/helpers/application_helper_test.rb Voir le fichier

@@ -151,6 +151,22 @@ RAW
to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text, :attachments => attachments) }
end

def test_attached_images_with_textile_and_non_ascii_filename
attachment = Attachment.generate!(:filename => 'café.jpg')
with_settings :text_formatting => 'textile' do
assert_include %(<img src="/attachments/download/#{attachment.id}/caf%C3%A9.jpg" alt="" />),
textilizable("!café.jpg!)", :attachments => [attachment])
end
end

def test_attached_images_with_markdown_and_non_ascii_filename
attachment = Attachment.generate!(:filename => 'café.jpg')
with_settings :text_formatting => 'markdown' do
assert_include %(<img src="/attachments/download/#{attachment.id}/caf%C3%A9.jpg" alt="">),
textilizable("![](café.jpg)", :attachments => [attachment])
end
end

def test_attached_images_filename_extension
set_tmp_attachments_directory
a1 = Attachment.new(

Chargement…
Annuler
Enregistrer