Mercurial > hg > soundsoftware-site
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 |