summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorGo MAEDA <maeda@farend.jp>2021-03-12 05:29:50 +0000
committerGo MAEDA <maeda@farend.jp>2021-03-12 05:29:50 +0000
commitcf7a401b89a1609376062eebefaf731b662c62c9 (patch)
treea4d9ae173ab039e3ae7b722d207aa9e227206492 /test
parent9f73af6cb349433b2b73aa8faa769bc8a0c2dc6e (diff)
downloadredmine-cf7a401b89a1609376062eebefaf731b662c62c9.tar.gz
redmine-cf7a401b89a1609376062eebefaf731b662c62c9.zip
Export permissions report to CSV (#13767).
Patch by David Escala and Yuichi HARADA. git-svn-id: http://svn.redmine.org/redmine/trunk@20778 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r--test/functional/roles_controller_test.rb32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/functional/roles_controller_test.rb b/test/functional/roles_controller_test.rb
index 1f2b2c36b..28f7dd131 100644
--- a/test/functional/roles_controller_test.rb
+++ b/test/functional/roles_controller_test.rb
@@ -22,6 +22,8 @@ require File.expand_path('../../test_helper', __FILE__)
class RolesControllerTest < Redmine::ControllerTest
fixtures :roles, :users, :members, :member_roles, :workflows, :trackers
+ include Redmine::I18n
+
def setup
User.current = nil
@request.session[:user_id] = 1 # admin
@@ -270,6 +272,36 @@ class RolesControllerTest < Redmine::ControllerTest
assert_select 'input[name=?][type=checkbox][value=delete_issues]:not([checked])', 'permissions[3][]'
end
+ def test_permissions_csv_export
+ get(
+ :permissions,
+ :params => {
+ :format => 'csv'
+ }
+ )
+ assert_response :success
+
+ assert_equal 'text/csv', @response.media_type
+ lines = @response.body.chomp.split("\n")
+ # Number of lines
+ permissions = Redmine::AccessControl.permissions - Redmine::AccessControl.public_permissions
+ permissions = permissions.group_by{|p| p.project_module.to_s}.sort.collect(&:last).flatten
+ assert_equal permissions.size + 1, lines.size
+ # Header
+ assert_equal 'Module,Permissions,Manager,Developer,Reporter,Non member,Anonymous', lines.first
+ # Details
+ to_test = {
+ :add_project => '"",Create project,Yes,No,No,No,""',
+ :add_issue_notes => 'Issue tracking,Add notes,Yes,Yes,Yes,Yes,Yes',
+ :manage_wiki => 'Wiki,Manage wiki,Yes,No,No,"",""'
+ }
+ to_test.each do |name, expected|
+ index = permissions.find_index {|p| p.name == name}
+ assert_not_nil index
+ assert_equal expected, lines[index + 1]
+ end
+ end
+
def test_update_permissions
post(
:update_permissions,