diff options
-rw-r--r-- | app/controllers/wiki_controller.rb | 3 | ||||
-rw-r--r-- | test/functional/wiki_controller_test.rb | 11 |
2 files changed, 13 insertions, 1 deletions
diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb index 44113ebf3..8655cfed7 100644 --- a/app/controllers/wiki_controller.rb +++ b/app/controllers/wiki_controller.rb @@ -162,7 +162,8 @@ class WikiController < ApplicationController def preview page = @wiki.find_page(params[:page]) - return render_403 unless editable?(page) + # page is nil when previewing a new page + return render_403 unless page.nil? || editable?(page) @attachements = page.attachments if page @text = params[:content][:text] render :partial => 'common/preview' diff --git a/test/functional/wiki_controller_test.rb b/test/functional/wiki_controller_test.rb index 8688c2e03..f1ae7a9c2 100644 --- a/test/functional/wiki_controller_test.rb +++ b/test/functional/wiki_controller_test.rb @@ -86,6 +86,17 @@ class WikiControllerTest < Test::Unit::TestCase assert_tag :tag => 'strong', :content => /previewed text/ end + def test_preview_new_page + @request.session[:user_id] = 2 + xhr :post, :preview, :id => 1, :page => 'New page', + :content => { :text => 'h1. New page', + :comments => '', + :version => 0 } + assert_response :success + assert_template 'common/_preview' + assert_tag :tag => 'h1', :content => /New page/ + end + def test_history get :history, :id => 1, :page => 'CookBook_documentation' assert_response :success |