Workflow enhancement: editable and required fields configurable by role, tracker and status (#703, #3521).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9977 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -21,17 +21,45 @@ class WorkflowTest < ActiveSupport::TestCase
|
||||
fixtures :roles, :trackers, :issue_statuses
|
||||
|
||||
def test_copy
|
||||
Workflow.delete_all
|
||||
Workflow.create!(:role_id => 1, :tracker_id => 2, :old_status_id => 1, :new_status_id => 2)
|
||||
Workflow.create!(:role_id => 1, :tracker_id => 2, :old_status_id => 1, :new_status_id => 3, :assignee => true)
|
||||
Workflow.create!(:role_id => 1, :tracker_id => 2, :old_status_id => 1, :new_status_id => 4, :author => true)
|
||||
WorkflowTransition.delete_all
|
||||
WorkflowTransition.create!(:role_id => 1, :tracker_id => 2, :old_status_id => 1, :new_status_id => 2)
|
||||
WorkflowTransition.create!(:role_id => 1, :tracker_id => 2, :old_status_id => 1, :new_status_id => 3, :assignee => true)
|
||||
WorkflowTransition.create!(:role_id => 1, :tracker_id => 2, :old_status_id => 1, :new_status_id => 4, :author => true)
|
||||
|
||||
assert_difference 'Workflow.count', 3 do
|
||||
Workflow.copy(Tracker.find(2), Role.find(1), Tracker.find(3), Role.find(2))
|
||||
assert_difference 'WorkflowTransition.count', 3 do
|
||||
WorkflowTransition.copy(Tracker.find(2), Role.find(1), Tracker.find(3), Role.find(2))
|
||||
end
|
||||
|
||||
assert Workflow.first(:conditions => {:role_id => 2, :tracker_id => 3, :old_status_id => 1, :new_status_id => 2, :author => false, :assignee => false})
|
||||
assert Workflow.first(:conditions => {:role_id => 2, :tracker_id => 3, :old_status_id => 1, :new_status_id => 3, :author => false, :assignee => true})
|
||||
assert Workflow.first(:conditions => {:role_id => 2, :tracker_id => 3, :old_status_id => 1, :new_status_id => 4, :author => true, :assignee => false})
|
||||
assert WorkflowTransition.first(:conditions => {:role_id => 2, :tracker_id => 3, :old_status_id => 1, :new_status_id => 2, :author => false, :assignee => false})
|
||||
assert WorkflowTransition.first(:conditions => {:role_id => 2, :tracker_id => 3, :old_status_id => 1, :new_status_id => 3, :author => false, :assignee => true})
|
||||
assert WorkflowTransition.first(:conditions => {:role_id => 2, :tracker_id => 3, :old_status_id => 1, :new_status_id => 4, :author => true, :assignee => false})
|
||||
end
|
||||
|
||||
def test_workflow_permission_should_validate_rule
|
||||
wp = WorkflowPermission.new(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :field_name => 'due_date')
|
||||
assert !wp.save
|
||||
|
||||
wp.rule = 'foo'
|
||||
assert !wp.save
|
||||
|
||||
wp.rule = 'required'
|
||||
assert wp.save
|
||||
|
||||
wp.rule = 'readonly'
|
||||
assert wp.save
|
||||
end
|
||||
|
||||
def test_workflow_permission_should_validate_field_name
|
||||
wp = WorkflowPermission.new(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :rule => 'required')
|
||||
assert !wp.save
|
||||
|
||||
wp.field_name = 'foo'
|
||||
assert !wp.save
|
||||
|
||||
wp.field_name = 'due_date'
|
||||
assert wp.save
|
||||
|
||||
wp.field_name = '1'
|
||||
assert wp.save
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user