##// END OF EJS Templates
Fix generation of blank local link when no title is specified in wiki link....
Fix generation of blank local link when no title is specified in wiki link. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7560 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r6508:0a369b73831d
r7440:ac2dbde135f7
Show More
users_controller_test.rb
312 lines | 9.0 KiB | text/x-ruby | RubyLexer
/ test / functional / users_controller_test.rb
Jean-Philippe Lang
Adds a Group filter on the admin users list (#7893)....
r5030 # Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 #
# 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 test/functional/users_controller_test.rb....
r6508 #
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 # 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 test/functional/users_controller_test.rb....
r6508 #
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 # 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
Added some functional tests and a CVS test repository....
r974 require 'users_controller'
# Re-raise errors caught by the controller.
class UsersController; def rescue_action(e) raise e end; end
Eric Davis
Upgraded to Rails 2.3.4 (#3597)...
r2773 class UsersControllerTest < ActionController::TestCase
Jean-Philippe Lang
Fixes UsersControllerTest....
r2431 include Redmine::I18n
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Adds a Group filter on the admin users list (#7893)....
r5030 fixtures :users, :projects, :members, :member_roles, :roles, :auth_sources, :custom_fields, :custom_values, :groups_users
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 def setup
@controller = UsersController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
User.current = nil
@request.session[:user_id] = 1 # admin
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 def test_index
get :index
assert_response :success
Jean-Philippe Lang
Unified UsersController#list and #index....
r2877 assert_template 'index'
Eric Davis
Converted routing and urls to follow the Rails REST convention....
r2315 end
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974
Jean-Philippe Lang
Unified UsersController#list and #index....
r2877 def test_index
get :index
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 assert_response :success
Jean-Philippe Lang
Unified UsersController#list and #index....
r2877 assert_template 'index'
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 assert_not_nil assigns(:users)
# active users only
assert_nil assigns(:users).detect {|u| !u.active?}
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Unified UsersController#list and #index....
r2877 def test_index_with_name_filter
get :index, :name => 'john'
Jean-Philippe Lang
Adds functional test for user search....
r1944 assert_response :success
Jean-Philippe Lang
Unified UsersController#list and #index....
r2877 assert_template 'index'
Jean-Philippe Lang
Adds functional test for user search....
r1944 users = assigns(:users)
assert_not_nil users
assert_equal 1, users.size
assert_equal 'John', users.first.firstname
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Adds a Group filter on the admin users list (#7893)....
r5030 def test_index_with_group_filter
get :index, :group_id => '10'
assert_response :success
assert_template 'index'
users = assigns(:users)
assert users.any?
assert_equal([], (users - Group.find(10).users))
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
AccountController#show (/account/show/:id) moved to UsersController#show (/users/:id)....
r2874 def test_show
@request.session[:user_id] = nil
get :show, :id => 2
assert_response :success
assert_template 'show'
assert_not_nil assigns(:user)
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Adds a "visible" option on User and Project custom fields (#1738)....
r4268 assert_tag 'li', :content => /Phone number/
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Adds a "visible" option on User and Project custom fields (#1738)....
r4268 def test_show_should_not_display_hidden_custom_fields
@request.session[:user_id] = nil
UserCustomField.find_by_name('Phone number').update_attribute :visible, false
get :show, :id => 2
assert_response :success
assert_template 'show'
assert_not_nil assigns(:user)
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Adds a "visible" option on User and Project custom fields (#1738)....
r4268 assert_no_tag 'li', :content => /Phone number/
Jean-Philippe Lang
AccountController#show (/account/show/:id) moved to UsersController#show (/users/:id)....
r2874 end
def test_show_should_not_fail_when_custom_values_are_nil
user = User.find(2)
# Create a custom field to illustrate the issue
custom_field = CustomField.create!(:name => 'Testing', :field_format => 'text')
custom_value = user.custom_values.build(:custom_field => custom_field).save!
get :show, :id => 2
assert_response :success
end
def test_show_inactive
Jean-Philippe Lang
Let administrators see locked user profiles....
r3379 @request.session[:user_id] = nil
Jean-Philippe Lang
AccountController#show (/account/show/:id) moved to UsersController#show (/users/:id)....
r2874 get :show, :id => 5
assert_response 404
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
AccountController#show (/account/show/:id) moved to UsersController#show (/users/:id)....
r2874 def test_show_should_not_reveal_users_with_no_visible_activity_or_project
@request.session[:user_id] = nil
get :show, :id => 9
assert_response 404
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Let administrators see locked user profiles....
r3379 def test_show_inactive_by_admin
@request.session[:user_id] = 1
get :show, :id => 5
assert_response 200
assert_not_nil assigns(:user)
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Baptiste Barth
Show projects depending on their visibility in user's profile. #6100...
r3821 def test_show_displays_memberships_based_on_project_visibility
@request.session[:user_id] = 1
get :show, :id => 2
assert_response :success
memberships = assigns(:memberships)
assert_not_nil memberships
project_ids = memberships.map(&:project_id)
assert project_ids.include?(2) #private project admin can see
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Adds support for requesting information about current user using /users/current (#7141)....
r4430 def test_show_current_should_require_authentication
@request.session[:user_id] = nil
get :show, :id => 'current'
assert_response 302
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Adds support for requesting information about current user using /users/current (#7141)....
r4430 def test_show_current
@request.session[:user_id] = 2
get :show, :id => 'current'
assert_response :success
assert_template 'show'
assert_equal User.find(2), assigns(:user)
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
UsersController tests cleanup....
r4387 def test_new
get :new
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
UsersController tests cleanup....
r4387 assert_response :success
assert_template :new
assert assigns(:user)
Jean-Philippe Lang
Fixes password sending when creating user....
r4386 end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Fixes password sending when creating user....
r4386 def test_create
Setting.bcc_recipients = '1'
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Fixes password sending when creating user....
r4386 assert_difference 'User.count' do
assert_difference 'ActionMailer::Base.deliveries.size' do
post :create,
:user => {
:firstname => 'John',
:lastname => 'Doe',
:login => 'jdoe',
:password => 'secret',
:password_confirmation => 'secret',
:mail => 'jdoe@gmail.com',
:mail_notification => 'none'
},
:send_information => '1'
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Fixes password sending when creating user....
r4386 user = User.first(:order => 'id DESC')
assert_redirected_to :controller => 'users', :action => 'edit', :id => user.id
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Fixes password sending when creating user....
r4386 assert_equal 'John', user.firstname
assert_equal 'Doe', user.lastname
assert_equal 'jdoe', user.login
assert_equal 'jdoe@gmail.com', user.mail
assert_equal 'none', user.mail_notification
assert user.check_password?('secret')
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Fixes password sending when creating user....
r4386 mail = ActionMailer::Base.deliveries.last
assert_not_nil mail
assert_equal [user.mail], mail.bcc
assert mail.body.include?('secret')
Eric Davis
Refactor: split UsersController#add into #add and #create...
r4101 end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
UsersController tests cleanup....
r4387 def test_create_with_failure
assert_no_difference 'User.count' do
post :create, :user => {}
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
UsersController tests cleanup....
r4387 assert_response :success
assert_template 'new'
end
def test_edit
get :edit, :id => 2
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
UsersController tests cleanup....
r4387 assert_response :success
assert_template 'edit'
assert_equal User.find(2), assigns(:user)
end
Eric Davis
Refactor: split UsersController#add into #add and #create...
r4101
Eric Davis
Refactor: split UsersController#edit into #edit and #update...
r4116 def test_update
Jean-Philippe Lang
Ability to send an email with password when changing a user's password (#3566)....
r2708 ActionMailer::Base.deliveries.clear
Jean-Philippe Lang
Moves mail_notification param to user hash param so that it can be set using the User API....
r4382 put :update, :id => 2, :user => {:firstname => 'Changed', :mail_notification => 'only_assigned'}, :pref => {:hide_mail => '1', :comments_sorting => 'desc'}
Eric Davis
Allow admins to edit user's email notifications and preferences. #3503...
r4109
user = User.find(2)
assert_equal 'Changed', user.firstname
Jean-Philippe Lang
Moves mail_notification param to user hash param so that it can be set using the User API....
r4382 assert_equal 'only_assigned', user.mail_notification
Eric Davis
Allow admins to edit user's email notifications and preferences. #3503...
r4109 assert_equal true, user.pref[:hide_mail]
assert_equal 'desc', user.pref[:comments_sorting]
Jean-Philippe Lang
Ability to send an email with password when changing a user's password (#3566)....
r2708 assert ActionMailer::Base.deliveries.empty?
end
Jean-Philippe Lang
UsersController tests cleanup....
r4387
def test_update_with_failure
assert_no_difference 'User.count' do
put :update, :id => 2, :user => {:firstname => ''}
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
UsersController tests cleanup....
r4387 assert_response :success
assert_template 'edit'
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Extracts user groups assignment from controller....
r4385 def test_update_with_group_ids_should_assign_groups
put :update, :id => 2, :user => {:group_ids => ['10']}
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Extracts user groups assignment from controller....
r4385 user = User.find(2)
assert_equal [10], user.group_ids
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Eric Davis
Refactor: split UsersController#edit into #edit and #update...
r4116 def test_update_with_activation_should_send_a_notification
Jean-Philippe Lang
Ability to send an email with password when changing a user's password (#3566)....
r2708 u = User.new(:firstname => 'Foo', :lastname => 'Bar', :mail => 'foo.bar@somenet.foo', :language => 'fr')
u.login = 'foo'
u.status = User::STATUS_REGISTERED
u.save!
ActionMailer::Base.deliveries.clear
Setting.bcc_recipients = '1'
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Eric Davis
Refactor: split UsersController#edit into #edit and #update...
r4116 put :update, :id => u.id, :user => {:status => User::STATUS_ACTIVE}
Jean-Philippe Lang
Ability to send an email with password when changing a user's password (#3566)....
r2708 assert u.reload.active?
mail = ActionMailer::Base.deliveries.last
assert_not_nil mail
assert_equal ['foo.bar@somenet.foo'], mail.bcc
assert mail.body.include?(ll('fr', :notice_account_activated))
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Moves password param to user hash param so that it can be set using the User API....
r4379 def test_update_with_password_change_should_send_a_notification
Jean-Philippe Lang
Ability to send an email with password when changing a user's password (#3566)....
r2708 ActionMailer::Base.deliveries.clear
Setting.bcc_recipients = '1'
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Moves password param to user hash param so that it can be set using the User API....
r4379 put :update, :id => 2, :user => {:password => 'newpass', :password_confirmation => 'newpass'}, :send_information => '1'
Jean-Philippe Lang
Ability to send an email with password when changing a user's password (#3566)....
r2708 u = User.find(2)
Jean-Philippe Lang
Moves password param to user hash param so that it can be set using the User API....
r4379 assert u.check_password?('newpass')
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Ability to send an email with password when changing a user's password (#3566)....
r2708 mail = ActionMailer::Base.deliveries.last
assert_not_nil mail
assert_equal [u.mail], mail.bcc
assert mail.body.include?('newpass')
end
Eric Davis
Allow user password changes when changing to Internal authentication. #6267...
r3952
Eric Davis
Refactor: split UsersController#edit into #edit and #update...
r4116 test "put :update with a password change to an AuthSource user switching to Internal authentication" do
Eric Davis
Allow user password changes when changing to Internal authentication. #6267...
r3952 # Configure as auth source
u = User.find(2)
u.auth_source = AuthSource.find(1)
u.save!
Jean-Philippe Lang
Moves password param to user hash param so that it can be set using the User API....
r4379 put :update, :id => u.id, :user => {:auth_source_id => '', :password => 'newpass'}, :password_confirmation => 'newpass'
Eric Davis
Allow user password changes when changing to Internal authentication. #6267...
r3952
assert_equal nil, u.reload.auth_source
Jean-Philippe Lang
Moves password param to user hash param so that it can be set using the User API....
r4379 assert u.check_password?('newpass')
Eric Davis
Allow user password changes when changing to Internal authentication. #6267...
r3952 end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Enable ability for administrators to delete users (#7296)....
r4609 def test_destroy
assert_difference 'User.count', -1 do
delete :destroy, :id => 2
end
assert_redirected_to '/users'
assert_nil User.find_by_id(2)
end
def test_destroy_should_not_accept_get_requests
assert_no_difference 'User.count' do
get :destroy, :id => 2
end
assert_response 405
end
def test_destroy_should_be_denied_for_non_admin_users
@request.session[:user_id] = 3
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Enable ability for administrators to delete users (#7296)....
r4609 assert_no_difference 'User.count' do
get :destroy, :id => 2
end
assert_response 403
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 def test_edit_membership
post :edit_membership, :id => 2, :membership_id => 1,
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 :membership => { :role_ids => [2]}
Eric Davis
Converted routing and urls to follow the Rails REST convention....
r2315 assert_redirected_to :action => 'edit', :id => '2', :tab => 'memberships'
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 assert_equal [2], Member.find(1).role_ids
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/users_controller_test.rb....
r6508
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 def test_destroy_membership
post :destroy_membership, :id => 2, :membership_id => 1
Eric Davis
Converted routing and urls to follow the Rails REST convention....
r2315 assert_redirected_to :action => 'edit', :id => '2', :tab => 'memberships'
Jean-Philippe Lang
Added some functional tests and a CVS test repository....
r974 assert_nil Member.find_by_id(1)
end
end