##// END OF EJS Templates
Upgrade to Rails 3.2.8 (#11758)....
Upgrade to Rails 3.2.8 (#11758). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10275 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r10092:265baa1b2c5d
r10092:265baa1b2c5d
Show More
projects_controller_test.rb
574 lines | 19.6 KiB | text/x-ruby | RubyLexer
/ test / functional / projects_controller_test.rb
Jean-Philippe Lang
Adds missing native eol properties....
r2781 # Redmine - project management software
Jean-Philippe Lang
Copyright update....
r9453 # Copyright (C) 2006-2012 Jean-Philippe Lang
Jean-Philippe Lang
Adds missing native eol properties....
r2781 #
# 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.
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681 #
Jean-Philippe Lang
Adds missing native eol properties....
r2781 # 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.
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681 #
Jean-Philippe Lang
Adds missing native eol properties....
r2781 # 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.
Jean-Baptiste Barth
Use absolute paths in test/**/* requires for Ruby 1.9.2 compatibility. #4050...
r4395 require File.expand_path('../../test_helper', __FILE__)
Jean-Philippe Lang
Adds missing native eol properties....
r2781 require 'projects_controller'
# Re-raise errors caught by the controller.
class ProjectsController; def rescue_action(e) raise e end; end
class ProjectsControllerTest < ActionController::TestCase
fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
:trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages,
Eric Davis
When a specific TimeEntryActivity are change, associated TimeEntries will be...
r2836 :attachments, :custom_fields, :custom_values, :time_entries
Jean-Philippe Lang
Adds missing native eol properties....
r2781
def setup
@controller = ProjectsController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
@request.session[:user_id] = nil
Setting.default_language = 'en'
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_index
get :index
assert_response :success
assert_template 'index'
assert_not_nil assigns(:projects)
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds missing native eol properties....
r2781 assert_tag :ul, :child => {:tag => 'li',
:descendant => {:tag => 'a', :content => 'eCookbook'},
:child => { :tag => 'ul',
:descendant => { :tag => 'a',
:content => 'Child of private child'
}
}
}
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds missing native eol properties....
r2781 assert_no_tag :a, :content => /Private child of eCookbook/
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_index_atom
get :index, :format => 'atom'
assert_response :success
Jean-Philippe Lang
Rails 3.1 compatibility....
r8962 assert_template 'common/feed'
Jean-Philippe Lang
Adds missing native eol properties....
r2781 assert_select 'feed>title', :text => 'Redmine: Latest projects'
Jean-Philippe Lang
Removed calls to deprecated Project.visible_by method....
r5208 assert_select 'feed>entry', :count => Project.count(:conditions => Project.visible_condition(User.current))
Jean-Philippe Lang
Adds missing native eol properties....
r2781 end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Eric Davis
Add a link to the cross project time entries page to /projects. #4935...
r3688 context "#index" do
context "by non-admin user with view_time_entries permission" do
setup do
@request.session[:user_id] = 3
end
should "show overall spent time link" do
get :index
assert_template 'index'
assert_tag :a, :attributes => {:href => '/time_entries'}
end
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Eric Davis
Add a link to the cross project time entries page to /projects. #4935...
r3688 context "by non-admin user without view_time_entries permission" do
setup do
Role.find(2).remove_permission! :view_time_entries
Role.non_member.remove_permission! :view_time_entries
Role.anonymous.remove_permission! :view_time_entries
@request.session[:user_id] = 3
end
should "not show overall spent time link" do
get :index
assert_template 'index'
assert_no_tag :a, :attributes => {:href => '/time_entries'}
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681 end
Eric Davis
Add a link to the cross project time entries page to /projects. #4935...
r3688 end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Eric Davis
Refactor: rename method ProjectsController#add to ProjectsController#new...
r3955 context "#new" do
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 context "by admin user" do
setup do
@request.session[:user_id] = 1
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 should "accept get" do
Eric Davis
Refactor: rename method ProjectsController#add to ProjectsController#new...
r3955 get :new
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 assert_response :success
Eric Davis
Refactor: rename method ProjectsController#add to ProjectsController#new...
r3955 assert_template 'new'
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 end
Eric Davis
Refactor: split ProjectsController#add into #add (GET) and #create (POST)....
r3953
end
context "by non-admin user with add_project permission" do
setup do
Role.non_member.add_permission! :add_project
@request.session[:user_id] = 9
end
should "accept get" do
Eric Davis
Refactor: rename method ProjectsController#add to ProjectsController#new...
r3955 get :new
Eric Davis
Refactor: split ProjectsController#add into #add (GET) and #create (POST)....
r3953 assert_response :success
Eric Davis
Refactor: rename method ProjectsController#add to ProjectsController#new...
r3955 assert_template 'new'
Eric Davis
Refactor: split ProjectsController#add into #add (GET) and #create (POST)....
r3953 assert_no_tag :select, :attributes => {:name => 'project[parent_id]'}
end
end
context "by non-admin user with add_subprojects permission" do
setup do
Role.find(1).remove_permission! :add_project
Role.find(1).add_permission! :add_subprojects
@request.session[:user_id] = 2
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Eric Davis
Refactor: split ProjectsController#add into #add (GET) and #create (POST)....
r3953 should "accept get" do
Eric Davis
Refactor: rename method ProjectsController#add to ProjectsController#new...
r3955 get :new, :parent_id => 'ecookbook'
Eric Davis
Refactor: split ProjectsController#add into #add (GET) and #create (POST)....
r3953 assert_response :success
Eric Davis
Refactor: rename method ProjectsController#add to ProjectsController#new...
r3955 assert_template 'new'
Eric Davis
Refactor: split ProjectsController#add into #add (GET) and #create (POST)....
r3953 # parent project selected
assert_tag :select, :attributes => {:name => 'project[parent_id]'},
:child => {:tag => 'option', :attributes => {:value => '1', :selected => 'selected'}}
# no empty value
assert_no_tag :select, :attributes => {:name => 'project[parent_id]'},
:child => {:tag => 'option', :attributes => {:value => ''}}
end
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Eric Davis
Refactor: split ProjectsController#add into #add (GET) and #create (POST)....
r3953 end
context "POST :create" do
context "by admin user" do
setup do
@request.session[:user_id] = 1
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Eric Davis
Refactor: split ProjectsController#add into #add (GET) and #create (POST)....
r3953 should "create a new project" do
Jean-Philippe Lang
Declare safe attributes for User and Projects models....
r4378 post :create,
:project => {
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681 :name => "blog",
Jean-Philippe Lang
Declare safe attributes for User and Projects models....
r4378 :description => "weblog",
:homepage => 'http://weblog',
:identifier => "blog",
:is_public => 1,
:custom_field_values => { '3' => 'Beta' },
Jean-Philippe Lang
Fixed: r4492 breaks the ability to select issue custom fields available for projects issues (#7121)....
r4415 :tracker_ids => ['1', '3'],
# an issue custom field that is not for all project
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 :issue_custom_field_ids => ['9'],
:enabled_module_names => ['issue_tracking', 'news', 'repository']
Jean-Philippe Lang
Declare safe attributes for User and Projects models....
r4378 }
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 assert_redirected_to '/projects/blog/settings'
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 project = Project.find_by_name('blog')
assert_kind_of Project, project
Jean-Philippe Lang
Declare safe attributes for User and Projects models....
r4378 assert project.active?
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681 assert_equal 'weblog', project.description
Jean-Philippe Lang
Declare safe attributes for User and Projects models....
r4378 assert_equal 'http://weblog', project.homepage
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 assert_equal true, project.is_public?
assert_nil project.parent
Jean-Philippe Lang
Declare safe attributes for User and Projects models....
r4378 assert_equal 'Beta', project.custom_value_for(3).value
assert_equal [1, 3], project.trackers.map(&:id).sort
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 assert_equal ['issue_tracking', 'news', 'repository'], project.enabled_module_names.sort
Jean-Philippe Lang
Fixed: r4492 breaks the ability to select issue custom fields available for projects issues (#7121)....
r4415 assert project.issue_custom_fields.include?(IssueCustomField.find(9))
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Eric Davis
Refactor: split ProjectsController#add into #add (GET) and #create (POST)....
r3953 should "create a new subproject" do
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681 post :create, :project => { :name => "blog",
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 :description => "weblog",
:identifier => "blog",
:is_public => 1,
:custom_field_values => { '3' => 'Beta' },
:parent_id => 1
}
assert_redirected_to '/projects/blog/settings'
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 project = Project.find_by_name('blog')
assert_kind_of Project, project
assert_equal Project.find(1), project.parent
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/projects_controller_test.rb....
r6797
Jean-Philippe Lang
Adds a 'Create and continue' button on project form....
r6183 should "continue" do
assert_difference 'Project.count' do
post :create, :project => {:name => "blog", :identifier => "blog"}, :continue => 'Create and continue'
end
assert_redirected_to '/projects/new?'
end
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 context "by non-admin user with add_project permission" do
setup do
Role.non_member.add_permission! :add_project
@request.session[:user_id] = 9
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Eric Davis
Refactor: split ProjectsController#add into #add (GET) and #create (POST)....
r3953 should "accept create a Project" do
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681 post :create, :project => { :name => "blog",
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 :description => "weblog",
:identifier => "blog",
:is_public => 1,
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 :custom_field_values => { '3' => 'Beta' },
:tracker_ids => ['1', '3'],
:enabled_module_names => ['issue_tracking', 'news', 'repository']
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 }
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 assert_redirected_to '/projects/blog/settings'
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 project = Project.find_by_name('blog')
assert_kind_of Project, project
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681 assert_equal 'weblog', project.description
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 assert_equal true, project.is_public?
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 assert_equal [1, 3], project.trackers.map(&:id).sort
assert_equal ['issue_tracking', 'news', 'repository'], project.enabled_module_names.sort
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 # User should be added as a project member
assert User.find(9).member_of?(project)
assert_equal 1, project.members.size
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 should "fail with parent_id" do
assert_no_difference 'Project.count' do
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681 post :create, :project => { :name => "blog",
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 :description => "weblog",
:identifier => "blog",
:is_public => 1,
:custom_field_values => { '3' => 'Beta' },
:parent_id => 1
}
end
assert_response :success
project = assigns(:project)
assert_kind_of Project, project
Toshi MARUYAMA
Rails3: test: replace deprecated errors.on at "fail with parent_id" of functional/projects_controller_test.rb...
r7493 assert_not_nil project.errors[:parent_id]
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 end
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 context "by non-admin user with add_subprojects permission" do
setup do
Role.find(1).remove_permission! :add_project
Role.find(1).add_permission! :add_subprojects
@request.session[:user_id] = 2
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Eric Davis
Refactor: split ProjectsController#add into #add (GET) and #create (POST)....
r3953 should "create a project with a parent_id" do
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681 post :create, :project => { :name => "blog",
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 :description => "weblog",
:identifier => "blog",
:is_public => 1,
:custom_field_values => { '3' => 'Beta' },
:parent_id => 1
}
assert_redirected_to '/projects/blog/settings'
project = Project.find_by_name('blog')
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 should "fail without parent_id" do
assert_no_difference 'Project.count' do
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681 post :create, :project => { :name => "blog",
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 :description => "weblog",
:identifier => "blog",
:is_public => 1,
:custom_field_values => { '3' => 'Beta' }
}
end
assert_response :success
project = assigns(:project)
assert_kind_of Project, project
Toshi MARUYAMA
Rails3: test: replace deprecated errors.on at "fail without parent_id" of functional/projects_controller_test.rb...
r7494 assert_not_nil project.errors[:parent_id]
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 should "fail with unauthorized parent_id" do
assert !User.find(2).member_of?(Project.find(6))
assert_no_difference 'Project.count' do
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681 post :create, :project => { :name => "blog",
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 :description => "weblog",
:identifier => "blog",
:is_public => 1,
:custom_field_values => { '3' => 'Beta' },
:parent_id => 6
}
end
assert_response :success
project = assigns(:project)
assert_kind_of Project, project
Toshi MARUYAMA
Rails3: test: replace deprecated errors.on at "fail with unauthorized parent_id" of functional/projects_controller_test.rb...
r7495 assert_not_nil project.errors[:parent_id]
Jean-Philippe Lang
Adds a 'Add subprojects' permission....
r3124 end
end
Jean-Philippe Lang
Adds missing native eol properties....
r2781 end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Modules selection lost on project form after validation failure (#8012)....
r5145 def test_create_should_preserve_modules_on_validation_failure
with_settings :default_projects_modules => ['issue_tracking', 'repository'] do
@request.session[:user_id] = 1
assert_no_difference 'Project.count' do
post :create, :project => {
:name => "blog",
:identifier => "",
:enabled_module_names => %w(issue_tracking news)
}
end
assert_response :success
project = assigns(:project)
assert_equal %w(issue_tracking news), project.enabled_module_names.sort
end
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_show_by_id
get :show, :id => 1
assert_response :success
assert_template 'show'
assert_not_nil assigns(:project)
end
def test_show_by_identifier
get :show, :id => 'ecookbook'
assert_response :success
assert_template 'show'
assert_not_nil assigns(:project)
assert_equal Project.find_by_identifier('ecookbook'), assigns(:project)
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds a "visible" option on User and Project custom fields (#1738)....
r4268 assert_tag 'li', :content => /Development status/
end
def test_show_should_not_display_hidden_custom_fields
ProjectCustomField.find_by_name('Development status').update_attribute :visible, false
get :show, :id => 'ecookbook'
assert_response :success
assert_template 'show'
assert_not_nil assigns(:project)
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds a "visible" option on User and Project custom fields (#1738)....
r4268 assert_no_tag 'li', :content => /Development status/
Jean-Philippe Lang
Adds missing native eol properties....
r2781 end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_show_should_not_fail_when_custom_values_are_nil
project = Project.find_by_identifier('ecookbook')
project.custom_values.first.update_attribute(:value, nil)
get :show, :id => 'ecookbook'
assert_response :success
assert_template 'show'
assert_not_nil assigns(:project)
assert_equal Project.find_by_identifier('ecookbook'), assigns(:project)
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Improved error message when trying to access an archived project (#2995)....
r4171 def show_archived_project_should_be_denied
project = Project.find_by_identifier('ecookbook')
project.archive!
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Improved error message when trying to access an archived project (#2995)....
r4171 get :show, :id => 'ecookbook'
assert_response 403
assert_nil assigns(:project)
assert_tag :tag => 'p', :content => /archived/
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_private_subprojects_hidden
get :show, :id => 'ecookbook'
assert_response :success
assert_template 'show'
assert_no_tag :tag => 'a', :content => /Private child/
end
def test_private_subprojects_visible
@request.session[:user_id] = 2 # manager who is a member of the private subproject
get :show, :id => 'ecookbook'
assert_response :success
assert_template 'show'
assert_tag :tag => 'a', :content => /Private child/
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_settings
@request.session[:user_id] = 2 # manager
get :settings, :id => 1
assert_response :success
assert_template 'settings'
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Ability to close projects (read-only) (#3640)....
r9700 def test_settings_should_be_denied_for_member_on_closed_project
Project.find(1).close
@request.session[:user_id] = 2 # manager
get :settings, :id => 1
assert_response 403
end
def test_settings_should_be_denied_for_anonymous_on_closed_project
Project.find(1).close
get :settings, :id => 1
assert_response 302
end
Eric Davis
Refactor: split method ProjectsController#edit to ProjectsController#update....
r3956 def test_update
Jean-Philippe Lang
Adds missing native eol properties....
r2781 @request.session[:user_id] = 2 # manager
Eric Davis
Refactor: split method ProjectsController#edit to ProjectsController#update....
r3956 post :update, :id => 1, :project => {:name => 'Test changed name',
Jean-Philippe Lang
Adds missing native eol properties....
r2781 :issue_custom_field_ids => ['']}
Jean-Philippe Lang
Adds leading slash to all assert_redirected_to arguments (#6887)....
r4293 assert_redirected_to '/projects/ecookbook/settings'
Jean-Philippe Lang
Adds missing native eol properties....
r2781 project = Project.find(1)
assert_equal 'Test changed name', project.name
end
Jean-Philippe Lang
Changes ProjectsController#modules param name and add tests....
r4527
Jean-Philippe Lang
Adds functional tests....
r8825 def test_update_with_failure
@request.session[:user_id] = 2 # manager
post :update, :id => 1, :project => {:name => ''}
assert_response :success
assert_template 'settings'
Jean-Philippe Lang
Upgrade to Rails 3.2.8 (#11758)....
r10092 assert_error_tag :content => /name can&#x27;t be blank/i
Jean-Philippe Lang
Adds functional tests....
r8825 end
Jean-Philippe Lang
Ability to close projects (read-only) (#3640)....
r9700 def test_update_should_be_denied_for_member_on_closed_project
Project.find(1).close
@request.session[:user_id] = 2 # manager
post :update, :id => 1, :project => {:name => 'Closed'}
assert_response 403
assert_equal 'eCookbook', Project.find(1).name
end
def test_update_should_be_denied_for_anonymous_on_closed_project
Project.find(1).close
post :update, :id => 1, :project => {:name => 'Closed'}
assert_response 302
assert_equal 'eCookbook', Project.find(1).name
end
Jean-Philippe Lang
Changes ProjectsController#modules param name and add tests....
r4527 def test_modules
@request.session[:user_id] = 2
Project.find(1).enabled_module_names = ['issue_tracking', 'news']
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Changes ProjectsController#modules param name and add tests....
r4527 post :modules, :id => 1, :enabled_module_names => ['issue_tracking', 'repository', 'documents']
assert_redirected_to '/projects/ecookbook/settings/modules'
assert_equal ['documents', 'issue_tracking', 'repository'], Project.find(1).enabled_module_names.sort
end
Jean-Philippe Lang
Changed ProjectsController#destroy to DELETE only....
r8032 def test_destroy_without_confirmation
Jean-Philippe Lang
Adds missing native eol properties....
r2781 @request.session[:user_id] = 1 # admin
Jean-Philippe Lang
Changed ProjectsController#destroy to DELETE only....
r8032 delete :destroy, :id => 1
Jean-Philippe Lang
Adds missing native eol properties....
r2781 assert_response :success
assert_template 'destroy'
assert_not_nil Project.find_by_id(1)
Toshi MARUYAMA
fix confirmation page has broken HTML when a project folding sub project is deleted (#11511)...
r9900 assert_tag :tag => 'strong',
:content => ['Private child of eCookbook',
'Child of private child, eCookbook Subproject 1',
'eCookbook Subproject 2'].join(', ')
Jean-Philippe Lang
Adds missing native eol properties....
r2781 end
Jean-Philippe Lang
Changed ProjectsController#destroy to DELETE only....
r8032 def test_destroy
Jean-Philippe Lang
Adds missing native eol properties....
r2781 @request.session[:user_id] = 1 # admin
Jean-Philippe Lang
Changed ProjectsController#destroy to DELETE only....
r8032 delete :destroy, :id => 1, :confirm => 1
Jean-Philippe Lang
Adds leading slash to all assert_redirected_to arguments (#6887)....
r4293 assert_redirected_to '/admin/projects'
Jean-Philippe Lang
Adds missing native eol properties....
r2781 assert_nil Project.find_by_id(1)
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_archive
@request.session[:user_id] = 1 # admin
post :archive, :id => 1
Jean-Philippe Lang
Adds leading slash to all assert_redirected_to arguments (#6887)....
r4293 assert_redirected_to '/admin/projects'
Jean-Philippe Lang
Adds missing native eol properties....
r2781 assert !Project.find(1).active?
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds functional tests....
r8825 def test_archive_with_failure
@request.session[:user_id] = 1
Project.any_instance.stubs(:archive).returns(false)
post :archive, :id => 1
assert_redirected_to '/admin/projects'
assert_match /project cannot be archived/i, flash[:error]
end
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_unarchive
@request.session[:user_id] = 1 # admin
Project.find(1).archive
post :unarchive, :id => 1
Jean-Philippe Lang
Adds leading slash to all assert_redirected_to arguments (#6887)....
r4293 assert_redirected_to '/admin/projects'
Jean-Philippe Lang
Adds missing native eol properties....
r2781 assert Project.find(1).active?
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Ability to close projects (read-only) (#3640)....
r9700 def test_close
@request.session[:user_id] = 2
post :close, :id => 1
assert_redirected_to '/projects/ecookbook'
assert_equal Project::STATUS_CLOSED, Project.find(1).status
end
def test_reopen
Project.find(1).close
@request.session[:user_id] = 2
post :reopen, :id => 1
assert_redirected_to '/projects/ecookbook'
assert Project.find(1).active?
end
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_project_breadcrumbs_should_be_limited_to_3_ancestors
CustomField.delete_all
parent = nil
6.times do |i|
p = Project.create!(:name => "Breadcrumbs #{i}", :identifier => "breadcrumbs-#{i}")
p.set_parent!(parent)
get :show, :id => p
assert_tag :h1, :parent => { :attributes => {:id => 'header'}},
:children => { :count => [i, 3].min,
:only => { :tag => 'a' } }
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds missing native eol properties....
r2781 parent = p
end
end
Jean-Philippe Lang
Fixed: selected modules are not activated when copying a project (#8244)....
r5461 def test_get_copy
Jean-Philippe Lang
Adds missing native eol properties....
r2781 @request.session[:user_id] = 1 # admin
get :copy, :id => 1
assert_response :success
assert_template 'copy'
assert assigns(:project)
assert_equal Project.find(1).description, assigns(:project).description
assert_nil assigns(:project).id
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Fixed: selected modules are not activated when copying a project (#8244)....
r5461 assert_tag :tag => 'input',
:attributes => {:name => 'project[enabled_module_names][]', :value => 'issue_tracking'}
Jean-Philippe Lang
Adds missing native eol properties....
r2781 end
Jean-Philippe Lang
Adds functional test for project copy....
r5235 def test_post_copy_should_copy_requested_items
@request.session[:user_id] = 1 # admin
CustomField.delete_all
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds functional test for project copy....
r5235 assert_difference 'Project.count' do
post :copy, :id => 1,
:project => {
:name => 'Copy',
:identifier => 'unique-copy',
:tracker_ids => ['1', '2', '3', ''],
Jean-Philippe Lang
Fixed: selected modules are not activated when copying a project (#8244)....
r5461 :enabled_module_names => %w(issue_tracking time_tracking)
Jean-Philippe Lang
Adds functional test for project copy....
r5235 },
:only => %w(issues versions)
Eric Davis
Redirect to project settings after copying a project. #6443...
r4071 end
Jean-Philippe Lang
Adds functional test for project copy....
r5235 project = Project.find('unique-copy')
source = Project.find(1)
Jean-Philippe Lang
Fixed: selected modules are not activated when copying a project (#8244)....
r5461 assert_equal %w(issue_tracking time_tracking), project.enabled_module_names.sort
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds functional test for project copy....
r5235 assert_equal source.versions.count, project.versions.count, "All versions were not copied"
# issues assigned to a closed version won't be copied
Toshi MARUYAMA
fix functional projects controller test fails in Ruby 1.8.6....
r5357 assert_equal source.issues.select {|i| i.fixed_version.nil? || i.fixed_version.open?}.size,
project.issues.count, "All issues were not copied"
Jean-Philippe Lang
Adds functional test for project copy....
r5235 assert_equal 0, project.members.count
end
def test_post_copy_should_redirect_to_settings_when_successful
@request.session[:user_id] = 1 # admin
post :copy, :id => 1, :project => {:name => 'Copy', :identifier => 'unique-copy'}
assert_response :redirect
assert_redirected_to :controller => 'projects', :action => 'settings', :id => 'unique-copy'
Eric Davis
Redirect to project settings after copying a project. #6443...
r4071 end
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_jump_should_redirect_to_active_tab
get :show, :id => 1, :jump => 'issues'
Jean-Philippe Lang
Adds leading slash to all assert_redirected_to arguments (#6887)....
r4293 assert_redirected_to '/projects/ecookbook/issues'
Jean-Philippe Lang
Adds missing native eol properties....
r2781 end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_jump_should_not_redirect_to_inactive_tab
get :show, :id => 3, :jump => 'documents'
assert_response :success
assert_template 'show'
end
Toshi MARUYAMA
remove trailing white-spaces from functional projects controller test....
r5681
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_jump_should_not_redirect_to_unknown_tab
get :show, :id => 3, :jump => 'foobar'
assert_response :success
assert_template 'show'
end
end