Create role by copy (#9258).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10285 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2012-09-03 17:04:28 +00:00
parent 1b64e4be5e
commit ca7498c2d6
6 changed files with 52 additions and 2 deletions
+25
View File
@@ -46,6 +46,31 @@ class RolesControllerTest < ActionController::TestCase
assert_template 'new'
end
def test_new_with_copy
copy_from = Role.find(2)
get :new, :copy => copy_from.id.to_s
assert_response :success
assert_template 'new'
role = assigns(:role)
assert_equal copy_from.permissions, role.permissions
assert_select 'form' do
# blank name
assert_select 'input[name=?][value=]', 'role[name]'
# edit_project permission checked
assert_select 'input[type=checkbox][name=?][value=edit_project][checked=checked]', 'role[permissions][]'
# add_project permission not checked
assert_select 'input[type=checkbox][name=?][value=add_project]', 'role[permissions][]'
assert_select 'input[type=checkbox][name=?][value=add_project][checked=checked]', 'role[permissions][]', 0
# workflow copy selected
assert_select 'select[name=?]', 'copy_workflow_from' do
assert_select 'option[value=2][selected=selected]'
end
end
end
def test_create_with_validaton_failure
post :create, :role => {:name => '',
:permissions => ['add_issues', 'edit_issues', 'log_time', ''],
+12
View File
@@ -33,6 +33,18 @@ class RoleTest < ActiveSupport::TestCase
assert_equal Role.all.reject(&:builtin?).sort, Role.builtin(false).all.sort
end
def test_copy_from
role = Role.find(1)
copy = Role.new.copy_from(role)
assert_nil copy.id
assert_equal '', copy.name
assert_equal role.permissions, copy.permissions
copy.name = 'Copy'
assert copy.save
end
def test_copy_workflows
source = Role.find(1)
assert_equal 90, source.workflow_rules.size