##// END OF EJS Templates
When copying issues, let the status be changed to default or left unchanged....
When copying issues, let the status be changed to default or left unchanged. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9404 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r9270:09375960d69d
r9270:09375960d69d
Show More
issue_test.rb
1263 lines | 44.4 KiB | text/x-ruby | RubyLexer
Jean-Philippe Lang
Keep track of issue description changes (#746)....
r4834 # Redmine - project management software
Jean-Philippe Lang
Extracts custom field values validation from CustomValue so that they can be validated globally from the customized object (#1189)....
r8597 # Copyright (C) 2006-2012 Jean-Philippe Lang
Jean-Philippe Lang
Each category can now be associated to a user, so that new issues in that category are automatically assigned to that user....
r574 #
# 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 and empty lines from unit issue test....
r5686 #
Jean-Philippe Lang
Each category can now be associated to a user, so that new issues in that category are automatically assigned to that user....
r574 # 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 and empty lines from unit issue test....
r5686 #
Jean-Philippe Lang
Each category can now be associated to a user, so that new issues in that category are automatically assigned to that user....
r574 # 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
Each category can now be associated to a user, so that new issues in that category are automatically assigned to that user....
r574
Eric Davis
Upgraded to Rails 2.3.4 (#3597)...
r2773 class IssueTest < ActiveSupport::TestCase
Jean-Philippe Lang
Add view_issues permission (#3187)....
r2925 fixtures :projects, :users, :members, :member_roles, :roles,
Toshi MARUYAMA
add missing groups_users fixture to unit issue test...
r8516 :groups_users,
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 :trackers, :projects_trackers,
Jean-Philippe Lang
Adds missing fixtures....
r3394 :enabled_modules,
Jean-Philippe Lang
Adds version status to limit issue assignments (#1245)....
r2906 :versions,
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686 :issue_statuses, :issue_categories, :issue_relations, :workflows,
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 :enumerations,
:issues,
:custom_fields, :custom_fields_projects, :custom_fields_trackers, :custom_values,
:time_entries
Jean-Philippe Lang
Each category can now be associated to a user, so that new issues in that category are automatically assigned to that user....
r574
Jean-Philippe Lang
Extracts custom field values validation from CustomValue so that they can be validated globally from the customized object (#1189)....
r8597 include Redmine::I18n
Jean-Philippe Lang
Estimated time recognizes improved time formats (#1092)....
r1346 def test_create
Toshi MARUYAMA
code layout clean up of test_create at test/unit/issue_test.rb...
r7356 issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 3,
:status_id => 1, :priority => IssuePriority.all.first,
:subject => 'test_create',
:description => 'IssueTest#test_create', :estimated_hours => '1:30')
Jean-Philippe Lang
Estimated time recognizes improved time formats (#1092)....
r1346 assert issue.save
issue.reload
assert_equal 1.5, issue.estimated_hours
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Makes issue description a non-required field (#2456)....
r2244 def test_create_minimal
Toshi MARUYAMA
code layout clean up of test_create_minimal at test/unit/issue_test.rb...
r7355 issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 3,
:status_id => 1, :priority => IssuePriority.all.first,
:subject => 'test_create')
Jean-Philippe Lang
Makes issue description a non-required field (#2456)....
r2244 assert issue.save
assert issue.description.nil?
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 def test_create_with_required_custom_field
Jean-Philippe Lang
Extracts custom field values validation from CustomValue so that they can be validated globally from the customized object (#1189)....
r8597 set_language_if_valid 'en'
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 field = IssueCustomField.find_by_name('Database')
field.update_attribute(:is_required, true)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Toshi MARUYAMA
code layout clean up of test_create_with_required_custom_field at test/unit/issue_test.rb...
r7354 issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 1,
:status_id => 1, :subject => 'test_create',
:description => 'IssueTest#test_create_with_required_custom_field')
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 assert issue.available_custom_fields.include?(field)
# No value for the custom field
assert !issue.save
Jean-Philippe Lang
Array#to_s behaviour changed in ruby 1.9....
r8985 assert_equal ["Database can't be blank"], issue.errors.full_messages
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 # Blank value
issue.custom_field_values = { field.id => '' }
assert !issue.save
Jean-Philippe Lang
Array#to_s behaviour changed in ruby 1.9....
r8985 assert_equal ["Database can't be blank"], issue.errors.full_messages
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 # Invalid value
issue.custom_field_values = { field.id => 'SQLServer' }
assert !issue.save
Jean-Philippe Lang
Array#to_s behaviour changed in ruby 1.9....
r8985 assert_equal ["Database is not included in the list"], issue.errors.full_messages
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 # Valid value
issue.custom_field_values = { field.id => 'PostgreSQL' }
assert issue.save
issue.reload
assert_equal 'PostgreSQL', issue.custom_value_for(field).value
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_test.rb....
r6626
Jean-Philippe Lang
Ability to assign issues to groups (#2964)....
r6186 def test_create_with_group_assignment
with_settings :issue_group_assignment => '1' do
Toshi MARUYAMA
code layout clean up of test_create_with_group_assignment at test/unit/issue_test.rb...
r7357 assert Issue.new(:project_id => 2, :tracker_id => 1, :author_id => 1,
:subject => 'Group assignment',
:assigned_to_id => 11).save
Jean-Philippe Lang
Ability to assign issues to groups (#2964)....
r6186 issue = Issue.first(:order => 'id DESC')
assert_kind_of Group, issue.assigned_to
assert_equal Group.find(11), issue.assigned_to
end
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds an issues visibility level on roles (#7412)....
r5296 def assert_visibility_match(user, issues)
assert_equal issues.collect(&:id).sort, Issue.all.select {|issue| issue.visible?(user)}.collect(&:id).sort
end
Jean-Philippe Lang
Add view_issues permission (#3187)....
r2925 def test_visible_scope_for_anonymous
# Anonymous user should see issues of public projects only
issues = Issue.visible(User.anonymous).all
assert issues.any?
assert_nil issues.detect {|issue| !issue.project.is_public?}
Jean-Philippe Lang
Private issues (#7414)....
r5346 assert_nil issues.detect {|issue| issue.is_private?}
Jean-Philippe Lang
Adds an issues visibility level on roles (#7412)....
r5296 assert_visibility_match User.anonymous, issues
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds an issues visibility level on roles (#7412)....
r5296 def test_visible_scope_for_anonymous_with_own_issues_visibility
Role.anonymous.update_attribute :issues_visibility, 'own'
Toshi MARUYAMA
code layout clean up of test_visible_scope_for_anonymous_with_own_issues_visibility at test/unit/issue_test.rb...
r7486 Issue.create!(:project_id => 1, :tracker_id => 1,
:author_id => User.anonymous.id,
:subject => 'Issue by anonymous')
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds an issues visibility level on roles (#7412)....
r5296 issues = Issue.visible(User.anonymous).all
assert issues.any?
assert_nil issues.detect {|issue| issue.author != User.anonymous}
assert_visibility_match User.anonymous, issues
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds an issues visibility level on roles (#7412)....
r5296 def test_visible_scope_for_anonymous_without_view_issues_permissions
Jean-Philippe Lang
Add view_issues permission (#3187)....
r2925 # Anonymous user should not see issues without permission
Role.anonymous.remove_permission!(:view_issues)
issues = Issue.visible(User.anonymous).all
assert issues.empty?
Jean-Philippe Lang
Adds an issues visibility level on roles (#7412)....
r5296 assert_visibility_match User.anonymous, issues
Jean-Philippe Lang
Add view_issues permission (#3187)....
r2925 end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds an issues visibility level on roles (#7412)....
r5296 def test_visible_scope_for_non_member
Jean-Philippe Lang
Add view_issues permission (#3187)....
r2925 user = User.find(9)
assert user.projects.empty?
# Non member user should see issues of public projects only
issues = Issue.visible(user).all
assert issues.any?
assert_nil issues.detect {|issue| !issue.project.is_public?}
Jean-Philippe Lang
Private issues (#7414)....
r5346 assert_nil issues.detect {|issue| issue.is_private?}
Jean-Philippe Lang
Adds an issues visibility level on roles (#7412)....
r5296 assert_visibility_match user, issues
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds an issues visibility level on roles (#7412)....
r5296 def test_visible_scope_for_non_member_with_own_issues_visibility
Role.non_member.update_attribute :issues_visibility, 'own'
Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 9, :subject => 'Issue by non member')
user = User.find(9)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds an issues visibility level on roles (#7412)....
r5296 issues = Issue.visible(user).all
assert issues.any?
assert_nil issues.detect {|issue| issue.author != user}
assert_visibility_match user, issues
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds an issues visibility level on roles (#7412)....
r5296 def test_visible_scope_for_non_member_without_view_issues_permissions
Jean-Philippe Lang
Add view_issues permission (#3187)....
r2925 # Non member user should not see issues without permission
Role.non_member.remove_permission!(:view_issues)
Jean-Philippe Lang
Adds an issues visibility level on roles (#7412)....
r5296 user = User.find(9)
assert user.projects.empty?
Jean-Philippe Lang
Add view_issues permission (#3187)....
r2925 issues = Issue.visible(user).all
assert issues.empty?
Jean-Philippe Lang
Adds an issues visibility level on roles (#7412)....
r5296 assert_visibility_match user, issues
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds an issues visibility level on roles (#7412)....
r5296 def test_visible_scope_for_member
user = User.find(9)
Jean-Philippe Lang
Add view_issues permission (#3187)....
r2925 # User should see issues of projects for which he has view_issues permissions only
Jean-Philippe Lang
Adds an issues visibility level on roles (#7412)....
r5296 Role.non_member.remove_permission!(:view_issues)
Jean-Philippe Lang
Private issues (#7414)....
r5346 Member.create!(:principal => user, :project_id => 3, :role_ids => [2])
Jean-Philippe Lang
Add view_issues permission (#3187)....
r2925 issues = Issue.visible(user).all
assert issues.any?
Jean-Philippe Lang
Private issues (#7414)....
r5346 assert_nil issues.detect {|issue| issue.project_id != 3}
assert_nil issues.detect {|issue| issue.is_private?}
Jean-Philippe Lang
Adds an issues visibility level on roles (#7412)....
r5296 assert_visibility_match user, issues
Jean-Philippe Lang
Add view_issues permission (#3187)....
r2925 end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Fixed: User with groups may not see issues assigned to him or to its groups (#9478)....
r7651 def test_visible_scope_for_member_with_groups_should_return_assigned_issues
user = User.find(8)
assert user.groups.any?
Member.create!(:principal => user.groups.first, :project_id => 1, :role_ids => [2])
Role.non_member.remove_permission!(:view_issues)
issue = Issue.create(:project_id => 1, :tracker_id => 1, :author_id => 3,
:status_id => 1, :priority => IssuePriority.all.first,
:subject => 'Assignment test',
:assigned_to => user.groups.first,
:is_private => true)
Role.find(2).update_attribute :issues_visibility, 'default'
issues = Issue.visible(User.find(8)).all
assert issues.any?
assert issues.include?(issue)
Role.find(2).update_attribute :issues_visibility, 'own'
issues = Issue.visible(User.find(8)).all
assert issues.any?
assert issues.include?(issue)
end
Jean-Philippe Lang
Add view_issues permission (#3187)....
r2925 def test_visible_scope_for_admin
user = User.find(1)
user.members.each(&:destroy)
assert user.projects.empty?
issues = Issue.visible(user).all
assert issues.any?
# Admin should see issues on private projects that he does not belong to
assert issues.detect {|issue| !issue.project.is_public?}
Jean-Philippe Lang
Private issues (#7414)....
r5346 # Admin should see private issues of other users
assert issues.detect {|issue| issue.is_private? && issue.author != user}
Jean-Philippe Lang
Adds an issues visibility level on roles (#7412)....
r5296 assert_visibility_match user, issues
Jean-Philippe Lang
Add view_issues permission (#3187)....
r2925 end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Makes visible scopes accept projects option and deprecate Project.visible_by....
r5204 def test_visible_scope_with_project
project = Project.find(1)
issues = Issue.visible(User.find(2), :project => project).all
projects = issues.collect(&:project).uniq
assert_equal 1, projects.size
assert_equal project, projects.first
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Makes visible scopes accept projects option and deprecate Project.visible_by....
r5204 def test_visible_scope_with_project_and_subprojects
project = Project.find(1)
issues = Issue.visible(User.find(2), :project => project, :with_subprojects => true).all
projects = issues.collect(&:project).uniq
assert projects.size > 1
assert_equal [], projects.select {|p| !p.is_or_is_descendant_of?(project)}
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Fixed: ambiguous lft column SQL error on Issue#descendants with a join on projects....
r5321 def test_visible_and_nested_set_scopes
assert_equal 0, Issue.find(1).descendants.visible.all.size
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Use open scope in version issues count methods....
r8165 def test_open_scope
issues = Issue.open.all
assert_nil issues.detect(&:closed?)
end
def test_open_scope_with_arg
issues = Issue.open(false).all
assert_equal issues, issues.select(&:closed?)
end
Jean-Philippe Lang
Patch ActiveRecord::Errors#full_messages so that it contains custom values error messages....
r2454 def test_errors_full_messages_should_include_custom_fields_errors
field = IssueCustomField.find_by_name('Database')
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Toshi MARUYAMA
code layout clean up of test_errors_full_messages_should_include_custom_fields_errors at test/unit/issue_test.rb...
r7353 issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 1,
:status_id => 1, :subject => 'test_create',
:description => 'IssueTest#test_create_with_required_custom_field')
Jean-Philippe Lang
Patch ActiveRecord::Errors#full_messages so that it contains custom values error messages....
r2454 assert issue.available_custom_fields.include?(field)
# Invalid value
issue.custom_field_values = { field.id => 'SQLServer' }
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Patch ActiveRecord::Errors#full_messages so that it contains custom values error messages....
r2454 assert !issue.valid?
assert_equal 1, issue.errors.full_messages.size
Toshi MARUYAMA
code layout clean up of test_errors_full_messages_should_include_custom_fields_errors at test/unit/issue_test.rb...
r7485 assert_equal "Database #{I18n.translate('activerecord.errors.messages.inclusion')}",
issue.errors.full_messages.first
Jean-Philippe Lang
Patch ActiveRecord::Errors#full_messages so that it contains custom values error messages....
r2454 end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 def test_update_issue_with_required_custom_field
field = IssueCustomField.find_by_name('Database')
field.update_attribute(:is_required, true)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 issue = Issue.find(1)
assert_nil issue.custom_value_for(field)
assert issue.available_custom_fields.include?(field)
# No change to custom values, issue can be saved
assert issue.save
# Blank value
issue.custom_field_values = { field.id => '' }
assert !issue.save
# Valid value
issue.custom_field_values = { field.id => 'PostgreSQL' }
assert issue.save
issue.reload
assert_equal 'PostgreSQL', issue.custom_value_for(field).value
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 def test_should_not_update_attributes_if_custom_fields_validation_fails
issue = Issue.find(1)
field = IssueCustomField.find_by_name('Database')
assert issue.available_custom_fields.include?(field)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 issue.custom_field_values = { field.id => 'Invalid' }
issue.subject = 'Should be not be saved'
assert !issue.save
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 issue.reload
assert_equal "Can't print recipes", issue.subject
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 def test_should_not_recreate_custom_values_objects_on_update
field = IssueCustomField.find_by_name('Database')
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Custom fields refactoring: most of code moved from controllers to models (using new module ActsAsCustomizable)....
r1578 issue = Issue.find(1)
issue.custom_field_values = { field.id => 'PostgreSQL' }
assert issue.save
custom_value = issue.custom_value_for(field)
issue.reload
issue.custom_field_values = { field.id => 'MySQL' }
assert issue.save
issue.reload
assert_equal custom_value.id, issue.custom_value_for(field).id
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Fixed that custom values get saved when assigning custom values after changing to a tracker with different custom fields (#9737)....
r7983 def test_should_not_update_custom_fields_on_changing_tracker_with_different_custom_fields
Jean-Philippe Lang
Makes project and tracker assigned first in #attributes=...
r8011 issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 1, :status_id => 1, :subject => 'Test', :custom_field_values => {'2' => 'Test'})
Jean-Philippe Lang
Fixed that custom values get saved when assigning custom values after changing to a tracker with different custom fields (#9737)....
r7983 assert !Tracker.find(2).custom_field_ids.include?(2)
issue = Issue.find(issue.id)
issue.attributes = {:tracker_id => 2, :custom_field_values => {'1' => ''}}
issue = Issue.find(issue.id)
custom_value = issue.custom_value_for(2)
assert_not_nil custom_value
assert_equal 'Test', custom_value.value
end
Jean-Philippe Lang
Fixes tracker_id and custom_field_values assignment order for issues (#4353)....
r3025 def test_assigning_tracker_id_should_reload_custom_fields_values
issue = Issue.new(:project => Project.find(1))
assert issue.custom_field_values.empty?
issue.tracker_id = 1
assert issue.custom_field_values.any?
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Makes project and tracker assigned first in #attributes=...
r8011 def test_assigning_attributes_should_assign_project_and_tracker_first
seq = sequence('seq')
issue = Issue.new
issue.expects(:project_id=).in_sequence(seq)
issue.expects(:tracker_id=).in_sequence(seq)
issue.expects(:subject=).in_sequence(seq)
issue.attributes = {:tracker_id => 2, :project_id => 1, :subject => 'Test'}
end
def test_assigning_tracker_and_custom_fields_should_assign_custom_fields
Jean-Philippe Lang
Fixes tracker_id and custom_field_values assignment order for issues (#4353)....
r3025 attributes = ActiveSupport::OrderedHash.new
attributes['custom_field_values'] = { '1' => 'MySQL' }
attributes['tracker_id'] = '1'
issue = Issue.new(:project => Project.find(1))
issue.attributes = attributes
Jean-Philippe Lang
Extracts custom field values validation from CustomValue so that they can be validated globally from the customized object (#1189)....
r8597 assert_equal 'MySQL', issue.custom_field_value(1)
Jean-Philippe Lang
Fixes tracker_id and custom_field_values assignment order for issues (#4353)....
r3025 end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Enable tracker update on issue edit form (#2405)....
r2994 def test_should_update_issue_with_disabled_tracker
p = Project.find(1)
issue = Issue.find(1)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Enable tracker update on issue edit form (#2405)....
r2994 p.trackers.delete(issue.tracker)
assert !p.trackers.include?(issue.tracker)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Enable tracker update on issue edit form (#2405)....
r2994 issue.reload
issue.subject = 'New subject'
assert issue.save
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Enable tracker update on issue edit form (#2405)....
r2994 def test_should_not_set_a_disabled_tracker
p = Project.find(1)
p.trackers.delete(Tracker.find(2))
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Enable tracker update on issue edit form (#2405)....
r2994 issue = Issue.find(1)
issue.tracker_id = 2
issue.subject = 'New subject'
assert !issue.save
Toshi MARUYAMA
Rails3: test: replace deprecated errors.on at test_should_not_set_a_disabled_tracker of unit/issue_test.rb...
r7484 assert_not_nil issue.errors[:tracker_id]
Jean-Philippe Lang
Enable tracker update on issue edit form (#2405)....
r2994 end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Each category can now be associated to a user, so that new issues in that category are automatically assigned to that user....
r574 def test_category_based_assignment
Toshi MARUYAMA
code layout clean up of test_category_based_assignment at test/unit/issue_test.rb...
r7352 issue = Issue.create(:project_id => 1, :tracker_id => 1, :author_id => 3,
:status_id => 1, :priority => IssuePriority.all.first,
:subject => 'Assignment test',
:description => 'Assignment test', :category_id => 1)
Jean-Philippe Lang
Each category can now be associated to a user, so that new issues in that category are automatically assigned to that user....
r574 assert_equal IssueCategory.find(1).assigned_to, issue.assigned_to
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Allow additional workflow transitions for issue author and assignee (#2732)....
r4775 def test_new_statuses_allowed_to
Workflow.delete_all
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Allow additional workflow transitions for issue author and assignee (#2732)....
r4775 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)
user = User.find(2)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Allow additional workflow transitions for issue author and assignee (#2732)....
r4775 issue = Issue.generate!(:tracker => tracker, :status => status, :project_id => 1)
assert_equal [1, 2], issue.new_statuses_allowed_to(user).map(&:id)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Allow additional workflow transitions for issue author and assignee (#2732)....
r4775 issue = Issue.generate!(:tracker => tracker, :status => status, :project_id => 1, :author => user)
Jean-Philippe Lang
Fixes assertions (#8836)....
r6182 assert_equal [1, 2, 3, 5], issue.new_statuses_allowed_to(user).map(&:id)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Allow additional workflow transitions for issue author and assignee (#2732)....
r4775 issue = Issue.generate!(:tracker => tracker, :status => status, :project_id => 1, :assigned_to => user)
Jean-Philippe Lang
Fixes assertions (#8836)....
r6182 assert_equal [1, 2, 4, 5], issue.new_statuses_allowed_to(user).map(&:id)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Allow additional workflow transitions for issue author and assignee (#2732)....
r4775 issue = Issue.generate!(:tracker => tracker, :status => status, :project_id => 1, :author => user, :assigned_to => user)
assert_equal [1, 2, 3, 4, 5], issue.new_statuses_allowed_to(user).map(&:id)
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Makes all workflow transitions defined for all roles available to administrators (#2323)....
r8587 def test_new_statuses_allowed_to_should_return_all_transitions_for_admin
admin = User.find(1)
issue = Issue.find(1)
assert !admin.member_of?(issue.project)
expected_statuses = [issue.status] + Workflow.find_all_by_old_status_id(issue.status_id).map(&:new_status).uniq.sort
assert_equal expected_statuses, issue.new_statuses_allowed_to(admin)
end
Jean-Philippe Lang
When copying issues, let the status be changed to default or left unchanged....
r9270 def test_new_statuses_allowed_to_should_return_default_and_current_status_when_copying
issue = Issue.find(1).copy
assert_equal [1], issue.new_statuses_allowed_to(User.find(2)).map(&:id)
issue = Issue.find(2).copy
assert_equal [1, 2], issue.new_statuses_allowed_to(User.find(2)).map(&:id)
end
Jean-Philippe Lang
Added the hability to copy an issue....
r860 def test_copy
issue = Issue.new.copy_from(1)
Jean-Philippe Lang
Use the regular issue form to copy a single issue....
r8432 assert issue.copy?
Jean-Philippe Lang
Added the hability to copy an issue....
r860 assert issue.save
issue.reload
orig = Issue.find(1)
assert_equal orig.subject, issue.subject
assert_equal orig.tracker, issue.tracker
Jean-Philippe Lang
Fixes a test failure....
r3100 assert_equal "125", issue.custom_value_for(2).value
Jean-Philippe Lang
Added the hability to copy an issue....
r860 end
Jean-Philippe Lang
Copy issue status on project copy (#3877)....
r2961
def test_copy_should_copy_status
orig = Issue.find(8)
assert orig.status != IssueStatus.default
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Copy issue status on project copy (#3877)....
r2961 issue = Issue.new.copy_from(orig)
assert issue.save
issue.reload
assert_equal orig.status, issue.status
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Extracted some code from #move_to_project to a callback....
r8404 def test_should_not_call_after_project_change_on_creation
issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1, :subject => 'Test', :author_id => 1)
issue.expects(:after_project_change).never
issue.save!
end
def test_should_not_call_after_project_change_on_update
issue = Issue.find(1)
issue.project = Project.find(1)
issue.subject = 'No project change'
issue.expects(:after_project_change).never
issue.save!
end
def test_should_call_after_project_change_on_project_change
issue = Issue.find(1)
issue.project = Project.find(2)
issue.expects(:after_project_change).once
issue.save!
end
Jean-Philippe Lang
Make the 'duplicates of' relation asymmetric:...
r1474 def test_should_close_duplicates
Jean-Philippe Lang
Automatic closing of duplicate issues....
r657 # Create 3 issues
Jean-Philippe Lang
Use fixtures generator....
r8174 project = Project.find(1)
issue1 = Issue.generate_for_project!(project)
issue2 = Issue.generate_for_project!(project)
issue3 = Issue.generate_for_project!(project)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Automatic closing of duplicate issues....
r657 # 2 is a dupe of 1
Jean-Philippe Lang
Use fixtures generator....
r8174 IssueRelation.create!(:issue_from => issue2, :issue_to => issue1, :relation_type => IssueRelation::TYPE_DUPLICATES)
Jean-Philippe Lang
Automatic closing of duplicate issues....
r657 # And 3 is a dupe of 2
Jean-Philippe Lang
Use fixtures generator....
r8174 IssueRelation.create!(:issue_from => issue3, :issue_to => issue2, :relation_type => IssueRelation::TYPE_DUPLICATES)
Jean-Philippe Lang
Fixed: ActiveRecord::StaleObjectError exception on closing a set of circular duplicate issues (#1105)....
r1345 # And 3 is a dupe of 1 (circular duplicates)
Jean-Philippe Lang
Use fixtures generator....
r8174 IssueRelation.create!(:issue_from => issue3, :issue_to => issue1, :relation_type => IssueRelation::TYPE_DUPLICATES)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Automatic closing of duplicate issues....
r657 assert issue1.reload.duplicates.include?(issue2)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Automatic closing of duplicate issues....
r657 # Closing issue 1
issue1.init_journal(User.find(:first), "Closing issue1")
issue1.status = IssueStatus.find :first, :conditions => {:is_closed => true}
assert issue1.save
# 2 and 3 should be also closed
assert issue2.reload.closed?
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686 assert issue3.reload.closed?
Jean-Philippe Lang
Automatic closing of duplicate issues....
r657 end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Make the 'duplicates of' relation asymmetric:...
r1474 def test_should_not_close_duplicated_issue
Jean-Philippe Lang
Use fixtures generator....
r8175 project = Project.find(1)
issue1 = Issue.generate_for_project!(project)
issue2 = Issue.generate_for_project!(project)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Make the 'duplicates of' relation asymmetric:...
r1474 # 2 is a dupe of 1
IssueRelation.create(:issue_from => issue2, :issue_to => issue1, :relation_type => IssueRelation::TYPE_DUPLICATES)
# 2 is a dup of 1 but 1 is not a duplicate of 2
assert !issue2.reload.duplicates.include?(issue1)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Make the 'duplicates of' relation asymmetric:...
r1474 # Closing issue 2
issue2.init_journal(User.find(:first), "Closing issue2")
issue2.status = IssueStatus.find :first, :conditions => {:is_closed => true}
assert issue2.save
# 1 should not be also closed
assert !issue1.reload.closed?
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds version status to limit issue assignments (#1245)....
r2906 def test_assignable_versions
issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 1, :status_id => 1, :fixed_version_id => 1, :subject => 'New issue')
assert_equal ['open'], issue.assignable_versions.collect(&:status).uniq
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds version status to limit issue assignments (#1245)....
r2906 def test_should_not_be_able_to_assign_a_new_issue_to_a_closed_version
issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 1, :status_id => 1, :fixed_version_id => 1, :subject => 'New issue')
assert !issue.save
Toshi MARUYAMA
Rails3: test: replace deprecated errors.on at test_should_not_be_able_to_assign_a_new_issue_to_a_closed_version of unit/issue_test.rb...
r7489 assert_not_nil issue.errors[:fixed_version_id]
Jean-Philippe Lang
Adds version status to limit issue assignments (#1245)....
r2906 end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds version status to limit issue assignments (#1245)....
r2906 def test_should_not_be_able_to_assign_a_new_issue_to_a_locked_version
issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 1, :status_id => 1, :fixed_version_id => 2, :subject => 'New issue')
assert !issue.save
Toshi MARUYAMA
Rails3: test: replace deprecated errors.on at test_should_not_be_able_to_assign_a_new_issue_to_a_locked_version of unit/issue_test.rb...
r7490 assert_not_nil issue.errors[:fixed_version_id]
Jean-Philippe Lang
Adds version status to limit issue assignments (#1245)....
r2906 end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds version status to limit issue assignments (#1245)....
r2906 def test_should_be_able_to_assign_a_new_issue_to_an_open_version
issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 1, :status_id => 1, :fixed_version_id => 3, :subject => 'New issue')
assert issue.save
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds version status to limit issue assignments (#1245)....
r2906 def test_should_be_able_to_update_an_issue_assigned_to_a_closed_version
issue = Issue.find(11)
assert_equal 'closed', issue.fixed_version.status
issue.subject = 'Subject changed'
assert issue.save
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds version status to limit issue assignments (#1245)....
r2906 def test_should_not_be_able_to_reopen_an_issue_assigned_to_a_closed_version
issue = Issue.find(11)
issue.status_id = 1
assert !issue.save
Toshi MARUYAMA
Rails3: test: replace deprecated errors.on_base at test_should_not_be_able_to_reopen_an_issue_assigned_to_a_closed_version of unit/issue_test.rb...
r7491 assert_not_nil issue.errors[:base]
Jean-Philippe Lang
Adds version status to limit issue assignments (#1245)....
r2906 end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds version status to limit issue assignments (#1245)....
r2906 def test_should_be_able_to_reopen_and_reassign_an_issue_assigned_to_a_closed_version
issue = Issue.find(11)
issue.status_id = 1
issue.fixed_version_id = 3
assert issue.save
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds version status to limit issue assignments (#1245)....
r2906 def test_should_be_able_to_reopen_an_issue_assigned_to_a_locked_version
issue = Issue.find(12)
assert_equal 'locked', issue.fixed_version.status
issue.status_id = 1
assert issue.save
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Fixed that issues can be moved to projects with issue tracking disabled (#10467)....
r9139 def test_allowed_target_projects_on_move_should_include_projects_with_issue_tracking_enabled
assert_include Project.find(2), Issue.allowed_target_projects_on_move(User.find(2))
end
def test_allowed_target_projects_on_move_should_not_include_projects_with_issue_tracking_disabled
Project.find(2).disable_module! :issue_tracking
assert_not_include Project.find(2), Issue.allowed_target_projects_on_move(User.find(2))
end
Jean-Philippe Lang
When moving an issue to another project, reassign it to the category with same name if any (#1653)....
r1688 def test_move_to_another_project_with_same_category
Jean-Philippe Lang
Fixed: Update of time entry fails when the issue has been moved to an other project....
r896 issue = Issue.find(1)
Jean-Philippe Lang
Deprecated Issue#move_to_project....
r8419 issue.project = Project.find(2)
assert issue.save
Jean-Philippe Lang
Fixed: Update of time entry fails when the issue has been moved to an other project....
r896 issue.reload
assert_equal 2, issue.project_id
Jean-Philippe Lang
When moving an issue to another project, reassign it to the category with same name if any (#1653)....
r1688 # Category changes
assert_equal 4, issue.category_id
Jean-Philippe Lang
Fixed: Update of time entry fails when the issue has been moved to an other project....
r896 # Make sure time entries were move to the target project
assert_equal 2, issue.time_entries.first.project_id
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
When moving an issue to another project, reassign it to the category with same name if any (#1653)....
r1688 def test_move_to_another_project_without_same_category
issue = Issue.find(2)
Jean-Philippe Lang
Deprecated Issue#move_to_project....
r8419 issue.project = Project.find(2)
assert issue.save
Jean-Philippe Lang
When moving an issue to another project, reassign it to the category with same name if any (#1653)....
r1688 issue.reload
assert_equal 2, issue.project_id
# Category cleared
assert_nil issue.category_id
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Version sharing (#465) + optional inclusion of subprojects in the roadmap view (#2666)....
r3009 def test_move_to_another_project_should_clear_fixed_version_when_not_shared
issue = Issue.find(1)
issue.update_attribute(:fixed_version_id, 1)
Jean-Philippe Lang
Deprecated Issue#move_to_project....
r8419 issue.project = Project.find(2)
assert issue.save
Jean-Philippe Lang
Version sharing (#465) + optional inclusion of subprojects in the roadmap view (#2666)....
r3009 issue.reload
assert_equal 2, issue.project_id
# Cleared fixed_version
assert_equal nil, issue.fixed_version
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Version sharing (#465) + optional inclusion of subprojects in the roadmap view (#2666)....
r3009 def test_move_to_another_project_should_keep_fixed_version_when_shared_with_the_target_project
issue = Issue.find(1)
issue.update_attribute(:fixed_version_id, 4)
Jean-Philippe Lang
Deprecated Issue#move_to_project....
r8419 issue.project = Project.find(5)
assert issue.save
Jean-Philippe Lang
Version sharing (#465) + optional inclusion of subprojects in the roadmap view (#2666)....
r3009 issue.reload
assert_equal 5, issue.project_id
# Keep fixed_version
assert_equal 4, issue.fixed_version_id
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Version sharing (#465) + optional inclusion of subprojects in the roadmap view (#2666)....
r3009 def test_move_to_another_project_should_clear_fixed_version_when_not_shared_with_the_target_project
issue = Issue.find(1)
issue.update_attribute(:fixed_version_id, 1)
Jean-Philippe Lang
Deprecated Issue#move_to_project....
r8419 issue.project = Project.find(5)
assert issue.save
Jean-Philippe Lang
Version sharing (#465) + optional inclusion of subprojects in the roadmap view (#2666)....
r3009 issue.reload
assert_equal 5, issue.project_id
# Cleared fixed_version
assert_equal nil, issue.fixed_version
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Version sharing (#465) + optional inclusion of subprojects in the roadmap view (#2666)....
r3009 def test_move_to_another_project_should_keep_fixed_version_when_shared_systemwide
issue = Issue.find(1)
issue.update_attribute(:fixed_version_id, 7)
Jean-Philippe Lang
Deprecated Issue#move_to_project....
r8419 issue.project = Project.find(2)
assert issue.save
Jean-Philippe Lang
Version sharing (#465) + optional inclusion of subprojects in the roadmap view (#2666)....
r3009 issue.reload
assert_equal 2, issue.project_id
# Keep fixed_version
assert_equal 7, issue.fixed_version_id
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Fixed: error while moving an issue to a project with disabled tracker with SQLite3 (#5049)....
r3452 def test_move_to_another_project_with_disabled_tracker
issue = Issue.find(1)
target = Project.find(2)
target.tracker_ids = [3]
target.save
Jean-Philippe Lang
Deprecated Issue#move_to_project....
r8419 issue.project = target
assert issue.save
Jean-Philippe Lang
Fixed: error while moving an issue to a project with disabled tracker with SQLite3 (#5049)....
r3452 issue.reload
Jean-Philippe Lang
Deprecated Issue#move_to_project....
r8419 assert_equal 2, issue.project_id
assert_equal 3, issue.tracker_id
Jean-Philippe Lang
Fixed: error while moving an issue to a project with disabled tracker with SQLite3 (#5049)....
r3452 end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds ability to bulk copy issues (#1847)....
r2311 def test_copy_to_the_same_project
issue = Issue.find(1)
Jean-Philippe Lang
Deprecated Issue#move_to_project....
r8419 copy = issue.copy
Jean-Philippe Lang
Adds ability to bulk copy issues (#1847)....
r2311 assert_difference 'Issue.count' do
Jean-Philippe Lang
Deprecated Issue#move_to_project....
r8419 copy.save!
Jean-Philippe Lang
Adds ability to bulk copy issues (#1847)....
r2311 end
assert_kind_of Issue, copy
assert_equal issue.project, copy.project
assert_equal "125", copy.custom_value_for(2).value
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Adds ability to bulk copy issues (#1847)....
r2311 def test_copy_to_another_project_and_tracker
issue = Issue.find(1)
Jean-Philippe Lang
Deprecated Issue#move_to_project....
r8419 copy = issue.copy(:project_id => 3, :tracker_id => 2)
Jean-Philippe Lang
Adds ability to bulk copy issues (#1847)....
r2311 assert_difference 'Issue.count' do
Jean-Philippe Lang
Deprecated Issue#move_to_project....
r8419 copy.save!
Jean-Philippe Lang
Adds ability to bulk copy issues (#1847)....
r2311 end
Jean-Philippe Lang
Adds subtasking (#443) including:...
r3459 copy.reload
Jean-Philippe Lang
Adds ability to bulk copy issues (#1847)....
r2311 assert_kind_of Issue, copy
assert_equal Project.find(3), copy.project
assert_equal Tracker.find(2), copy.tracker
# Custom field #2 is not associated with target tracker
assert_nil copy.custom_value_for(2)
end
Eric Davis
Enhanced the Issue Bulk Copy feature:...
r3008
Jean-Philippe Lang
Deprecated Issue#move_to_project....
r8419 context "#copy" do
setup do
@issue = Issue.find(1)
end
should "not create a journal" do
copy = @issue.copy(:project_id => 3, :tracker_id => 2, :assigned_to_id => 3)
copy.save!
assert_equal 0, copy.reload.journals.size
end
should "allow assigned_to changes" do
copy = @issue.copy(:project_id => 3, :tracker_id => 2, :assigned_to_id => 3)
assert_equal 3, copy.assigned_to_id
end
should "allow status changes" do
copy = @issue.copy(:project_id => 3, :tracker_id => 2, :status_id => 2)
assert_equal 2, copy.status_id
end
should "allow start date changes" do
date = Date.today
copy = @issue.copy(:project_id => 3, :tracker_id => 2, :start_date => date)
assert_equal date, copy.start_date
end
should "allow due date changes" do
date = Date.today
copy = @issue.copy(:project_id => 3, :tracker_id => 2, :due_date => date)
assert_equal date, copy.due_date
end
should "set current user as author" do
User.current = User.find(9)
copy = @issue.copy(:project_id => 3, :tracker_id => 2)
assert_equal User.current, copy.author
end
should "create a journal with notes" do
date = Date.today
notes = "Notes added when copying"
copy = @issue.copy(:project_id => 3, :tracker_id => 2, :start_date => date)
copy.init_journal(User.current, notes)
copy.save!
assert_equal 1, copy.journals.size
journal = copy.journals.first
assert_equal 0, journal.details.size
assert_equal notes, journal.notes
Eric Davis
Enhanced the Issue Bulk Copy feature:...
r3008 end
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Notify previous assignee when assignee changes (#2694)....
r8575 def test_recipients_should_include_previous_assignee
user = User.find(3)
user.members.update_all ["mail_notification = ?", false]
user.update_attribute :mail_notification, 'only_assigned'
issue = Issue.find(2)
issue.assigned_to = nil
assert_include user.mail, issue.recipients
issue.save!
assert !issue.recipients.include?(user.mail)
end
Jean-Philippe Lang
Do not notify users that are no longer allowed to view an issue (#3589, #4263)....
r3007 def test_recipients_should_not_include_users_that_cannot_view_the_issue
issue = Issue.find(12)
assert issue.recipients.include?(issue.author.mail)
Jean-Philippe Lang
Deprecated Issue#move_to_project....
r8419 # copy the issue to a private project
copy = issue.copy(:project_id => 5, :tracker_id => 2)
Jean-Philippe Lang
Do not notify users that are no longer allowed to view an issue (#3589, #4263)....
r3007 # author is not a member of project anymore
assert !copy.recipients.include?(copy.author.mail)
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_test.rb....
r6626
Jean-Philippe Lang
Ability to assign issues to groups (#2964)....
r6186 def test_recipients_should_include_the_assigned_group_members
group_member = User.generate_with_protected!
group = Group.generate!
group.users << group_member
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_test.rb....
r6626
Jean-Philippe Lang
Ability to assign issues to groups (#2964)....
r6186 issue = Issue.find(12)
issue.assigned_to = group
assert issue.recipients.include?(group_member.mail)
end
Jean-Philippe Lang
Do not notify users that are no longer allowed to view an issue (#3589, #4263)....
r3007
def test_watcher_recipients_should_not_include_users_that_cannot_view_the_issue
user = User.find(3)
issue = Issue.find(9)
Watcher.create!(:user => user, :watchable => issue)
assert issue.watched_by?(user)
assert !issue.watcher_recipients.include?(user.mail)
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Let the user choose when deleting issues with reported hours (closes #734, #71):...
r1168 def test_issue_destroy
Issue.find(1).destroy
assert_nil Issue.find_by_id(1)
assert_nil TimeEntry.find_by_issue_id(1)
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Actually block issues from closing when a blocking issue isn't closed (#1740)....
r2700 def test_blocked
blocked_issue = Issue.find(9)
blocking_issue = Issue.find(10)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Actually block issues from closing when a blocking issue isn't closed (#1740)....
r2700 assert blocked_issue.blocked?
assert !blocking_issue.blocked?
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Actually block issues from closing when a blocking issue isn't closed (#1740)....
r2700 def test_blocked_issues_dont_allow_closed_statuses
blocked_issue = Issue.find(9)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Actually block issues from closing when a blocking issue isn't closed (#1740)....
r2700 allowed_statuses = blocked_issue.new_statuses_allowed_to(users(:users_002))
assert !allowed_statuses.empty?
closed_statuses = allowed_statuses.select {|st| st.is_closed?}
assert closed_statuses.empty?
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Actually block issues from closing when a blocking issue isn't closed (#1740)....
r2700 def test_unblocked_issues_allow_closed_statuses
blocking_issue = Issue.find(10)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Actually block issues from closing when a blocking issue isn't closed (#1740)....
r2700 allowed_statuses = blocking_issue.new_statuses_allowed_to(users(:users_002))
assert !allowed_statuses.empty?
closed_statuses = allowed_statuses.select {|st| st.is_closed?}
assert !closed_statuses.empty?
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Fixed: precedes/follows relations no longer update start/due dates (#5803)....
r4149 def test_rescheduling_an_issue_should_reschedule_following_issue
issue1 = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 1, :status_id => 1, :subject => '-', :start_date => Date.today, :due_date => Date.today + 2)
issue2 = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 1, :status_id => 1, :subject => '-', :start_date => Date.today, :due_date => Date.today + 2)
IssueRelation.create!(:issue_from => issue1, :issue_to => issue2, :relation_type => IssueRelation::TYPE_PRECEDES)
assert_equal issue1.due_date + 1, issue2.reload.start_date
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Fixed: precedes/follows relations no longer update start/due dates (#5803)....
r4149 issue1.due_date = Date.today + 5
issue1.save!
assert_equal issue1.due_date + 1, issue2.reload.start_date
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Prevent ActiveRecord::StaleObjectError in Issue#reschedule_after (#7920)....
r8744 def test_rescheduling_a_stale_issue_should_not_raise_an_error
stale = Issue.find(1)
issue = Issue.find(1)
issue.subject = "Updated"
issue.save!
date = 10.days.from_now.to_date
assert_nothing_raised do
stale.reschedule_after(date)
end
assert_equal date, stale.reload.start_date
end
Jean-Philippe Lang
Adds a css class (overdue) to overdue issues on issue lists and detail views (#2337)....
r2138 def test_overdue
Eric Davis
Fixed a failing test caused by comparing a Time object (n.day.ago) with a Date object...
r2139 assert Issue.new(:due_date => 1.day.ago.to_date).overdue?
Jean-Philippe Lang
Adds a css class (overdue) to overdue issues on issue lists and detail views (#2337)....
r2138 assert !Issue.new(:due_date => Date.today).overdue?
Eric Davis
Fixed a failing test caused by comparing a Time object (n.day.ago) with a Date object...
r2139 assert !Issue.new(:due_date => 1.day.from_now.to_date).overdue?
Jean-Philippe Lang
Adds a css class (overdue) to overdue issues on issue lists and detail views (#2337)....
r2138 assert !Issue.new(:due_date => nil).overdue?
Jean-Philippe Lang
Closed issue are not overdue, fixes r2140 (#2337)....
r2357 assert !Issue.new(:due_date => 1.day.ago.to_date, :status => IssueStatus.find(:first, :conditions => {:is_closed => true})).overdue?
Jean-Philippe Lang
Adds a css class (overdue) to overdue issues on issue lists and detail views (#2337)....
r2138 end
Eric Davis
Rewrite the Gantt chart. #6276...
r3958
context "#behind_schedule?" do
should "be false if the issue has no start_date" do
assert !Issue.new(:start_date => nil, :due_date => 1.day.from_now.to_date, :done_ratio => 0).behind_schedule?
end
should "be false if the issue has no end_date" do
assert !Issue.new(:start_date => 1.day.from_now.to_date, :due_date => nil, :done_ratio => 0).behind_schedule?
end
should "be false if the issue has more done than it's calendar time" do
assert !Issue.new(:start_date => 50.days.ago.to_date, :due_date => 50.days.from_now.to_date, :done_ratio => 90).behind_schedule?
end
should "be true if the issue hasn't been started at all" do
assert Issue.new(:start_date => 1.day.ago.to_date, :due_date => 1.day.from_now.to_date, :done_ratio => 0).behind_schedule?
end
should "be true if the issue has used more calendar time than it's done ratio" do
assert Issue.new(:start_date => 100.days.ago.to_date, :due_date => Date.today, :done_ratio => 90).behind_schedule?
end
end
Eric Davis
Allow assigning issues back to the author. #4199...
r4126
context "#assignable_users" do
should "be Users" do
assert_kind_of User, Issue.find(1).assignable_users.first
end
should "include the issue author" do
project = Project.find(1)
non_project_member = User.generate!
issue = Issue.generate_for_project!(project, :author => non_project_member)
assert issue.assignable_users.include?(non_project_member)
end
Eric Davis
Don't duplicate users in Issue#assignable_users. From r4240...
r4127
Jean-Philippe Lang
Assignee is removed on issue update if assignee account is locked (#8884)....
r6188 should "include the current assignee" do
project = Project.find(1)
user = User.generate!
issue = Issue.generate_for_project!(project, :assigned_to => user)
user.lock!
assert Issue.find(issue.id).assignable_users.include?(user)
end
Eric Davis
Don't duplicate users in Issue#assignable_users. From r4240...
r4127 should "not show the issue author twice" do
assignable_user_ids = Issue.find(1).assignable_users.collect(&:id)
assert_equal 2, assignable_user_ids.length
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Eric Davis
Don't duplicate users in Issue#assignable_users. From r4240...
r4127 assignable_user_ids.each do |user_id|
Jean-Philippe Lang
Fixes a NoMethodError in tests with ruby 1.8.6....
r4294 assert_equal 1, assignable_user_ids.select {|i| i == user_id}.length, "User #{user_id} appears more or less than once"
Eric Davis
Don't duplicate users in Issue#assignable_users. From r4240...
r4127 end
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_test.rb....
r6626
Jean-Philippe Lang
Ability to assign issues to groups (#2964)....
r6186 context "with issue_group_assignment" do
should "include groups" do
issue = Issue.new(:project => Project.find(2))
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_test.rb....
r6626
Jean-Philippe Lang
Ability to assign issues to groups (#2964)....
r6186 with_settings :issue_group_assignment => '1' do
assert_equal %w(Group User), issue.assignable_users.map {|a| a.class.name}.uniq.sort
assert issue.assignable_users.include?(Group.find(11))
end
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_test.rb....
r6626
Jean-Philippe Lang
Ability to assign issues to groups (#2964)....
r6186 context "without issue_group_assignment" do
should "not include groups" do
issue = Issue.new(:project => Project.find(2))
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_test.rb....
r6626
Jean-Philippe Lang
Ability to assign issues to groups (#2964)....
r6186 with_settings :issue_group_assignment => '0' do
assert_equal %w(User), issue.assignable_users.map {|a| a.class.name}.uniq.sort
assert !issue.assignable_users.include?(Group.find(11))
end
end
end
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Eric Davis
Added observers to watch model objects for mail delivery instead of calling Mailer....
r2548 def test_create_should_send_email_notification
ActionMailer::Base.deliveries.clear
Toshi MARUYAMA
code layout clean up of test_create_should_send_email_notification at test/unit/issue_test.rb...
r7359 issue = Issue.new(:project_id => 1, :tracker_id => 1,
:author_id => 3, :status_id => 1,
:priority => IssuePriority.all.first,
:subject => 'test_create', :estimated_hours => '1:30')
Eric Davis
Added observers to watch model objects for mail delivery instead of calling Mailer....
r2548
assert issue.save
assert_equal 1, ActionMailer::Base.deliveries.size
end
Eric Davis
Added tests for Issue#recipients...
r4103
Jean-Philippe Lang
Create the journal after issue save (#3140)....
r2577 def test_stale_issue_should_not_send_email_notification
ActionMailer::Base.deliveries.clear
issue = Issue.find(1)
stale = Issue.find(1)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Create the journal after issue save (#3140)....
r2577 issue.init_journal(User.find(1))
issue.subject = 'Subjet update'
assert issue.save
assert_equal 1, ActionMailer::Base.deliveries.size
ActionMailer::Base.deliveries.clear
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Create the journal after issue save (#3140)....
r2577 stale.init_journal(User.find(1))
stale.subject = 'Another subjet update'
assert_raise ActiveRecord::StaleObjectError do
stale.save
end
assert ActionMailer::Base.deliveries.empty?
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Keep track of issue description changes (#746)....
r4834 def test_journalized_description
Jean-Philippe Lang
Fixes a failing test....
r4838 IssueCustomField.delete_all
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Keep track of issue description changes (#746)....
r4834 i = Issue.first
old_description = i.description
new_description = "This is the new description"
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Keep track of issue description changes (#746)....
r4834 i.init_journal(User.find(2))
i.description = new_description
assert_difference 'Journal.count', 1 do
assert_difference 'JournalDetail.count', 1 do
i.save!
end
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Keep track of issue description changes (#746)....
r4834 detail = JournalDetail.first(:order => 'id DESC')
assert_equal i, detail.journal.journalized
assert_equal 'attr', detail.property
assert_equal 'description', detail.prop_key
assert_equal old_description, detail.old_value
assert_equal new_description, detail.value
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_test.rb....
r6626
Jean-Philippe Lang
Do not journalize blank description changes (#8712)....
r6027 def test_blank_descriptions_should_not_be_journalized
IssueCustomField.delete_all
Issue.update_all("description = NULL", "id=1")
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_test.rb....
r6626
Jean-Philippe Lang
Normalize issue description EOLs do prevent false journal details (#8712)....
r6029 i = Issue.find(1)
Jean-Philippe Lang
Do not journalize blank description changes (#8712)....
r6027 i.init_journal(User.find(2))
i.subject = "blank description"
i.description = "\r\n"
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_test.rb....
r6626
Jean-Philippe Lang
Do not journalize blank description changes (#8712)....
r6027 assert_difference 'Journal.count', 1 do
assert_difference 'JournalDetail.count', 1 do
i.save!
end
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/issue_test.rb....
r6626
Jean-Philippe Lang
Adds support for multiselect custom fields (#1189)....
r8601 def test_journalized_multi_custom_field
field = IssueCustomField.create!(:name => 'filter', :field_format => 'list', :is_filter => true, :is_for_all => true,
:tracker_ids => [1], :possible_values => ['value1', 'value2', 'value3'], :multiple => true)
issue = Issue.create!(:project_id => 1, :tracker_id => 1, :subject => 'Test', :author_id => 1)
assert_difference 'Journal.count' do
assert_difference 'JournalDetail.count' do
issue.init_journal(User.first)
issue.custom_field_values = {field.id => ['value1']}
issue.save!
end
assert_difference 'JournalDetail.count' do
issue.init_journal(User.first)
issue.custom_field_values = {field.id => ['value1', 'value2']}
issue.save!
end
assert_difference 'JournalDetail.count', 2 do
issue.init_journal(User.first)
issue.custom_field_values = {field.id => ['value3', 'value2']}
issue.save!
end
assert_difference 'JournalDetail.count', 2 do
issue.init_journal(User.first)
issue.custom_field_values = {field.id => nil}
issue.save!
end
end
end
Jean-Philippe Lang
Normalize issue description EOLs do prevent false journal details (#8712)....
r6029 def test_description_eol_should_be_normalized
i = Issue.new(:description => "CR \r LF \n CRLF \r\n")
assert_equal "CR \r\n LF \r\n CRLF \r\n", i.description
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Fixed: journal details duplicated when an issue is saved twice (#3690)....
r3385 def test_saving_twice_should_not_duplicate_journal_details
i = Issue.find(:first)
i.init_journal(User.find(2), 'Some notes')
Jean-Philippe Lang
Fixes a test failure due to a default custom field value....
r3395 # initial changes
Jean-Philippe Lang
Fixed: journal details duplicated when an issue is saved twice (#3690)....
r3385 i.subject = 'New subject'
i.done_ratio = i.done_ratio + 10
assert_difference 'Journal.count' do
Jean-Philippe Lang
Fixes a test failure due to a default custom field value....
r3395 assert i.save
Jean-Philippe Lang
Fixed: journal details duplicated when an issue is saved twice (#3690)....
r3385 end
# 1 more change
i.priority = IssuePriority.find(:first, :conditions => ["id <> ?", i.priority_id])
assert_no_difference 'Journal.count' do
assert_difference 'JournalDetail.count', 1 do
i.save
end
end
# no more change
assert_no_difference 'Journal.count' do
assert_no_difference 'JournalDetail.count' do
i.save
end
end
end
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037
Jean-Philippe Lang
Prevent SystemStackError on Issue#all_dependent_issues with circular dependency (#7320)....
r4603 def test_all_dependent_issues
IssueRelation.delete_all
Toshi MARUYAMA
code layout clean up of test_all_dependent_issues at test/unit/issue_test.rb...
r7358 assert IssueRelation.create!(:issue_from => Issue.find(1),
:issue_to => Issue.find(2),
:relation_type => IssueRelation::TYPE_PRECEDES)
assert IssueRelation.create!(:issue_from => Issue.find(2),
:issue_to => Issue.find(3),
:relation_type => IssueRelation::TYPE_PRECEDES)
assert IssueRelation.create!(:issue_from => Issue.find(3),
:issue_to => Issue.find(8),
:relation_type => IssueRelation::TYPE_PRECEDES)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Prevent SystemStackError on Issue#all_dependent_issues with circular dependency (#7320)....
r4603 assert_equal [2, 3, 8], Issue.find(1).all_dependent_issues.collect(&:id).sort
end
def test_all_dependent_issues_with_persistent_circular_dependency
IssueRelation.delete_all
Toshi MARUYAMA
code layout clean up of test_all_dependent_issues_with_persistent_circular_dependency at test/unit/issue_test.rb...
r7341 assert IssueRelation.create!(:issue_from => Issue.find(1),
:issue_to => Issue.find(2),
:relation_type => IssueRelation::TYPE_PRECEDES)
assert IssueRelation.create!(:issue_from => Issue.find(2),
:issue_to => Issue.find(3),
:relation_type => IssueRelation::TYPE_PRECEDES)
Jean-Philippe Lang
Prevent SystemStackError on Issue#all_dependent_issues with circular dependency (#7320)....
r4603 # Validation skipping
Toshi MARUYAMA
code layout clean up of test_all_dependent_issues_with_persistent_circular_dependency at test/unit/issue_test.rb...
r7341 assert IssueRelation.new(:issue_from => Issue.find(3),
:issue_to => Issue.find(1),
:relation_type => IssueRelation::TYPE_PRECEDES).save(false)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Prevent SystemStackError on Issue#all_dependent_issues with circular dependency (#7320)....
r4603 assert_equal [2, 3], Issue.find(1).all_dependent_issues.collect(&:id).sort
end
Jean-Philippe Lang
Prevent SystemStackError on Issue#all_dependent_issues with mutiple circular dependencies (#7320)....
r4984
def test_all_dependent_issues_with_persistent_multiple_circular_dependencies
IssueRelation.delete_all
Toshi MARUYAMA
code layout clean up of test_all_dependent_issues_with_persistent_multiple_circular_dependencies at test/unit/issue_test.rb...
r7342 assert IssueRelation.create!(:issue_from => Issue.find(1),
:issue_to => Issue.find(2),
:relation_type => IssueRelation::TYPE_RELATES)
assert IssueRelation.create!(:issue_from => Issue.find(2),
:issue_to => Issue.find(3),
:relation_type => IssueRelation::TYPE_RELATES)
assert IssueRelation.create!(:issue_from => Issue.find(3),
:issue_to => Issue.find(8),
:relation_type => IssueRelation::TYPE_RELATES)
Jean-Philippe Lang
Prevent SystemStackError on Issue#all_dependent_issues with mutiple circular dependencies (#7320)....
r4984 # Validation skipping
Toshi MARUYAMA
code layout clean up of test_all_dependent_issues_with_persistent_multiple_circular_dependencies at test/unit/issue_test.rb...
r7342 assert IssueRelation.new(:issue_from => Issue.find(8),
:issue_to => Issue.find(2),
:relation_type => IssueRelation::TYPE_RELATES).save(false)
assert IssueRelation.new(:issue_from => Issue.find(3),
:issue_to => Issue.find(1),
:relation_type => IssueRelation::TYPE_RELATES).save(false)
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Prevent SystemStackError on Issue#all_dependent_issues with mutiple circular dependencies (#7320)....
r4984 assert_equal [2, 3, 8], Issue.find(1).all_dependent_issues.collect(&:id).sort
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037 context "#done_ratio" do
setup do
@issue = Issue.find(1)
@issue_status = IssueStatus.find(1)
@issue_status.update_attribute(:default_done_ratio, 50)
Eric Davis
Fixes reverting an issue to a status with a done_ratio of 0%. #5170...
r4072 @issue2 = Issue.find(2)
@issue_status2 = IssueStatus.find(2)
@issue_status2.update_attribute(:default_done_ratio, 0)
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037 end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Jean-Philippe Lang
Do not change settings in tests....
r8106 teardown do
Setting.issue_done_ratio = 'issue_field'
end
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037 context "with Setting.issue_done_ratio using the issue_field" do
setup do
Setting.issue_done_ratio = 'issue_field'
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037 should "read the issue's field" do
assert_equal 0, @issue.done_ratio
Eric Davis
Fixes reverting an issue to a status with a done_ratio of 0%. #5170...
r4072 assert_equal 30, @issue2.done_ratio
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037 end
end
context "with Setting.issue_done_ratio using the issue_status" do
setup do
Setting.issue_done_ratio = 'issue_status'
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037 should "read the Issue Status's default done ratio" do
assert_equal 50, @issue.done_ratio
Eric Davis
Fixes reverting an issue to a status with a done_ratio of 0%. #5170...
r4072 assert_equal 0, @issue2.done_ratio
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037 end
end
end
context "#update_done_ratio_from_issue_status" do
setup do
@issue = Issue.find(1)
@issue_status = IssueStatus.find(1)
@issue_status.update_attribute(:default_done_ratio, 50)
Eric Davis
Fixes reverting an issue to a status with a done_ratio of 0%. #5170...
r4072 @issue2 = Issue.find(2)
@issue_status2 = IssueStatus.find(2)
@issue_status2.update_attribute(:default_done_ratio, 0)
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037 end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037 context "with Setting.issue_done_ratio using the issue_field" do
setup do
Setting.issue_done_ratio = 'issue_field'
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037 should "not change the issue" do
@issue.update_done_ratio_from_issue_status
Eric Davis
Fixes reverting an issue to a status with a done_ratio of 0%. #5170...
r4072 @issue2.update_done_ratio_from_issue_status
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037
Eric Davis
Fixes reverting an issue to a status with a done_ratio of 0%. #5170...
r4072 assert_equal 0, @issue.read_attribute(:done_ratio)
assert_equal 30, @issue2.read_attribute(:done_ratio)
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037 end
end
context "with Setting.issue_done_ratio using the issue_status" do
setup do
Setting.issue_done_ratio = 'issue_status'
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Eric Davis
Fixes reverting an issue to a status with a done_ratio of 0%. #5170...
r4072 should "change the issue's done ratio" do
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037 @issue.update_done_ratio_from_issue_status
Eric Davis
Fixes reverting an issue to a status with a done_ratio of 0%. #5170...
r4072 @issue2.update_done_ratio_from_issue_status
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037
Eric Davis
Fixes reverting an issue to a status with a done_ratio of 0%. #5170...
r4072 assert_equal 50, @issue.read_attribute(:done_ratio)
assert_equal 0, @issue2.read_attribute(:done_ratio)
Eric Davis
Adds a Setting to control how an Issue's done_ratio is calculated:...
r3037 end
end
end
Eric Davis
Added tests for Issue#by_X finders...
r3250
test "#by_tracker" do
Jean-Philippe Lang
Adds visibility condition to Issue.by_* count methods....
r5245 User.current = User.anonymous
Eric Davis
Added tests for Issue#by_X finders...
r3250 groups = Issue.by_tracker(Project.find(1))
assert_equal 3, groups.size
assert_equal 7, groups.inject(0) {|sum, group| sum + group['total'].to_i}
end
test "#by_version" do
Jean-Philippe Lang
Adds visibility condition to Issue.by_* count methods....
r5245 User.current = User.anonymous
Eric Davis
Added tests for Issue#by_X finders...
r3250 groups = Issue.by_version(Project.find(1))
assert_equal 3, groups.size
assert_equal 3, groups.inject(0) {|sum, group| sum + group['total'].to_i}
end
test "#by_priority" do
Jean-Philippe Lang
Adds visibility condition to Issue.by_* count methods....
r5245 User.current = User.anonymous
Eric Davis
Added tests for Issue#by_X finders...
r3250 groups = Issue.by_priority(Project.find(1))
assert_equal 4, groups.size
assert_equal 7, groups.inject(0) {|sum, group| sum + group['total'].to_i}
end
test "#by_category" do
Jean-Philippe Lang
Adds visibility condition to Issue.by_* count methods....
r5245 User.current = User.anonymous
Eric Davis
Added tests for Issue#by_X finders...
r3250 groups = Issue.by_category(Project.find(1))
assert_equal 2, groups.size
assert_equal 3, groups.inject(0) {|sum, group| sum + group['total'].to_i}
end
test "#by_assigned_to" do
Jean-Philippe Lang
Adds visibility condition to Issue.by_* count methods....
r5245 User.current = User.anonymous
Eric Davis
Added tests for Issue#by_X finders...
r3250 groups = Issue.by_assigned_to(Project.find(1))
assert_equal 2, groups.size
assert_equal 2, groups.inject(0) {|sum, group| sum + group['total'].to_i}
end
test "#by_author" do
Jean-Philippe Lang
Adds visibility condition to Issue.by_* count methods....
r5245 User.current = User.anonymous
Eric Davis
Added tests for Issue#by_X finders...
r3250 groups = Issue.by_author(Project.find(1))
assert_equal 4, groups.size
assert_equal 7, groups.inject(0) {|sum, group| sum + group['total'].to_i}
end
test "#by_subproject" do
Jean-Philippe Lang
Adds visibility condition to Issue.by_* count methods....
r5245 User.current = User.anonymous
Eric Davis
Added tests for Issue#by_X finders...
r3250 groups = Issue.by_subproject(Project.find(1))
Jean-Philippe Lang
Adds visibility condition to Issue.by_* count methods....
r5245 # Private descendant not visible
assert_equal 1, groups.size
assert_equal 2, groups.inject(0) {|sum, group| sum + group['total'].to_i}
Eric Davis
Added tests for Issue#by_X finders...
r3250 end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Eric Davis
Adds named scopes to replace custom finders....
r3443 def test_recently_updated_with_limit_scopes
#should return the last updated issue
assert_equal 1, Issue.recently_updated.with_limit(1).length
assert_equal Issue.find(:first, :order => "updated_on DESC"), Issue.recently_updated.with_limit(1).first
end
def test_on_active_projects_scope
assert Project.find(2).archive
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Eric Davis
Adds named scopes to replace custom finders....
r3443 before = Issue.on_active_project.length
# test inclusion to results
issue = Issue.generate_for_project!(Project.find(1), :tracker => Project.find(2).trackers.first)
assert_equal before + 1, Issue.on_active_project.length
# Move to an archived project
issue.project = Project.find(2)
assert issue.save
assert_equal before, Issue.on_active_project.length
end
Eric Davis
Added tests for Issue#recipients...
r4103
context "Issue#recipients" do
setup do
@project = Project.find(1)
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104 @author = User.generate_with_protected!
@assignee = User.generate_with_protected!
@issue = Issue.generate_for_project!(@project, :assigned_to => @assignee, :author => @author)
Eric Davis
Added tests for Issue#recipients...
r4103 end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Eric Davis
Added tests for Issue#recipients...
r4103 should "include project recipients" do
assert @project.recipients.present?
@project.recipients.each do |project_recipient|
assert @issue.recipients.include?(project_recipient)
end
end
should "include the author if the author is active" do
assert @issue.author, "No author set for Issue"
assert @issue.recipients.include?(@issue.author.mail)
end
Toshi MARUYAMA
remove trailing white-spaces and empty lines from unit issue test....
r5686
Eric Davis
Added tests for Issue#recipients...
r4103 should "include the assigned to user if the assigned to user is active" do
assert @issue.assigned_to, "No assigned_to set for Issue"
assert @issue.recipients.include?(@issue.assigned_to.mail)
end
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104
should "not include users who opt out of all email" do
@author.update_attribute(:mail_notification, :none)
assert !@issue.recipients.include?(@issue.author.mail)
end
should "not include the issue author if they are only notified of assigned issues" do
@author.update_attribute(:mail_notification, :only_assigned)
assert !@issue.recipients.include?(@issue.author.mail)
end
should "not include the assigned user if they are only notified of owned issues" do
@assignee.update_attribute(:mail_notification, :only_owner)
assert !@issue.recipients.include?(@issue.assigned_to.mail)
end
Jean-Philippe Lang
Better handling of issue update conflicts (#8691)....
r8654 end
def test_last_journal_id_with_journals_should_return_the_journal_id
assert_equal 2, Issue.find(1).last_journal_id
end
Eric Davis
Added User#notify_about? to check when a user should be notified about an event...
r4104
Jean-Philippe Lang
Better handling of issue update conflicts (#8691)....
r8654 def test_last_journal_id_without_journals_should_return_nil
assert_nil Issue.find(3).last_journal_id
Eric Davis
Added tests for Issue#recipients...
r4103 end
Jean-Philippe Lang
Each category can now be associated to a user, so that new issues in that category are automatically assigned to that user....
r574 end