]> source.dussan.org Git - redmine.git/commitdiff
Fixed: Missing template wiki/update.erb error introduced in r4272 (#6987).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 27 Nov 2010 10:34:44 +0000 (10:34 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 27 Nov 2010 10:34:44 +0000 (10:34 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4429 e93f8b46-1217-0410-a6f0-8f06a7374b81

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

index ae6f9d1665a1b1b3e824bc286c746c69af5df7dc..e7e38930633f87f81b06deaf83b6534c546af39c 100644 (file)
@@ -125,6 +125,8 @@ class WikiController < ApplicationController
       render_attachment_warning_if_needed(@page)
       call_hook(:controller_wiki_edit_after_save, { :params => params, :page => @page})
       redirect_to :action => 'show', :project_id => @project, :id => @page.title
+    else
+      render :action => 'edit'
     end
 
   rescue ActiveRecord::StaleObjectError
index 74e9e11b644ba0e2540c9a4e40689083ad7da748..857975b82ce53cd4df56b2b87f0413cb7b3b47df 100644 (file)
@@ -108,6 +108,52 @@ class WikiControllerTest < ActionController::TestCase
     assert_equal 1, page.attachments.count
     assert_equal 'testfile.txt', page.attachments.first.filename
   end
+
+  def test_update_page
+    @request.session[:user_id] = 2
+    assert_no_difference 'WikiPage.count' do
+      assert_no_difference 'WikiContent.count' do
+        assert_difference 'WikiContent::Version.count' do
+          put :update, :project_id => 1,
+            :id => 'Another_page',
+            :content => {
+              :comments => "my comments",
+              :text => "edited",
+              :version => 1
+            }
+        end
+      end
+    end
+    assert_redirected_to '/projects/ecookbook/wiki/Another_page'
+    
+    page = Wiki.find(1).pages.find_by_title('Another_page')
+    assert_equal "edited", page.content.text
+    assert_equal 2, page.content.version
+    assert_equal "my comments", page.content.comments
+  end
+
+  def test_update_page_with_failure
+    @request.session[:user_id] = 2
+    assert_no_difference 'WikiPage.count' do
+      assert_no_difference 'WikiContent.count' do
+        assert_no_difference 'WikiContent::Version.count' do
+          put :update, :project_id => 1,
+            :id => 'Another_page',
+            :content => {
+              :comments => 'a' * 300,  # failure here, comment is too long
+              :text => 'edited',
+              :version => 1
+            }
+          end
+        end
+      end
+    assert_response :success
+    assert_template 'edit'
+    
+    assert_error_tag :descendant => {:content => /Comment is too long/}
+    assert_tag :tag => 'textarea', :attributes => {:id => 'content_text'}, :content => 'edited'
+    assert_tag :tag => 'input', :attributes => {:id => 'content_version', :value => '1'}
+  end
   
   def test_preview
     @request.session[:user_id] = 2
index ade46aa7cc3005bb24b62c85d57da0b41e4d23e1..54681526a22b71e36f4a1ef9be1fcd625f6ae286 100644 (file)
@@ -115,7 +115,7 @@ class ActiveSupport::TestCase
   end
   
   def assert_error_tag(options={})
-    assert_tag({:tag => 'p', :attributes => { :id => 'errorExplanation' }}.merge(options))
+    assert_tag({:attributes => { :id => 'errorExplanation' }}.merge(options))
   end
 
   # Shoulda macros