From: Jean-Philippe Lang Date: Thu, 10 Jan 2013 21:38:11 +0000 (+0000) Subject: Fixed that viewing the history of a wiki page with attachments raises an error (... X-Git-Tag: 2.3.0~327 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=d0ffc0575a65dda03025d1d4e112ebd06f47ae7e;p=redmine.git Fixed that viewing the history of a wiki page with attachments raises an error (#12801). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11157 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index afc6acb9c..4118d5bac 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -545,9 +545,9 @@ module ApplicationHelper def parse_inline_attachments(text, project, obj, attr, only_path, options) # when using an image link, try to use an attachment, if possible - if options[:attachments].present? || (obj && obj.respond_to?(:attachments)) + if options[:attachments].present? || obj.respond_to?(:attachments) attachments = options[:attachments] || [] - attachments += obj.attachments if obj + attachments += obj.attachments if obj.respond_to?(:attachments) 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 diff --git a/test/fixtures/wiki_content_versions.yml b/test/fixtures/wiki_content_versions.yml index e7c0d4832..d3a614ac9 100644 --- a/test/fixtures/wiki_content_versions.yml +++ b/test/fixtures/wiki_content_versions.yml @@ -99,4 +99,18 @@ wiki_content_versions_006: version: 3 author_id: 1 comments: +wiki_content_versions_007: + data: |- + h1. Page with an inline image + + This is an inline image: + + !logo.gif! + updated_on: 2007-03-08 00:18:07 +01:00 + page_id: 4 + wiki_content_id: 4 + id: 7 + version: 1 + author_id: 1 + comments: diff --git a/test/functional/wiki_controller_test.rb b/test/functional/wiki_controller_test.rb index 05f4eb3af..7bd89c20d 100644 --- a/test/functional/wiki_controller_test.rb +++ b/test/functional/wiki_controller_test.rb @@ -68,6 +68,19 @@ class WikiControllerTest < ActionController::TestCase assert_select 'a[href=?]', '/projects/ecookbook/wiki/CookBook_documentation', :text => /Current version/ end + def test_show_old_version_with_attachments + page = WikiPage.find(4) + assert page.attachments.any? + content = page.content + content.text = "update" + content.save! + + get :show, :project_id => 'ecookbook', :id => page.title, :version => '1' + assert_kind_of WikiContent::Version, assigns(:content) + assert_response :success + assert_template 'show' + end + def test_show_old_version_without_permission_should_be_denied Role.anonymous.remove_permission! :view_wiki_edits