end
when 'attachment'
attachments = options[:attachments] || (obj && obj.respond_to?(:attachments) ? obj.attachments : nil)
- if attachments && attachment = attachments.detect {|a| a.filename == name }
+ if attachments && attachment = Attachment.latest_attach(attachments, name)
link = link_to h(attachment.filename), {:only_path => only_path, :controller => 'attachments', :action => 'download', :id => attachment},
:class => 'attachment'
end
board.save!
board
end
+
+ def Attachment.generate!(attributes={})
+ @generated_filename ||= 'testfile0'
+ @generated_filename.succ!
+ attributes = attributes.dup
+ attachment = Attachment.new(attributes)
+ attachment.container ||= Issue.find(1)
+ attachment.author ||= User.find(2)
+ attachment.filename = @generated_filename if attachment.filename.blank?
+ attachment.save!
+ attachment
+ end
end
to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text, :attachments => Issue.find(3).attachments), "#{text} failed" }
end
+ def test_attachment_link_should_link_to_latest_attachment
+ set_tmp_attachments_directory
+ a1 = Attachment.generate!(:filename => "test.txt", :created_on => 1.hour.ago)
+ a2 = Attachment.generate!(:filename => "test.txt")
+
+ assert_equal %(<p><a href="/attachments/download/#{a2.id}" class="attachment">test.txt</a></p>),
+ textilizable('attachment:test.txt', :attachments => [a1, a2])
+ end
+
def test_wiki_links
to_test = {
'[[CookBook documentation]]' => '<a href="/projects/ecookbook/wiki/CookBook_documentation" class="wiki-page">CookBook documentation</a>',