##// END OF EJS Templates
Speeds up rendering of the project list for users who belong to hundreds of projects....
Speeds up rendering of the project list for users who belong to hundreds of projects. git-svn-id: http://svn.redmine.org/redmine/trunk@16123 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r15658:e22159a3cb72
r15741:f8df935dcada
Show More
member_test.rb
199 lines | 6.5 KiB | text/x-ruby | RubyLexer
Toshi MARUYAMA
remove trailing white-spaces from test/unit/member_test.rb....
r6633 # Redmine - project management software
Jean-Philippe Lang
Updates copyright for 2016....
r14856 # Copyright (C) 2006-2016 Jean-Philippe Lang
Jean-Philippe Lang
0.3 unstable...
r10 #
# 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/unit/member_test.rb....
r6633 #
Jean-Philippe Lang
0.3 unstable...
r10 # 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/unit/member_test.rb....
r6633 #
Jean-Philippe Lang
0.3 unstable...
r10 # 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
0.3 unstable...
r10
Eric Davis
Upgraded to Rails 2.3.4 (#3597)...
r2773 class MemberTest < ActiveSupport::TestCase
Toshi MARUYAMA
Rails3: replace "all" fixtures at test/unit/member_test.rb...
r7392 fixtures :projects, :trackers, :issue_statuses, :issues,
:enumerations, :users, :issue_categories,
:projects_trackers,
:roles,
:member_roles,
:members,
:enabled_modules,
:groups_users,
:watchers,
:journals, :journal_details,
:messages,
:wikis, :wiki_pages, :wiki_contents, :wiki_content_versions,
:boards
Jean-Philippe Lang
0.3 unstable...
r10
Toshi MARUYAMA
add unit test of error message in case that member role is empty...
r8006 include Redmine::I18n
Jean-Philippe Lang
0.3 unstable...
r10 def setup
@jsmith = Member.find(1)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/member_test.rb....
r6633
Jean-Philippe Lang
Sort members on the DB side....
r15658 def test_sorted_scope_on_project_members
members = Project.find(1).members.sorted.to_a
roles = members.map {|m| m.roles.sort.first}
assert_equal roles, roles.sort
end
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_create
member = Member.new(:project_id => 1, :user_id => 4, :role_ids => [1, 2])
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 assert member.save
member.reload
Toshi MARUYAMA
remove trailing white-spaces from test/unit/member_test.rb....
r6633
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 assert_equal 2, member.roles.size
Jean-Philippe Lang
Adds missing native eol properties....
r2781 assert_equal Role.find(1), member.roles.sort.first
end
Jean-Philippe Lang
0.3 unstable...
r10
Toshi MARUYAMA
remove trailing white-spaces from test/unit/member_test.rb....
r6633 def test_update
Jean-Philippe Lang
Adds missing native eol properties....
r2781 assert_equal "eCookbook", @jsmith.project.name
assert_equal "Manager", @jsmith.roles.first.name
assert_equal "jsmith", @jsmith.user.login
Toshi MARUYAMA
remove trailing white-spaces from test/unit/member_test.rb....
r6633
Jean-Philippe Lang
Adds missing native eol properties....
r2781 @jsmith.mail_notification = !@jsmith.mail_notification
Jean-Philippe Lang
0.3 unstable...
r10 assert @jsmith.save
end
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627
def test_update_roles
assert_equal 1, @jsmith.roles.size
@jsmith.role_ids = [1, 2]
assert @jsmith.save
assert_equal 2, @jsmith.reload.roles.size
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/member_test.rb....
r6633
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_validate
member = Member.new(:project_id => 1, :user_id => 2, :role_ids => [2])
Jean-Philippe Lang
Replaced "can't" with "cannot" in error messages....
r13399 # same use cannot have more than one membership for a project
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 assert !member.save
Toshi MARUYAMA
remove trailing white-spaces from test/unit/member_test.rb....
r6633
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 # must have one role at least
Toshi MARUYAMA
code format clean up MemberTest...
r12121 user = User.new(:firstname => "new1", :lastname => "user1",
:mail => "test_validate@somenet.foo")
Toshi MARUYAMA
fix member validate test of empty role at unit test...
r7926 user.login = "test_validate"
user.password, user.password_confirmation = "password", "password"
assert user.save
Toshi MARUYAMA
add unit test of error message in case that member role is empty...
r8006
set_language_if_valid 'fr'
Toshi MARUYAMA
fix member validate test of empty role at unit test...
r7926 member = Member.new(:project_id => 1, :user_id => user.id, :role_ids => [])
Jean-Philippe Lang
Adds missing native eol properties....
r2781 assert !member.save
Jean-Philippe Lang
Changed assertions to make them work with Rails2/3 ruby1.8/1.9 different behaviours....
r8988 assert_include I18n.translate('activerecord.errors.messages.empty'), member.errors[:role]
Jean-Philippe Lang
Merged rails-4.1 branch (#14534)....
r13100 assert_equal "R\xc3\xb4le doit \xc3\xaatre renseign\xc3\xa9(e)".force_encoding('UTF-8'),
Jean-Philippe Lang
Replace tabs with spaces and remove trailing tabs in several files (#20140)....
r13983 [member.errors.full_messages].flatten.join
Jean-Philippe Lang
Adds missing native eol properties....
r2781 end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/member_test.rb....
r6633
Toshi MARUYAMA
add unit test of member_role validate...
r7947 def test_validate_member_role
Toshi MARUYAMA
code format clean up MemberTest...
r12121 user = User.new(:firstname => "new1", :lastname => "user1",
:mail => "test_validate@somenet.foo")
Toshi MARUYAMA
add unit test of member_role validate...
r7947 user.login = "test_validate_member_role"
user.password, user.password_confirmation = "password", "password"
assert user.save
member = Member.new(:project_id => 1, :user_id => user.id, :role_ids => [5])
assert !member.save
end
Jean-Philippe Lang
Fixed an error when member's project is nil (#17486)....
r12980 def test_set_issue_category_nil_should_handle_nil_values
m = Member.new
assert_nil m.user
assert_nil m.project
assert_nothing_raised do
m.set_issue_category_nil
end
end
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 def test_destroy
Toshi MARUYAMA
add test to check to set issue category assignee nil in destroying member...
r7937 category1 = IssueCategory.find(1)
assert_equal @jsmith.user.id, category1.assigned_to_id
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 assert_difference 'Member.count', -1 do
Jean-Philippe Lang
Adds missing native eol properties....
r2781 assert_difference 'MemberRole.count', -1 do
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 @jsmith.destroy
end
end
Jean-Philippe Lang
Adds missing native eol properties....
r2781 assert_raise(ActiveRecord::RecordNotFound) { Member.find(@jsmith.id) }
Toshi MARUYAMA
add test to check to set issue category assignee nil in destroying member...
r7937 category1.reload
assert_nil category1.assigned_to_id
Jean-Philippe Lang
0.3 unstable...
r10 end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/member_test.rb....
r6633
Jean-Philippe Lang
Fixed that Member#destroy triggers after_destroy callbacks twice (#16795)....
r12865 def test_destroy_should_trigger_callbacks_only_once
Member.class_eval { def destroy_test_callback; end}
Member.after_destroy :destroy_test_callback
m = Member.create!(:user_id => 1, :project_id => 1, :role_ids => [1,3])
Member.any_instance.expects(:destroy_test_callback).once
assert_difference 'Member.count', -1 do
assert_difference 'MemberRole.count', -2 do
m.destroy
end
end
assert m.destroyed?
ensure
Jean-Philippe Lang
Merged rails-4.1 branch (#14534)....
r13100 Member._destroy_callbacks.delete(:destroy_test_callback)
Jean-Philippe Lang
Fixed that Member#destroy triggers after_destroy callbacks twice (#16795)....
r12865 end
Jean-Philippe Lang
Fixed workflow rules when user has duplicated role by inheritance (#19569)....
r13797 def test_roles_should_be_unique
m = Member.new(:user_id => 1, :project_id => 1)
m.member_roles.build(:role_id => 1)
m.member_roles.build(:role_id => 1)
m.save!
m.reload
assert_equal 1, m.roles.count
assert_equal [1], m.roles.ids
end
Jean-Philippe Lang
Fixed potential error when sorting members without role (#10053)....
r8743 def test_sort_without_roles
a = Member.new(:roles => [Role.first])
b = Member.new
assert_equal -1, a <=> b
assert_equal 1, b <=> a
end
def test_sort_without_principal
role = Role.first
a = Member.new(:roles => [role], :principal => User.first)
b = Member.new(:roles => [role])
assert_equal -1, a <=> b
assert_equal 1, b <=> a
end
Jean-Philippe Lang
Ability to limit member management to certain roles (#19707)....
r13911
def test_managed_roles_should_return_all_roles_for_role_with_all_roles_managed
member = Member.new
member.roles << Role.generate!(:permissions => [:manage_members], :all_roles_managed => true)
assert_equal Role.givable.all, member.managed_roles
end
def test_managed_roles_should_return_all_roles_for_admins
member = Member.new(:user => User.find(1))
member.roles << Role.generate!
assert_equal Role.givable.all, member.managed_roles
end
def test_managed_roles_should_return_limited_roles_for_role_without_all_roles_managed
member = Member.new
member.roles << Role.generate!(:permissions => [:manage_members], :all_roles_managed => false, :managed_role_ids => [2, 3])
assert_equal [2, 3], member.managed_roles.map(&:id).sort
end
def test_managed_roles_should_cumulated_managed_roles
member = Member.new
member.roles << Role.generate!(:permissions => [:manage_members], :all_roles_managed => false, :managed_role_ids => [3])
member.roles << Role.generate!(:permissions => [:manage_members], :all_roles_managed => false, :managed_role_ids => [2])
assert_equal [2, 3], member.managed_roles.map(&:id).sort
end
def test_managed_roles_should_return_no_roles_for_role_without_permission
member = Member.new
member.roles << Role.generate!(:all_roles_managed => true)
assert_equal [], member.managed_roles
end
Jean-Philippe Lang
0.3 unstable...
r10 end