]> source.dussan.org Git - redmine.git/commitdiff
Merged r14856 (#21155).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 11 Nov 2015 07:23:07 +0000 (07:23 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 11 Nov 2015 07:23:07 +0000 (07:23 +0000)
git-svn-id: http://svn.redmine.org/redmine/branches/3.0-stable@14861 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/wiki_controller.rb
test/functional/wiki_controller_test.rb

index 6f6c6bbdfed0a337704799ed0df8f63cb7d16ebd..eabfe1c46c97d4e9d042aeef4ad47ff2a0312b82 100644 (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
index 9bffe66c7dade64ed22861240d065a7d20db394c..e3e960f536f3c22ca016846a14aa6f08e66b2731 100644 (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