##// END OF EJS Templates
Speeds up rendering of the project list for users who belong to hundreds of projects....
Speeds up rendering of the project list for users who belong to hundreds of projects. git-svn-id: http://svn.redmine.org/redmine/trunk@16123 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r14856:cda9c63d9c21
r15741:f8df935dcada
Show More
issue_status_test.rb
141 lines | 5.4 KiB | text/x-ruby | RubyLexer
/ test / unit / issue_status_test.rb
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_status_test.rb....
r6627 # Redmine - project management software
Jean-Philippe Lang
Updates copyright for 2016....
r14856 # Copyright (C) 2006-2016 Jean-Philippe Lang
Jean-Philippe Lang
added unit tests for issue statuses, user preferences and tokens...
r194 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_status_test.rb....
r6627 #
Jean-Philippe Lang
added unit tests for issue statuses, user preferences and tokens...
r194 # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_status_test.rb....
r6627 #
Jean-Philippe Lang
added unit tests for issue statuses, user preferences and tokens...
r194 # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Jean-Baptiste Barth
Use absolute paths in test/**/* requires for Ruby 1.9.2 compatibility. #4050...
r4395 require File.expand_path('../../test_helper', __FILE__)
Jean-Philippe Lang
added unit tests for issue statuses, user preferences and tokens...
r194
Eric Davis
Upgraded to Rails 2.3.4 (#3597)...
r2773 class IssueStatusTest < ActiveSupport::TestCase
Toshi MARUYAMA
add missing fixtures to test/unit/issue_status_test.rb...
r13187 fixtures :projects, :users, :members, :member_roles, :roles,
:groups_users,
:trackers, :projects_trackers,
:enabled_modules,
:versions,
:issue_statuses, :issue_categories, :issue_relations, :workflows,
:enumerations,
:issues, :journals, :journal_details,
:custom_fields, :custom_fields_projects, :custom_fields_trackers, :custom_values
Jean-Philippe Lang
added unit tests for issue statuses, user preferences and tokens...
r194
def test_create
status = IssueStatus.new :name => "Assigned"
assert !status.save
# status name uniqueness
assert_equal 1, status.errors.count
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_status_test.rb....
r6627
Jean-Philippe Lang
added unit tests for issue statuses, user preferences and tokens...
r194 status.name = "Test Status"
assert status.save
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_status_test.rb....
r6627
Eric Davis
Added tests to cover IssueStatus.destroy and IssueStatus.check_integrity...
r1921 def test_destroy
status = IssueStatus.find(3)
Jean-Philippe Lang
Fixed: Deleting statuses doesn't delete all workflow entries (#5811)....
r3767 assert_difference 'IssueStatus.count', -1 do
assert status.destroy
end
Jean-Philippe Lang
Cleanup of finders with :conditions option....
r11733 assert_nil WorkflowTransition.where(:old_status_id => status.id).first
assert_nil WorkflowTransition.where(:new_status_id => status.id).first
Eric Davis
Added tests to cover IssueStatus.destroy and IssueStatus.check_integrity...
r1921 end
def test_destroy_status_in_use
# Status assigned to an Issue
status = Issue.find(1).status
Jean-Philippe Lang
Replaced "can't" with "cannot" in error messages....
r13399 assert_raise(RuntimeError, "Cannot delete status") { status.destroy }
Eric Davis
Added tests to cover IssueStatus.destroy and IssueStatus.check_integrity...
r1921 end
Jean-Philippe Lang
Allow additional workflow transitions for issue author and assignee (#2732)....
r4775 def test_new_statuses_allowed_to
Jean-Philippe Lang
Workflow enhancement: editable and required fields configurable by role, tracker and status (#703, #3521)....
r9794 WorkflowTransition.delete_all
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_status_test.rb....
r6627
Jean-Philippe Lang
Workflow enhancement: editable and required fields configurable by role, tracker and status (#703, #3521)....
r9794 WorkflowTransition.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 2, :author => false, :assignee => false)
WorkflowTransition.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 3, :author => true, :assignee => false)
WorkflowTransition.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 4, :author => false, :assignee => true)
WorkflowTransition.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 5, :author => true, :assignee => true)
Jean-Philippe Lang
Allow additional workflow transitions for issue author and assignee (#2732)....
r4775 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)
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_status_test.rb....
r6627
Jean-Philippe Lang
Fixed: additional workflow transitions not available when set to both author and assignee (#8836)....
r6180 assert_equal [2, 3, 5], status.new_statuses_allowed_to([role], tracker, true, false).map(&:id)
assert_equal [2, 3, 5], status.find_new_statuses_allowed_to([role], tracker, true, false).map(&:id)
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_status_test.rb....
r6627
Jean-Philippe Lang
Fixed: additional workflow transitions not available when set to both author and assignee (#8836)....
r6180 assert_equal [2, 4, 5], status.new_statuses_allowed_to([role], tracker, false, true).map(&:id)
assert_equal [2, 4, 5], status.find_new_statuses_allowed_to([role], tracker, false, true).map(&:id)
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_status_test.rb....
r6627
Jean-Philippe Lang
Allow additional workflow transitions for issue author and assignee (#2732)....
r4775 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
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037
Jean-Philippe Lang
Do not change settings in tests....
r8105 def test_update_done_ratios_with_issue_done_ratio_set_to_issue_field_should_change_nothing
IssueStatus.find(1).update_attribute(:default_done_ratio, 50)
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037
Jean-Philippe Lang
Do not change settings in tests....
r8105 with_settings :issue_done_ratio => 'issue_field' do
IssueStatus.update_issue_done_ratios
Jean-Philippe Lang
Cleanup of finders with :conditions option....
r11733 assert_equal 0, Issue.where(:done_ratio => 50).count
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037 end
Jean-Philippe Lang
Do not change settings in tests....
r8105 end
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037
Jean-Philippe Lang
Do not change settings in tests....
r8105 def test_update_done_ratios_with_issue_done_ratio_set_to_issue_status_should_update_issues
IssueStatus.find(1).update_attribute(:default_done_ratio, 50)
with_settings :issue_done_ratio => 'issue_status' do
IssueStatus.update_issue_done_ratios
Toshi MARUYAMA
remove unneeded Relation#all from IssueStatusTest...
r12436 issues = Issue.where(:status_id => 1)
Jean-Philippe Lang
Do not change settings in tests....
r8105 assert_equal [50], issues.map {|issue| issue.read_attribute(:done_ratio)}.uniq
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037 end
end
Jean-Philippe Lang
Code cleanup....
r9798
Jean-Philippe Lang
Adds a sorted scope to IssueStatus model....
r9806 def test_sorted_scope
Jean-Philippe Lang
Merged rails-4.1 branch (#14534)....
r13100 assert_equal IssueStatus.all.sort, IssueStatus.sorted.to_a
Jean-Philippe Lang
Adds a sorted scope to IssueStatus model....
r9806 end
Jean-Philippe Lang
Code cleanup....
r9798 def test_named_scope
status = IssueStatus.named("resolved").first
assert_not_nil status
assert_equal "Resolved", status.name
end
Jean-Philippe Lang
Fixed that setting a status as closed should update issue closed_on attribute (#18280)....
r13178
def test_setting_status_as_closed_should_set_closed_on_for_issues_without_status_journal
issue = Issue.generate!(:status_id => 1, :created_on => 2.days.ago)
assert_nil issue.closed_on
issue.status.update! :is_closed => true
issue.reload
assert issue.closed?
assert_equal issue.created_on, issue.closed_on
end
def test_setting_status_as_closed_should_set_closed_on_for_issues_with_status_journal
issue = Issue.generate!(:status_id => 1, :created_on => 2.days.ago)
issue.init_journal(User.find(1))
issue.status_id = 2
issue.save!
issue.status.update! :is_closed => true
issue.reload
assert issue.closed?
assert_equal issue.journals.first.created_on, issue.closed_on
end
def test_setting_status_as_closed_should_not_set_closed_on_for_issues_with_other_status
issue = Issue.generate!(:status_id => 2)
IssueStatus.find(1).update! :is_closed => true
issue.reload
assert !issue.closed?
assert_nil issue.closed_on
end
Jean-Philippe Lang
added unit tests for issue statuses, user preferences and tokens...
r194 end