diff options
author | Go MAEDA <maeda@farend.jp> | 2021-03-12 05:29:50 +0000 |
---|---|---|
committer | Go MAEDA <maeda@farend.jp> | 2021-03-12 05:29:50 +0000 |
commit | cf7a401b89a1609376062eebefaf731b662c62c9 (patch) | |
tree | a4d9ae173ab039e3ae7b722d207aa9e227206492 /test | |
parent | 9f73af6cb349433b2b73aa8faa769bc8a0c2dc6e (diff) | |
download | redmine-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.rb | 32 |
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, |