summaryrefslogtreecommitdiffstats
path: root/test/unit/issue_status_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/issue_status_test.rb')
-rw-r--r--test/unit/issue_status_test.rb26
1 files changed, 25 insertions, 1 deletions
diff --git a/test/unit/issue_status_test.rb b/test/unit/issue_status_test.rb
index 4fc6de1e2..bc6535edc 100644
--- a/test/unit/issue_status_test.rb
+++ b/test/unit/issue_status_test.rb
@@ -18,7 +18,7 @@
require File.expand_path('../../test_helper', __FILE__)
class IssueStatusTest < ActiveSupport::TestCase
- fixtures :issue_statuses, :issues
+ fixtures :issue_statuses, :issues, :roles, :trackers
def test_create
status = IssueStatus.new :name => "Assigned"
@@ -68,6 +68,30 @@ class IssueStatusTest < ActiveSupport::TestCase
status.reload
assert status.is_default?
end
+
+ def test_new_statuses_allowed_to
+ Workflow.delete_all
+
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 2, :author => false, :assignee => false)
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 3, :author => true, :assignee => false)
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 4, :author => false, :assignee => true)
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 5, :author => true, :assignee => true)
+ status = IssueStatus.find(1)
+ role = Role.find(1)
+ tracker = Tracker.find(1)
+
+ assert_equal [2], status.new_statuses_allowed_to([role], tracker, false, false).map(&:id)
+ assert_equal [2], status.find_new_statuses_allowed_to([role], tracker, false, false).map(&:id)
+
+ assert_equal [2, 3], status.new_statuses_allowed_to([role], tracker, true, false).map(&:id)
+ assert_equal [2, 3], status.find_new_statuses_allowed_to([role], tracker, true, false).map(&:id)
+
+ assert_equal [2, 4], status.new_statuses_allowed_to([role], tracker, false, true).map(&:id)
+ assert_equal [2, 4], status.find_new_statuses_allowed_to([role], tracker, false, true).map(&:id)
+
+ assert_equal [2, 3, 4, 5], status.new_statuses_allowed_to([role], tracker, true, true).map(&:id)
+ assert_equal [2, 3, 4, 5], status.find_new_statuses_allowed_to([role], tracker, true, true).map(&:id)
+ end
context "#update_done_ratios" do
setup do