##// END OF EJS Templates
Merged r14179 (#19569)....
Jean-Philippe Lang -
r13828:1fad29bc146b
parent child
Show More
@@ -19,7 +19,7 class Member < ActiveRecord::Base
19 belongs_to :user
19 belongs_to :user
20 belongs_to :principal, :foreign_key => 'user_id'
20 belongs_to :principal, :foreign_key => 'user_id'
21 has_many :member_roles, :dependent => :destroy
21 has_many :member_roles, :dependent => :destroy
22 has_many :roles, :through => :member_roles
22 has_many :roles, lambda {uniq}, :through => :member_roles
23 belongs_to :project
23 belongs_to :project
24
24
25 validates_presence_of :principal, :project
25 validates_presence_of :principal, :project
@@ -958,6 +958,27 class IssueTest < ActiveSupport::TestCase
958 assert_equal %w(done_ratio start_date), issue.read_only_attribute_names(user).sort
958 assert_equal %w(done_ratio start_date), issue.read_only_attribute_names(user).sort
959 end
959 end
960
960
961 def test_workflow_rules_should_work_for_member_with_duplicate_role
962 WorkflowPermission.delete_all
963 WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
964 :role_id => 1, :field_name => 'due_date',
965 :rule => 'required')
966 WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
967 :role_id => 1, :field_name => 'start_date',
968 :rule => 'readonly')
969
970 user = User.generate!
971 m = Member.new(:user_id => user.id, :project_id => 1)
972 m.member_roles.build(:role_id => 1)
973 m.member_roles.build(:role_id => 1)
974 m.save!
975
976 issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1)
977
978 assert_equal %w(due_date), issue.required_attribute_names(user)
979 assert_equal %w(start_date), issue.read_only_attribute_names(user)
980 end
981
961 def test_copy
982 def test_copy
962 issue = Issue.new.copy_from(1)
983 issue = Issue.new.copy_from(1)
963 assert issue.copy?
984 assert issue.copy?
@@ -133,6 +133,16 class MemberTest < ActiveSupport::TestCase
133 Member._destroy_callbacks.delete(:destroy_test_callback)
133 Member._destroy_callbacks.delete(:destroy_test_callback)
134 end
134 end
135
135
136 def test_roles_should_be_unique
137 m = Member.new(:user_id => 1, :project_id => 1)
138 m.member_roles.build(:role_id => 1)
139 m.member_roles.build(:role_id => 1)
140 m.save!
141 m.reload
142 assert_equal 1, m.roles.count
143 assert_equal [1], m.roles.ids
144 end
145
136 def test_sort_without_roles
146 def test_sort_without_roles
137 a = Member.new(:roles => [Role.first])
147 a = Member.new(:roles => [Role.first])
138 b = Member.new
148 b = Member.new
@@ -907,6 +907,18 class UserTest < ActiveSupport::TestCase
907 assert_equal [], roles.map(&:name).sort
907 assert_equal [], roles.map(&:name).sort
908 end
908 end
909
909
910 def test_roles_for_project_should_be_unique
911 m = Member.new(:user_id => 1, :project_id => 1)
912 m.member_roles.build(:role_id => 1)
913 m.member_roles.build(:role_id => 1)
914 m.save!
915
916 user = User.find(1)
917 project = Project.find(1)
918 assert_equal 1, user.roles_for_project(project).size
919 assert_equal [1], user.roles_for_project(project).map(&:id)
920 end
921
910 def test_projects_by_role_for_user_with_role
922 def test_projects_by_role_for_user_with_role
911 user = User.find(2)
923 user = User.find(2)
912 assert_kind_of Hash, user.projects_by_role
924 assert_kind_of Hash, user.projects_by_role
General Comments 0
You need to be logged in to leave comments. Login now