comparison test/unit/user_test.rb @ 1298:4f746d8966dd redmine_2.3_integration

Merge from redmine-2.3 branch to create new branch redmine-2.3-integration
author Chris Cannam
date Fri, 14 Jun 2013 09:28:30 +0100
parents 622f24f53b42
children
comparison
equal deleted inserted replaced
1297:0a574315af3e 1298:4f746d8966dd
1 # Redmine - project management software 1 # Redmine - project management software
2 # Copyright (C) 2006-2012 Jean-Philippe Lang 2 # Copyright (C) 2006-2013 Jean-Philippe Lang
3 # 3 #
4 # This program is free software; you can redistribute it and/or 4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License 5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2 6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version. 7 # of the License, or (at your option) any later version.
23 :projects_trackers, 23 :projects_trackers,
24 :watchers, 24 :watchers,
25 :issue_categories, :enumerations, :issues, 25 :issue_categories, :enumerations, :issues,
26 :journals, :journal_details, 26 :journals, :journal_details,
27 :groups_users, 27 :groups_users,
28 :enabled_modules, 28 :enabled_modules
29 :workflows
30 29
31 def setup 30 def setup
32 @admin = User.find(1) 31 @admin = User.find(1)
33 @jsmith = User.find(2) 32 @jsmith = User.find(2)
34 @dlopper = User.find(3) 33 @dlopper = User.find(3)
34 end
35
36 def test_sorted_scope_should_sort_user_by_display_name
37 assert_equal User.all.map(&:name).map(&:downcase).sort, User.sorted.all.map(&:name).map(&:downcase)
35 end 38 end
36 39
37 def test_generate 40 def test_generate
38 User.generate!(:firstname => 'Testing connection') 41 User.generate!(:firstname => 'Testing connection')
39 User.generate!(:firstname => 'Testing connection') 42 User.generate!(:firstname => 'Testing connection')
722 user.destroy 725 user.destroy
723 726
724 assert_equal true, User.default_admin_account_changed? 727 assert_equal true, User.default_admin_account_changed?
725 end 728 end
726 729
730 def test_membership_with_project_should_return_membership
731 project = Project.find(1)
732
733 membership = @jsmith.membership(project)
734 assert_kind_of Member, membership
735 assert_equal @jsmith, membership.user
736 assert_equal project, membership.project
737 end
738
739 def test_membership_with_project_id_should_return_membership
740 project = Project.find(1)
741
742 membership = @jsmith.membership(1)
743 assert_kind_of Member, membership
744 assert_equal @jsmith, membership.user
745 assert_equal project, membership.project
746 end
747
748 def test_membership_for_non_member_should_return_nil
749 project = Project.find(1)
750
751 user = User.generate!
752 membership = user.membership(1)
753 assert_nil membership
754 end
755
727 def test_roles_for_project 756 def test_roles_for_project
728 # user with a role 757 # user with a role
729 roles = @jsmith.roles_for_project(Project.find(1)) 758 roles = @jsmith.roles_for_project(Project.find(1))
730 assert_kind_of Role, roles.first 759 assert_kind_of Role, roles.first
731 assert_equal "Manager", roles.first.name 760 assert_equal "Manager", roles.first.name
899 end 928 end
900 929
901 should "authorize nearly everything for admin users" do 930 should "authorize nearly everything for admin users" do
902 project = Project.find(1) 931 project = Project.find(1)
903 assert ! @admin.member_of?(project) 932 assert ! @admin.member_of?(project)
904 %w(edit_issues delete_issues manage_news manage_documents manage_wiki).each do |p| 933 %w(edit_issues delete_issues manage_news add_documents manage_wiki).each do |p|
905 assert_equal true, @admin.allowed_to?(p.to_sym, project) 934 assert_equal true, @admin.allowed_to?(p.to_sym, project)
906 end 935 end
907 end 936 end
908 937
909 should "authorize normal users depending on their roles" do 938 should "authorize normal users depending on their roles" do
1012 @user = User.generate!(:mail_notification => 'selected') 1041 @user = User.generate!(:mail_notification => 'selected')
1013 Member.create!(:user => @user, :project => @project, :role_ids => [1]) 1042 Member.create!(:user => @user, :project => @project, :role_ids => [1])
1014 assert ! @user.notify_about?(@issue) 1043 assert ! @user.notify_about?(@issue)
1015 end 1044 end
1016 end 1045 end
1017 1046 end
1018 context "other events" do 1047
1019 should 'be added and tested' 1048 def test_notify_about_news
1049 user = User.generate!
1050 news = News.new
1051
1052 User::MAIL_NOTIFICATION_OPTIONS.map(&:first).each do |option|
1053 user.mail_notification = option
1054 assert_equal (option != 'none'), user.notify_about?(news)
1020 end 1055 end
1021 end 1056 end
1022 1057
1023 def test_salt_unsalted_passwords 1058 def test_salt_unsalted_passwords
1024 # Restore a user with an unsalted password 1059 # Restore a user with an unsalted password