diff options
-rw-r--r-- | app/helpers/application_helper.rb | 18 | ||||
-rw-r--r-- | test/functional/issues_controller_test.rb | 2 | ||||
-rw-r--r-- | test/helpers/application_helper_test.rb | 18 |
3 files changed, 22 insertions, 16 deletions
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 576b99647..b7d838034 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -98,10 +98,17 @@ module ApplicationHelper # * :download - Force download (default: false) def link_to_attachment(attachment, options={}) text = options.delete(:text) || attachment.filename - route_method = options.delete(:download) ? :download_named_attachment_url : :named_attachment_url - html_options = options.slice!(:only_path) + if options.delete(:download) + route_method = :download_named_attachment_url + options[:filename] = attachment.filename + else + route_method = :attachment_url + # make sure we don't have an extraneous :filename in the options + options.delete(:filename) + end + html_options = options.slice!(:only_path, :filename) options[:only_path] = true unless options.key?(:only_path) - url = send(route_method, attachment, attachment.filename, options) + url = send(route_method, attachment, options) link_to text, url, html_options end @@ -263,9 +270,8 @@ module ApplicationHelper :srcset => "#{thumbnail_path(attachment, :size => thumbnail_size * 2)} 2x", :style => "max-width: #{thumbnail_size}px; max-height: #{thumbnail_size}px;" ), - named_attachment_path( - attachment, - attachment.filename + attachment_path( + attachment ), :title => attachment.filename ) diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index 61b2ded0c..35c505345 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -2081,7 +2081,7 @@ class IssuesControllerTest < Redmine::ControllerTest end assert_select 'div.thumbnails' do - assert_select 'a[href="/attachments/16/testfile.png"]' do + assert_select 'a[href="/attachments/16"]' do assert_select 'img[src="/attachments/thumbnail/16"]' end end diff --git a/test/helpers/application_helper_test.rb b/test/helpers/application_helper_test.rb index e28a56797..aa403be46 100644 --- a/test/helpers/application_helper_test.rb +++ b/test/helpers/application_helper_test.rb @@ -677,7 +677,7 @@ RAW def test_attachment_links text = 'attachment:error281.txt' - result = link_to("error281.txt", "/attachments/1/error281.txt", + result = link_to("error281.txt", "/attachments/1", :class => "attachment") assert_equal "<p>#{result}</p>", textilizable(text, @@ -689,7 +689,7 @@ RAW set_tmp_attachments_directory a1 = Attachment.generate!(:filename => "test.txt", :created_on => 1.hour.ago) a2 = Attachment.generate!(:filename => "test.txt") - result = link_to("test.txt", "/attachments/#{a2.id}/test.txt", + result = link_to("test.txt", "/attachments/#{a2.id}", :class => "attachment") assert_equal "<p>#{result}</p>", textilizable('attachment:test.txt', :attachments => [a1, a2]) @@ -700,13 +700,13 @@ RAW with_settings :text_formatting => 'textile' do raw = "attachment:image@2x.png should not be parsed in image@2x.png" - assert_match %r{<p><a class="attachment" href="/attachments/#{attachment.id}/image@2x.png">image@2x.png</a> should not be parsed in image@2x.png</p>}, + assert_match %r{<p><a class="attachment" href="/attachments/#{attachment.id}">image@2x.png</a> should not be parsed in image@2x.png</p>}, textilizable(raw, :attachments => [attachment]) end with_settings :text_formatting => 'markdown' do raw = "attachment:image@2x.png should not be parsed in image@2x.png" - assert_match %r{<p><a class="attachment" href="/attachments/#{attachment.id}/image@2x.png">image@2x.png</a> should not be parsed in image@2x.png</p>} , + assert_match %r{<p><a class="attachment" href="/attachments/#{attachment.id}">image@2x.png</a> should not be parsed in image@2x.png</p>} , textilizable(raw, :attachments => [attachment]) end end @@ -1445,16 +1445,16 @@ RAW def test_link_to_attachment a = Attachment.find(3) - assert_equal '<a href="/attachments/3/logo.gif">logo.gif</a>', + assert_equal '<a href="/attachments/3">logo.gif</a>', link_to_attachment(a) - assert_equal '<a href="/attachments/3/logo.gif">Text</a>', + assert_equal '<a href="/attachments/3">Text</a>', link_to_attachment(a, :text => 'Text') - result = link_to("logo.gif", "/attachments/3/logo.gif", :class => "foo") + result = link_to("logo.gif", "/attachments/3", :class => "foo") assert_equal result, link_to_attachment(a, :class => 'foo') assert_equal '<a href="/attachments/download/3/logo.gif">logo.gif</a>', link_to_attachment(a, :download => true) - assert_equal '<a href="http://test.host/attachments/3/logo.gif">logo.gif</a>', + assert_equal '<a href="http://test.host/attachments/3">logo.gif</a>', link_to_attachment(a, :only_path => false) end @@ -1462,7 +1462,7 @@ RAW a = Attachment.find(3) assert_select_in thumbnail_tag(a), 'a[href=?][title=?] img[src=?]', - "/attachments/3/logo.gif", "logo.gif", "/attachments/thumbnail/3" + "/attachments/3", "logo.gif", "/attachments/thumbnail/3" end def test_link_to_project |