summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/wiki_controller.rb3
-rw-r--r--test/functional/wiki_controller_test.rb11
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