comparison test/unit/member_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 e248c7af89ec
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 :roles, 24 :roles,
25 :member_roles, 25 :member_roles,
26 :members, 26 :members,
27 :enabled_modules, 27 :enabled_modules,
28 :workflows,
29 :groups_users, 28 :groups_users,
30 :watchers, 29 :watchers,
31 :journals, :journal_details, 30 :journals, :journal_details,
32 :messages, 31 :messages,
33 :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions, 32 :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions,
120 b = Member.new(:roles => [role]) 119 b = Member.new(:roles => [role])
121 120
122 assert_equal -1, a <=> b 121 assert_equal -1, a <=> b
123 assert_equal 1, b <=> a 122 assert_equal 1, b <=> a
124 end 123 end
125
126 context "removing permissions" do
127 setup do
128 Watcher.delete_all("user_id = 9")
129 user = User.find(9)
130 # public
131 Watcher.create!(:watchable => Issue.find(1), :user => user)
132 # private
133 Watcher.create!(:watchable => Issue.find(4), :user => user)
134 Watcher.create!(:watchable => Message.find(7), :user => user)
135 Watcher.create!(:watchable => Wiki.find(2), :user => user)
136 Watcher.create!(:watchable => WikiPage.find(3), :user => user)
137 end
138
139 context "of user" do
140 setup do
141 @member = Member.create!(:project => Project.find(2), :principal => User.find(9), :role_ids => [1, 2])
142 end
143
144 context "by deleting membership" do
145 should "prune watchers" do
146 assert_difference 'Watcher.count', -4 do
147 @member.destroy
148 end
149 end
150 end
151
152 context "by updating roles" do
153 should "prune watchers" do
154 Role.find(2).remove_permission! :view_wiki_pages
155 member = Member.first(:order => 'id desc')
156 assert_difference 'Watcher.count', -2 do
157 member.role_ids = [2]
158 member.save
159 end
160 assert !Message.find(7).watched_by?(@user)
161 end
162 end
163 end
164
165 context "of group" do
166 setup do
167 group = Group.find(10)
168 @member = Member.create!(:project => Project.find(2), :principal => group, :role_ids => [1, 2])
169 group.users << User.find(9)
170 end
171
172 context "by deleting membership" do
173 should "prune watchers" do
174 assert_difference 'Watcher.count', -4 do
175 @member.destroy
176 end
177 end
178 end
179
180 context "by updating roles" do
181 should "prune watchers" do
182 Role.find(2).remove_permission! :view_wiki_pages
183 assert_difference 'Watcher.count', -2 do
184 @member.role_ids = [2]
185 @member.save
186 end
187 end
188 end
189 end
190 end
191 end 124 end