From ac0cf9916cca578de916a7c8384b6ceaedfefe2a Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Wed, 11 Nov 2015 07:23:07 +0000 Subject: [PATCH] Merged r14856 (#21155). git-svn-id: http://svn.redmine.org/redmine/branches/3.0-stable@14861 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/wiki_controller.rb | 9 ++++++--- test/functional/wiki_controller_test.rb | 12 ++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb index 6f6c6bbdf..eabfe1c46 100644 --- a/app/controllers/wiki_controller.rb +++ b/app/controllers/wiki_controller.rb @@ -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 diff --git a/test/functional/wiki_controller_test.rb b/test/functional/wiki_controller_test.rb index 9bffe66c7..e3e960f53 100644 --- a/test/functional/wiki_controller_test.rb +++ b/test/functional/wiki_controller_test.rb @@ -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 -- 2.39.5