diff test/functional/wiki_controller_test.rb @ 1526:404aa68d4227

Merge from live branch
author Chris Cannam
date Thu, 11 Sep 2014 12:46:20 +0100
parents dffacf8a6908
children
line wrap: on
line diff
--- a/test/functional/wiki_controller_test.rb	Mon Mar 17 08:57:04 2014 +0000
+++ b/test/functional/wiki_controller_test.rb	Thu Sep 11 12:46:20 2014 +0100
@@ -1,5 +1,5 @@
 # Redmine - project management software
-# Copyright (C) 2006-2012  Jean-Philippe Lang
+# Copyright (C) 2006-2014  Jean-Philippe Lang
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
@@ -16,10 +16,6 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 require File.expand_path('../../test_helper', __FILE__)
-require 'wiki_controller'
-
-# Re-raise errors caught by the controller.
-class WikiController; def rescue_action(e) raise e end; end
 
 class WikiControllerTest < ActionController::TestCase
   fixtures :projects, :users, :roles, :members, :member_roles,
@@ -27,9 +23,6 @@
            :wiki_content_versions, :attachments
 
   def setup
-    @controller = WikiController.new
-    @request    = ActionController::TestRequest.new
-    @response   = ActionController::TestResponse.new
     User.current = nil
   end
 
@@ -60,7 +53,7 @@
     assert_tag :tag => 'h1', :content => /Another page/
     # Included page with an inline image
     assert_tag :tag => 'p', :content => /This is an inline image/
-    assert_tag :tag => 'img', :attributes => { :src => '/attachments/download/3',
+    assert_tag :tag => 'img', :attributes => { :src => '/attachments/download/3/logo.gif',
                                                :alt => 'This is a logo' }
   end
 
@@ -168,6 +161,11 @@
     assert_template 'edit'
   end
 
+  def test_show_specific_version_of_an_unexistent_page_without_edit_right
+    get :show, :project_id => 1, :id => 'Unexistent page', :version => 1
+    assert_response 404
+  end
+
   def test_show_unexistent_page_with_parent_should_preselect_parent
     @request.session[:user_id] = 2
     get :show, :project_id => 1, :id => 'Unexistent page', :parent => 'Another_page'
@@ -184,6 +182,16 @@
     assert_response 302
   end
 
+  def test_show_page_without_content_should_display_the_edit_form
+    @request.session[:user_id] = 2
+    WikiPage.create!(:title => 'NoContent', :wiki => Project.find(1).wiki)
+
+    get :show, :project_id => 1, :id => 'NoContent'
+    assert_response :success
+    assert_template 'edit'
+    assert_select 'textarea[name=?]', 'content[text]'
+  end
+
   def test_create_page
     @request.session[:user_id] = 2
     assert_difference 'WikiPage.count' do
@@ -419,6 +427,19 @@
     assert_equal 2, c.version
   end
 
+  def test_update_page_without_content_should_create_content
+    @request.session[:user_id] = 2
+    page = WikiPage.create!(:title => 'NoContent', :wiki => Project.find(1).wiki)
+
+    assert_no_difference 'WikiPage.count' do
+      assert_difference 'WikiContent.count' do
+        put :update, :project_id => 1, :id => 'NoContent', :content => {:text => 'Some content'}
+        assert_response 302
+      end
+    end
+    assert_equal 'Some content', page.reload.content.text
+  end
+
   def test_update_section
     @request.session[:user_id] = 2
     page = WikiPage.find_by_title('Page_with_sections')
@@ -438,7 +459,7 @@
         end
       end
     end
-    assert_redirected_to '/projects/ecookbook/wiki/Page_with_sections'
+    assert_redirected_to '/projects/ecookbook/wiki/Page_with_sections#section-2'
     assert_equal Redmine::WikiFormatting::Textile::Formatter.new(text).update_section(2, "New section content"), page.reload.content.text
   end
 
@@ -461,7 +482,7 @@
         end
       end
     end
-    assert_redirected_to '/projects/ecookbook/wiki/Page_with_sections'
+    assert_redirected_to '/projects/ecookbook/wiki/Page_with_sections#section-2'
     page.reload
     assert_equal Redmine::WikiFormatting::Textile::Formatter.new(text).update_section(2, "New section content"), page.content.text
     assert_equal 4, page.content.version
@@ -592,7 +613,7 @@
     # Line 5
     assert_tag :tag => 'tr', :child => {
       :tag => 'th', :attributes => {:class => 'line-num'}, :content => '5', :sibling => {
-        :tag => 'td', :attributes => {:class => 'author'}, :content => /redMine Admin/, :sibling => {
+        :tag => 'td', :attributes => {:class => 'author'}, :content => /Redmine Admin/, :sibling => {
           :tag => 'td', :content => /Some updated \[\[documentation\]\] here/
         }
       }
@@ -932,9 +953,12 @@
     @request.session[:user_id] = 2
     assert_difference 'Attachment.count' do
       post :add_attachment, :project_id => 1, :id => 'CookBook_documentation',
-        :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain'), 'description' => 'test file'}}
+           :attachments => {
+             '1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain'),
+                     'description' => 'test file'}
+           }
     end
-    attachment = Attachment.first(:order => 'id DESC')
+    attachment = Attachment.order('id DESC').first
     assert_equal Wiki.find(1).find_page('CookBook_documentation'), attachment.container
   end
 end