##// END OF EJS Templates
Rails3: replace "all" fixtures at test/unit/member_test.rb...
Toshi MARUYAMA -
r7392:94a606838088
parent child
Show More
@@ -1,137 +1,151
1 1 # Redmine - project management software
2 2 # Copyright (C) 2006-2011 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 require File.expand_path('../../test_helper', __FILE__)
19 19
20 20 class MemberTest < ActiveSupport::TestCase
21 fixtures :all
21 fixtures :projects, :trackers, :issue_statuses, :issues,
22 :enumerations, :users, :issue_categories,
23 :projects_trackers,
24 :roles,
25 :member_roles,
26 :members,
27 :enabled_modules,
28 :workflows,
29 :groups_users,
30 :watchers,
31 :journals, :journal_details,
32 :issues, :issue_statuses, :issue_categories,
33 :messages,
34 :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions,
35 :boards
22 36
23 37 def setup
24 38 @jsmith = Member.find(1)
25 39 end
26 40
27 41 def test_create
28 42 member = Member.new(:project_id => 1, :user_id => 4, :role_ids => [1, 2])
29 43 assert member.save
30 44 member.reload
31 45
32 46 assert_equal 2, member.roles.size
33 47 assert_equal Role.find(1), member.roles.sort.first
34 48 end
35 49
36 50 def test_update
37 51 assert_equal "eCookbook", @jsmith.project.name
38 52 assert_equal "Manager", @jsmith.roles.first.name
39 53 assert_equal "jsmith", @jsmith.user.login
40 54
41 55 @jsmith.mail_notification = !@jsmith.mail_notification
42 56 assert @jsmith.save
43 57 end
44 58
45 59 def test_update_roles
46 60 assert_equal 1, @jsmith.roles.size
47 61 @jsmith.role_ids = [1, 2]
48 62 assert @jsmith.save
49 63 assert_equal 2, @jsmith.reload.roles.size
50 64 end
51 65
52 66 def test_validate
53 67 member = Member.new(:project_id => 1, :user_id => 2, :role_ids => [2])
54 68 # same use can't have more than one membership for a project
55 69 assert !member.save
56 70
57 71 member = Member.new(:project_id => 1, :user_id => 2, :role_ids => [])
58 72 # must have one role at least
59 73 assert !member.save
60 74 end
61 75
62 76 def test_destroy
63 77 assert_difference 'Member.count', -1 do
64 78 assert_difference 'MemberRole.count', -1 do
65 79 @jsmith.destroy
66 80 end
67 81 end
68 82
69 83 assert_raise(ActiveRecord::RecordNotFound) { Member.find(@jsmith.id) }
70 84 end
71 85
72 86 context "removing permissions" do
73 87 setup do
74 88 Watcher.delete_all("user_id = 9")
75 89 user = User.find(9)
76 90 # public
77 91 Watcher.create!(:watchable => Issue.find(1), :user => user)
78 92 # private
79 93 Watcher.create!(:watchable => Issue.find(4), :user => user)
80 94 Watcher.create!(:watchable => Message.find(7), :user => user)
81 95 Watcher.create!(:watchable => Wiki.find(2), :user => user)
82 96 Watcher.create!(:watchable => WikiPage.find(3), :user => user)
83 97 end
84 98
85 99 context "of user" do
86 100 setup do
87 101 @member = Member.create!(:project => Project.find(2), :principal => User.find(9), :role_ids => [1, 2])
88 102 end
89 103
90 104 context "by deleting membership" do
91 105 should "prune watchers" do
92 106 assert_difference 'Watcher.count', -4 do
93 107 @member.destroy
94 108 end
95 109 end
96 110 end
97 111
98 112 context "by updating roles" do
99 113 should "prune watchers" do
100 114 Role.find(2).remove_permission! :view_wiki_pages
101 115 member = Member.first(:order => 'id desc')
102 116 assert_difference 'Watcher.count', -2 do
103 117 member.role_ids = [2]
104 118 member.save
105 119 end
106 120 assert !Message.find(7).watched_by?(@user)
107 121 end
108 122 end
109 123 end
110 124
111 125 context "of group" do
112 126 setup do
113 127 group = Group.find(10)
114 128 @member = Member.create!(:project => Project.find(2), :principal => group, :role_ids => [1, 2])
115 129 group.users << User.find(9)
116 130 end
117 131
118 132 context "by deleting membership" do
119 133 should "prune watchers" do
120 134 assert_difference 'Watcher.count', -4 do
121 135 @member.destroy
122 136 end
123 137 end
124 138 end
125 139
126 140 context "by updating roles" do
127 141 should "prune watchers" do
128 142 Role.find(2).remove_permission! :view_wiki_pages
129 143 assert_difference 'Watcher.count', -2 do
130 144 @member.role_ids = [2]
131 145 @member.save
132 146 end
133 147 end
134 148 end
135 149 end
136 150 end
137 151 end
General Comments 0
You need to be logged in to leave comments. Login now