Allows multiple roles on the same project (#706). Prerequisite for user groups feature.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2726 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2009-05-10 10:54:31 +00:00
parent 814e138c2a
commit 7dccf9fda6
65 changed files with 340 additions and 175 deletions
@@ -23,7 +23,7 @@ class AttachmentsController; def rescue_action(e) raise e end; end
class AttachmentsControllerTest < Test::Unit::TestCase
fixtures :users, :projects, :roles, :members, :enabled_modules, :issues, :trackers, :attachments,
fixtures :users, :projects, :roles, :members, :member_roles, :enabled_modules, :issues, :trackers, :attachments,
:versions, :wiki_pages, :wikis, :documents
def setup
+1 -1
View File
@@ -22,7 +22,7 @@ require 'boards_controller'
class BoardsController; def rescue_action(e) raise e end; end
class BoardsControllerTest < Test::Unit::TestCase
fixtures :projects, :users, :members, :roles, :boards, :messages, :enabled_modules
fixtures :projects, :users, :members, :member_roles, :roles, :boards, :messages, :enabled_modules
def setup
@controller = BoardsController.new
+1 -1
View File
@@ -22,7 +22,7 @@ require 'documents_controller'
class DocumentsController; def rescue_action(e) raise e end; end
class DocumentsControllerTest < Test::Unit::TestCase
fixtures :projects, :users, :roles, :members, :enabled_modules, :documents, :enumerations
fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :documents, :enumerations
def setup
@controller = DocumentsController.new
@@ -22,7 +22,7 @@ require 'issue_categories_controller'
class IssueCategoriesController; def rescue_action(e) raise e end; end
class IssueCategoriesControllerTest < Test::Unit::TestCase
fixtures :projects, :users, :members, :roles, :enabled_modules, :issue_categories
fixtures :projects, :users, :members, :member_roles, :roles, :enabled_modules, :issue_categories
def setup
@controller = IssueCategoriesController.new
@@ -10,6 +10,7 @@ class IssueRelationsControllerTest < Test::Unit::TestCase
:users,
:roles,
:members,
:member_roles,
:issues,
:issue_statuses,
:enabled_modules,
@@ -26,6 +26,7 @@ class IssuesControllerTest < Test::Unit::TestCase
:users,
:roles,
:members,
:member_roles,
:issues,
:issue_statuses,
:versions,
+1 -1
View File
@@ -22,7 +22,7 @@ require 'journals_controller'
class JournalsController; def rescue_action(e) raise e end; end
class JournalsControllerTest < Test::Unit::TestCase
fixtures :projects, :users, :members, :roles, :issues, :journals, :journal_details, :enabled_modules
fixtures :projects, :users, :members, :member_roles, :roles, :issues, :journals, :journal_details, :enabled_modules
def setup
@controller = JournalsController.new
@@ -22,7 +22,7 @@ require 'mail_handler_controller'
class MailHandlerController; def rescue_action(e) raise e end; end
class MailHandlerControllerTest < Test::Unit::TestCase
fixtures :users, :projects, :enabled_modules, :roles, :members, :issues, :issue_statuses, :trackers, :enumerations
fixtures :users, :projects, :enabled_modules, :roles, :members, :member_roles, :issues, :issue_statuses, :trackers, :enumerations
FIXTURES_PATH = File.dirname(__FILE__) + '/../fixtures/mail_handler'
+5 -5
View File
@@ -23,7 +23,7 @@ class MembersController; def rescue_action(e) raise e end; end
class MembersControllerTest < Test::Unit::TestCase
fixtures :projects, :members, :roles, :users
fixtures :projects, :members, :member_roles, :roles, :users
def setup
@controller = MembersController.new
@@ -42,7 +42,7 @@ class MembersControllerTest < Test::Unit::TestCase
def test_create
assert_difference 'Member.count' do
post :new, :id => 1, :member => {:role_id => 1, :user_id => 7}
post :new, :id => 1, :member => {:role_ids => [1], :user_id => 7}
end
assert_redirected_to '/projects/ecookbook/settings/members'
assert User.find(7).member_of?(Project.find(1))
@@ -50,7 +50,7 @@ class MembersControllerTest < Test::Unit::TestCase
def test_create_by_user_login
assert_difference 'Member.count' do
post :new, :id => 1, :member => {:role_id => 1, :user_login => 'someone'}
post :new, :id => 1, :member => {:role_ids => [1], :user_login => 'someone'}
end
assert_redirected_to '/projects/ecookbook/settings/members'
assert User.find(7).member_of?(Project.find(1))
@@ -58,7 +58,7 @@ class MembersControllerTest < Test::Unit::TestCase
def test_create_multiple
assert_difference 'Member.count', 3 do
post :new, :id => 1, :member => {:role_id => 1, :user_ids => [7, 8, 9]}
post :new, :id => 1, :member => {:role_ids => [1], :user_ids => [7, 8, 9]}
end
assert_redirected_to '/projects/ecookbook/settings/members'
assert User.find(7).member_of?(Project.find(1))
@@ -66,7 +66,7 @@ class MembersControllerTest < Test::Unit::TestCase
def test_edit
assert_no_difference 'Member.count' do
post :edit, :id => 2, :member => {:role_id => 1, :user_id => 3}
post :edit, :id => 2, :member => {:role_ids => [1], :user_id => 3}
end
assert_redirected_to '/projects/ecookbook/settings/members'
end
+1 -1
View File
@@ -22,7 +22,7 @@ require 'messages_controller'
class MessagesController; def rescue_action(e) raise e end; end
class MessagesControllerTest < Test::Unit::TestCase
fixtures :projects, :users, :members, :roles, :boards, :messages, :enabled_modules
fixtures :projects, :users, :members, :member_roles, :roles, :boards, :messages, :enabled_modules
def setup
@controller = MessagesController.new
+1 -1
View File
@@ -22,7 +22,7 @@ require 'news_controller'
class NewsController; def rescue_action(e) raise e end; end
class NewsControllerTest < Test::Unit::TestCase
fixtures :projects, :users, :roles, :members, :enabled_modules, :news, :comments
fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :news, :comments
def setup
@controller = NewsController.new
+1 -1
View File
@@ -22,7 +22,7 @@ require 'projects_controller'
class ProjectsController; def rescue_action(e) raise e end; end
class ProjectsControllerTest < Test::Unit::TestCase
fixtures :projects, :versions, :users, :roles, :members, :issues, :journals, :journal_details,
fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
:trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages,
:attachments
+1 -1
View File
@@ -22,7 +22,7 @@ require 'queries_controller'
class QueriesController; def rescue_action(e) raise e end; end
class QueriesControllerTest < Test::Unit::TestCase
fixtures :projects, :users, :members, :roles, :trackers, :issue_statuses, :issue_categories, :enumerations, :issues, :custom_fields, :custom_values, :queries
fixtures :projects, :users, :members, :member_roles, :roles, :trackers, :issue_statuses, :issue_categories, :enumerations, :issues, :custom_fields, :custom_values, :queries
def setup
@controller = QueriesController.new
@@ -22,7 +22,7 @@ require 'repositories_controller'
class RepositoriesController; def rescue_action(e) raise e end; end
class RepositoriesBazaarControllerTest < Test::Unit::TestCase
fixtures :projects, :users, :roles, :members, :repositories, :enabled_modules
fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/bazaar_repository'
@@ -22,7 +22,7 @@ require 'repositories_controller'
class RepositoriesController; def rescue_action(e) raise e end; end
class RepositoriesControllerTest < Test::Unit::TestCase
fixtures :projects, :users, :roles, :members, :repositories, :issues, :issue_statuses, :changesets, :changes, :issue_categories, :enumerations, :custom_fields, :custom_values, :trackers
fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :issues, :issue_statuses, :changesets, :changes, :issue_categories, :enumerations, :custom_fields, :custom_values, :trackers
def setup
@controller = RepositoriesController.new
@@ -22,7 +22,7 @@ require 'repositories_controller'
class RepositoriesController; def rescue_action(e) raise e end; end
class RepositoriesDarcsControllerTest < Test::Unit::TestCase
fixtures :projects, :users, :roles, :members, :repositories, :enabled_modules
fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/darcs_repository'
@@ -22,7 +22,7 @@ require 'repositories_controller'
class RepositoriesController; def rescue_action(e) raise e end; end
class RepositoriesGitControllerTest < Test::Unit::TestCase
fixtures :projects, :users, :roles, :members, :repositories, :enabled_modules
fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
@@ -22,7 +22,7 @@ require 'repositories_controller'
class RepositoriesController; def rescue_action(e) raise e end; end
class RepositoriesMercurialControllerTest < Test::Unit::TestCase
fixtures :projects, :users, :roles, :members, :repositories, :enabled_modules
fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/mercurial_repository'
@@ -22,7 +22,7 @@ require 'repositories_controller'
class RepositoriesController; def rescue_action(e) raise e end; end
class RepositoriesSubversionControllerTest < Test::Unit::TestCase
fixtures :projects, :users, :roles, :members, :enabled_modules,
fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules,
:repositories, :issues, :issue_statuses, :changesets, :changes,
:issue_categories, :enumerations, :custom_fields, :custom_values, :trackers
+11 -11
View File
@@ -22,7 +22,7 @@ require 'roles_controller'
class RolesController; def rescue_action(e) raise e end; end
class RolesControllerTest < Test::Unit::TestCase
fixtures :roles, :users, :members, :workflows
fixtures :roles, :users, :members, :member_roles, :workflows
def setup
@controller = RolesController.new
@@ -65,7 +65,7 @@ class RolesControllerTest < Test::Unit::TestCase
:permissions => ['add_issues', 'edit_issues', 'log_time', ''],
:assignable => '0'}
assert_redirected_to 'roles/list'
assert_redirected_to 'roles'
role = Role.find_by_name('RoleWithoutWorkflowCopy')
assert_not_nil role
assert_equal [:add_issues, :edit_issues, :log_time], role.permissions
@@ -78,7 +78,7 @@ class RolesControllerTest < Test::Unit::TestCase
:assignable => '0'},
:copy_workflow_from => '1'
assert_redirected_to 'roles/list'
assert_redirected_to 'roles'
role = Role.find_by_name('RoleWithWorkflowCopy')
assert_not_nil role
assert_equal Role.find(1).workflows.size, role.workflows.size
@@ -97,7 +97,7 @@ class RolesControllerTest < Test::Unit::TestCase
:permissions => ['edit_project', ''],
:assignable => '0'}
assert_redirected_to 'roles/list'
assert_redirected_to 'roles'
role = Role.find(1)
assert_equal [:edit_project], role.permissions
end
@@ -107,7 +107,7 @@ class RolesControllerTest < Test::Unit::TestCase
assert r.save
post :destroy, :id => r
assert_redirected_to 'roles/list'
assert_redirected_to 'roles'
assert_nil Role.find_by_id(r.id)
end
@@ -139,7 +139,7 @@ class RolesControllerTest < Test::Unit::TestCase
def test_post_report
post :report, :permissions => { '0' => '', '1' => ['edit_issues'], '3' => ['add_issues', 'delete_issues']}
assert_redirected_to 'roles/list'
assert_redirected_to 'roles'
assert_equal [:edit_issues], Role.find(1).permissions
assert_equal [:add_issues, :delete_issues], Role.find(3).permissions
@@ -148,33 +148,33 @@ class RolesControllerTest < Test::Unit::TestCase
def test_clear_all_permissions
post :report, :permissions => { '0' => '' }
assert_redirected_to 'roles/list'
assert_redirected_to 'roles'
assert Role.find(1).permissions.empty?
end
def test_move_highest
post :edit, :id => 3, :role => {:move_to => 'highest'}
assert_redirected_to 'roles/list'
assert_redirected_to 'roles'
assert_equal 1, Role.find(3).position
end
def test_move_higher
position = Role.find(3).position
post :edit, :id => 3, :role => {:move_to => 'higher'}
assert_redirected_to 'roles/list'
assert_redirected_to 'roles'
assert_equal position - 1, Role.find(3).position
end
def test_move_lower
position = Role.find(2).position
post :edit, :id => 2, :role => {:move_to => 'lower'}
assert_redirected_to 'roles/list'
assert_redirected_to 'roles'
assert_equal position + 1, Role.find(2).position
end
def test_move_lowest
post :edit, :id => 2, :role => {:move_to => 'lowest'}
assert_redirected_to 'roles/list'
assert_redirected_to 'roles'
assert_equal Role.count, Role.find(2).position
end
end
+1 -1
View File
@@ -5,7 +5,7 @@ require 'search_controller'
class SearchController; def rescue_action(e) raise e end; end
class SearchControllerTest < Test::Unit::TestCase
fixtures :projects, :enabled_modules, :roles, :users,
fixtures :projects, :enabled_modules, :roles, :users, :members, :member_roles,
:issues, :trackers, :issue_statuses,
:custom_fields, :custom_values,
:repositories, :changesets
+1 -1
View File
@@ -22,7 +22,7 @@ require 'timelog_controller'
class TimelogController; def rescue_action(e) raise e end; end
class TimelogControllerTest < Test::Unit::TestCase
fixtures :projects, :enabled_modules, :roles, :members, :issues, :time_entries, :users, :trackers, :enumerations, :issue_statuses, :custom_fields, :custom_values
fixtures :projects, :enabled_modules, :roles, :members, :member_roles, :issues, :time_entries, :users, :trackers, :enumerations, :issue_statuses, :custom_fields, :custom_values
def setup
@controller = TimelogController.new
+3 -3
View File
@@ -24,7 +24,7 @@ class UsersController; def rescue_action(e) raise e end; end
class UsersControllerTest < Test::Unit::TestCase
include Redmine::I18n
fixtures :users, :projects, :members
fixtures :users, :projects, :members, :member_roles, :roles
def setup
@controller = UsersController.new
@@ -123,9 +123,9 @@ class UsersControllerTest < Test::Unit::TestCase
def test_edit_membership
post :edit_membership, :id => 2, :membership_id => 1,
:membership => { :role_id => 2}
:membership => { :role_ids => [2]}
assert_redirected_to :action => 'edit', :id => '2', :tab => 'memberships'
assert_equal 2, Member.find(1).role_id
assert_equal [2], Member.find(1).role_ids
end
def test_edit_with_activation_should_send_a_notification
+1 -1
View File
@@ -22,7 +22,7 @@ require 'versions_controller'
class VersionsController; def rescue_action(e) raise e end; end
class VersionsControllerTest < Test::Unit::TestCase
fixtures :projects, :versions, :issues, :users, :roles, :members, :enabled_modules
fixtures :projects, :versions, :issues, :users, :roles, :members, :member_roles, :enabled_modules
def setup
@controller = VersionsController.new
+1 -1
View File
@@ -22,7 +22,7 @@ require 'watchers_controller'
class WatchersController; def rescue_action(e) raise e end; end
class WatchersControllerTest < Test::Unit::TestCase
fixtures :projects, :users, :roles, :members, :enabled_modules,
fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules,
:issues, :trackers, :projects_trackers, :issue_statuses, :enumerations, :watchers
def setup
+1 -1
View File
@@ -22,7 +22,7 @@ require 'wiki_controller'
class WikiController; def rescue_action(e) raise e end; end
class WikiControllerTest < Test::Unit::TestCase
fixtures :projects, :users, :roles, :members, :enabled_modules, :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions, :attachments
fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions, :attachments
def setup
@controller = WikiController.new
+1 -1
View File
@@ -22,7 +22,7 @@ require 'wikis_controller'
class WikisController; def rescue_action(e) raise e end; end
class WikisControllerTest < Test::Unit::TestCase
fixtures :projects, :users, :roles, :members, :enabled_modules, :wikis
fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :wikis
def setup
@controller = WikisController.new