##// END OF EJS Templates
Merged r5091 from trunk....
Merged r5091 from trunk. scm: mercurial: add :order => 'id DESC' explicitly for MySQL test fails. Because :order => 'id DESC' is defined at 'has_many', there is no need to set 'order'. But, MySQL test fails. Sqlite3 and PostgreSQL pass. Is this MySQL bug? MySQL svn trunk test on Redmine CI server fails. But, svn 1.1-stable passes. If this is MySQL bug, this effects 1.1-stable, too. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5092 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r4395:17f86d964fe0
r4972:891ed84fe39e
Show More
member_test.rb
137 lines | 4.1 KiB | text/x-ruby | RubyLexer
Jean-Philippe Lang
0.3 unstable...
r10 # redMine - project management software
# Copyright (C) 2006 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Jean-Baptiste Barth
Use absolute paths in test/**/* requires for Ruby 1.9.2 compatibility. #4050...
r4395 require File.expand_path('../../test_helper', __FILE__)
Jean-Philippe Lang
0.3 unstable...
r10
Eric Davis
Upgraded to Rails 2.3.4 (#3597)...
r2773 class MemberTest < ActiveSupport::TestCase
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 fixtures :all
Jean-Philippe Lang
0.3 unstable...
r10
def setup
@jsmith = Member.find(1)
end
Jean-Philippe Lang
Adds missing native eol properties....
r2781 def test_create
member = Member.new(:project_id => 1, :user_id => 4, :role_ids => [1, 2])
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 assert member.save
member.reload
assert_equal 2, member.roles.size
Jean-Philippe Lang
Adds missing native eol properties....
r2781 assert_equal Role.find(1), member.roles.sort.first
end
Jean-Philippe Lang
0.3 unstable...
r10
def test_update
Jean-Philippe Lang
Adds missing native eol properties....
r2781 assert_equal "eCookbook", @jsmith.project.name
assert_equal "Manager", @jsmith.roles.first.name
assert_equal "jsmith", @jsmith.user.login
@jsmith.mail_notification = !@jsmith.mail_notification
Jean-Philippe Lang
0.3 unstable...
r10 assert @jsmith.save
end
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627
def test_update_roles
assert_equal 1, @jsmith.roles.size
@jsmith.role_ids = [1, 2]
assert @jsmith.save
assert_equal 2, @jsmith.reload.roles.size
end
Jean-Philippe Lang
Adds missing native eol properties....
r2781
def test_validate
member = Member.new(:project_id => 1, :user_id => 2, :role_ids => [2])
# same use can't have more than one membership for a project
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 assert !member.save
member = Member.new(:project_id => 1, :user_id => 2, :role_ids => [])
# must have one role at least
Jean-Philippe Lang
Adds missing native eol properties....
r2781 assert !member.save
end
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 def test_destroy
assert_difference 'Member.count', -1 do
Jean-Philippe Lang
Adds missing native eol properties....
r2781 assert_difference 'MemberRole.count', -1 do
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 @jsmith.destroy
end
end
Jean-Philippe Lang
Adds missing native eol properties....
r2781
assert_raise(ActiveRecord::RecordNotFound) { Member.find(@jsmith.id) }
Jean-Philippe Lang
0.3 unstable...
r10 end
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053
context "removing permissions" do
setup do
Watcher.delete_all("user_id = 9")
user = User.find(9)
# public
Jean-Philippe Lang
Fixes an object instantiation in tests....
r3586 Watcher.create!(:watchable => Issue.find(1), :user => user)
Jean-Philippe Lang
Makes user unwatch what he can no longer view after its permissions have changed (#3589)....
r3053 # private
Watcher.create!(:watchable => Issue.find(4), :user => user)
Watcher.create!(:watchable => Message.find(7), :user => user)
Watcher.create!(:watchable => Wiki.find(2), :user => user)
Watcher.create!(:watchable => WikiPage.find(3), :user => user)
end
context "of user" do
setup do
@member = Member.create!(:project => Project.find(2), :principal => User.find(9), :role_ids => [1, 2])
end
context "by deleting membership" do
should "prune watchers" do
assert_difference 'Watcher.count', -4 do
@member.destroy
end
end
end
context "by updating roles" do
should "prune watchers" do
Role.find(2).remove_permission! :view_wiki_pages
member = Member.first(:order => 'id desc')
assert_difference 'Watcher.count', -2 do
member.role_ids = [2]
member.save
end
assert !Message.find(7).watched_by?(@user)
end
end
end
context "of group" do
setup do
group = Group.find(10)
@member = Member.create!(:project => Project.find(2), :principal => group, :role_ids => [1, 2])
group.users << User.find(9)
end
context "by deleting membership" do
should "prune watchers" do
assert_difference 'Watcher.count', -4 do
@member.destroy
end
end
end
context "by updating roles" do
should "prune watchers" do
Role.find(2).remove_permission! :view_wiki_pages
assert_difference 'Watcher.count', -2 do
@member.role_ids = [2]
@member.save
end
end
end
end
end
Jean-Philippe Lang
0.3 unstable...
r10 end