##// END OF EJS Templates
Do not mass create API keys for existing users....
Do not mass create API keys for existing users. They will be created on the fly if needed, just like for new users. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3221 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r3053:f33231181f95
r3107:edab0f0cbb85
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.
require File.dirname(__FILE__) + '/../test_helper'
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
Watcher.create!(:watchable => Issue.find(1), :user_id => user)
# 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