Fixed that #destroy_version with invalid version destroys wiki page content (#21155).

git-svn-id: http://svn.redmine.org/redmine/trunk@14856 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2015-11-09 17:53:13 +00:00
parent 9fc0d230c8
commit c2fe2d0c06
2 changed files with 18 additions and 3 deletions

View File

@ -266,9 +266,12 @@ class WikiController < ApplicationController
def destroy_version
return render_403 unless editable?
@content = @page.content_for_version(params[:version])
@content.destroy
redirect_to_referer_or history_project_wiki_page_path(@project, @page.title)
if content = @page.content.versions.find_by_version(params[:version])
content.destroy
redirect_to_referer_or history_project_wiki_page_path(@project, @page.title)
else
render_404
end
end
# Export wiki to a single pdf or html file

View File

@ -756,6 +756,18 @@ class WikiControllerTest < ActionController::TestCase
end
end
def test_destroy_invalid_version_should_respond_with_404
@request.session[:user_id] = 2
assert_no_difference 'WikiContent::Version.count' do
assert_no_difference 'WikiContent.count' do
assert_no_difference 'WikiPage.count' do
delete :destroy_version, :project_id => 'ecookbook', :id => 'CookBook_documentation', :version => 99
end
end
end
assert_response 404
end
def test_index
get :index, :project_id => 'ecookbook'
assert_response :success