##// END OF EJS Templates
Added request and controller objects to the hooks by default....
Added request and controller objects to the hooks by default. The request and controller objects are now added to all hook contexts by default. This will also make url_for work better in hooks by setting up the default_url_options :host, :port, and :protocol. Finally a new helper method @render_or@ has been added to ViewListener. This will let a hook easily render a partial without a full method definition. Thanks to Thomas Löber for the original patch. #2542 git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2429 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r2315:765f7abc6033
r2368:5b7a5c39a7da
Show More
documents_controller_test.rb
118 lines | 4.2 KiB | text/x-ruby | RubyLexer
/ test / functional / documents_controller_test.rb
Jean-Philippe Lang
Moved ProjectsController#list_documents and add_document to DocumentsController#index and new....
r998 # redMine - project management software
# Copyright (C) 2006-2007 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
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require File.dirname(__FILE__) + '/../test_helper'
require 'documents_controller'
# Re-raise errors caught by the controller.
class DocumentsController; def rescue_action(e) raise e end; end
class DocumentsControllerTest < Test::Unit::TestCase
fixtures :projects, :users, :roles, :members, :enabled_modules, :documents, :enumerations
def setup
@controller = DocumentsController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
User.current = nil
end
Eric Davis
Converted routing and urls to follow the Rails REST convention....
r2315
def test_index_routing
assert_routing(
{:method => :get, :path => '/projects/567/documents'},
:controller => 'documents', :action => 'index', :project_id => '567'
)
end
Jean-Philippe Lang
Moved ProjectsController#list_documents and add_document to DocumentsController#index and new....
r998 def test_index
Jean-Philippe Lang
Fixed: default category ignored when adding a document (#2328)....
r2122 # Sets a default category
e = Enumeration.find_by_name('Technical documentation')
e.update_attributes(:is_default => true)
Jean-Philippe Lang
Moved ProjectsController#list_documents and add_document to DocumentsController#index and new....
r998 get :index, :project_id => 'ecookbook'
assert_response :success
assert_template 'index'
assert_not_nil assigns(:grouped)
Jean-Philippe Lang
Fixed: default category ignored when adding a document (#2328)....
r2122
# Default category selected in the new document form
assert_tag :select, :attributes => {:name => 'document[category_id]'},
:child => {:tag => 'option', :attributes => {:selected => 'selected'},
:content => 'Technical documentation'}
Jean-Philippe Lang
Moved ProjectsController#list_documents and add_document to DocumentsController#index and new....
r998 end
Eric Davis
Converted routing and urls to follow the Rails REST convention....
r2315 def test_new_routing
assert_routing(
{:method => :get, :path => '/projects/567/documents/new'},
:controller => 'documents', :action => 'new', :project_id => '567'
)
assert_recognizes(
{:controller => 'documents', :action => 'new', :project_id => '567'},
{:method => :post, :path => '/projects/567/documents'}
)
end
Jean-Philippe Lang
Moved ProjectsController#list_documents and add_document to DocumentsController#index and new....
r998 def test_new_with_one_attachment
@request.session[:user_id] = 2
Jean-Philippe Lang
File viewer for attached text files....
r1506 set_tmp_attachments_directory
Jean-Philippe Lang
Moved ProjectsController#list_documents and add_document to DocumentsController#index and new....
r998 post :new, :project_id => 'ecookbook',
:document => { :title => 'DocumentsControllerTest#test_post_new',
:description => 'This is a new document',
:category_id => 2},
Jean-Philippe Lang
Adds an optional description to attachments....
r1166 :attachments => {'1' => {'file' => test_uploaded_file('testfile.txt', 'text/plain')}}
Jean-Philippe Lang
Moved ProjectsController#list_documents and add_document to DocumentsController#index and new....
r998
assert_redirected_to 'projects/ecookbook/documents'
document = Document.find_by_title('DocumentsControllerTest#test_post_new')
assert_not_nil document
assert_equal Enumeration.find(2), document.category
assert_equal 1, document.attachments.size
assert_equal 'testfile.txt', document.attachments.first.filename
end
Eric Davis
Converted routing and urls to follow the Rails REST convention....
r2315 def test_edit_routing
assert_routing(
{:method => :get, :path => '/documents/22/edit'},
:controller => 'documents', :action => 'edit', :id => '22'
)
assert_recognizes(#TODO: should be using PUT on document URI
{:controller => 'documents', :action => 'edit', :id => '567'},
{:method => :post, :path => '/documents/567/edit'}
)
end
def test_show_routing
assert_routing(
{:method => :get, :path => '/documents/22'},
:controller => 'documents', :action => 'show', :id => '22'
)
end
def test_destroy_routing
assert_recognizes(#TODO: should be using DELETE on document URI
{:controller => 'documents', :action => 'destroy', :id => '567'},
{:method => :post, :path => '/documents/567/destroy'}
)
end
Jean-Philippe Lang
Moved ProjectsController#list_documents and add_document to DocumentsController#index and new....
r998 def test_destroy
@request.session[:user_id] = 2
post :destroy, :id => 1
assert_redirected_to 'projects/ecookbook/documents'
assert_nil Document.find_by_id(1)
end
end