mirror of
https://github.com/redmine/redmine.git
synced 2025-11-15 09:46:02 +01:00
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
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user