Mercurial > hg > soundsoftware-site
diff test/unit/issue_test.rb @ 1517:dffacf8a6908 redmine-2.5
Update to Redmine SVN revision 13367 on 2.5-stable branch
author | Chris Cannam |
---|---|
date | Tue, 09 Sep 2014 09:29:00 +0100 |
parents | e248c7af89ec |
children |
line wrap: on
line diff
--- a/test/unit/issue_test.rb Tue Sep 09 09:28:31 2014 +0100 +++ b/test/unit/issue_test.rb Tue Sep 09 09:29:00 2014 +0100 @@ -154,7 +154,7 @@ assert Issue.new(:project_id => 2, :tracker_id => 1, :author_id => 1, :subject => 'Group assignment', :assigned_to_id => 11).save - issue = Issue.first(:order => 'id DESC') + issue = Issue.order('id DESC').first assert_kind_of Group, issue.assigned_to assert_equal Group.find(11), issue.assigned_to end @@ -330,7 +330,23 @@ end def test_visible_and_nested_set_scopes - assert_equal 0, Issue.find(1).descendants.visible.all.size + user = User.generate! + parent = Issue.generate!(:assigned_to => user) + assert parent.visible?(user) + child1 = Issue.generate!(:parent_issue_id => parent.id, :assigned_to => user) + child2 = Issue.generate!(:parent_issue_id => parent.id, :assigned_to => user) + parent.reload + child1.reload + child2.reload + assert child1.visible?(user) + assert child2.visible?(user) + assert_equal 2, parent.descendants.count + assert_equal 2, parent.descendants.visible(user).count + # awesome_nested_set 2-1-stable branch has regression. + # https://github.com/collectiveidea/awesome_nested_set/commit/3d5ac746542b564f6586c2316180254b088bebb6 + # ActiveRecord::StatementInvalid: SQLite3::SQLException: ambiguous column name: lft: + assert_equal 2, parent.descendants.collect{|i| i}.size + assert_equal 2, parent.descendants.visible(user).collect{|i| i}.size end def test_open_scope @@ -564,8 +580,8 @@ issue = Issue.find(1) assert !admin.member_of?(issue.project) expected_statuses = [issue.status] + - WorkflowTransition.find_all_by_old_status_id( - issue.status_id).map(&:new_status).uniq.sort + WorkflowTransition.where(:old_status_id => issue.status_id). + map(&:new_status).uniq.sort assert_equal expected_statuses, issue.new_statuses_allowed_to(admin) end @@ -690,6 +706,16 @@ assert values.detect {|value| value.custom_field == cf2} end + def test_editable_custom_fields_should_return_custom_field_that_is_enabled_for_the_role_only + enabled_cf = IssueCustomField.generate!(:is_for_all => true, :tracker_ids => [1], :visible => false, :role_ids => [1,2]) + disabled_cf = IssueCustomField.generate!(:is_for_all => true, :tracker_ids => [1], :visible => false, :role_ids => [2]) + user = User.find(2) + issue = Issue.new(:project_id => 1, :tracker_id => 1) + + assert_include enabled_cf, issue.editable_custom_fields(user) + assert_not_include disabled_cf, issue.editable_custom_fields(user) + end + def test_safe_attributes_should_accept_target_tracker_writable_fields WorkflowPermission.delete_all WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1, @@ -1375,6 +1401,15 @@ assert_nil TimeEntry.find_by_issue_id(1) end + def test_destroy_should_delete_time_entries_custom_values + issue = Issue.generate! + time_entry = TimeEntry.generate!(:issue => issue, :custom_field_values => {10 => '1'}) + + assert_difference 'CustomValue.where(:customized_type => "TimeEntry").count', -1 do + assert issue.destroy + end + end + def test_destroying_a_deleted_issue_should_not_raise_an_error issue = Issue.find(1) Issue.find(1).destroy @@ -1695,9 +1730,34 @@ :author_id => 3, :status_id => 1, :priority => IssuePriority.all.first, :subject => 'test_create', :estimated_hours => '1:30') + with_settings :notified_events => %w(issue_added) do + assert issue.save + assert_equal 1, ActionMailer::Base.deliveries.size + end + end - assert issue.save - assert_equal 1, ActionMailer::Base.deliveries.size + def test_create_should_send_one_email_notification_with_both_settings + ActionMailer::Base.deliveries.clear + 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') + with_settings :notified_events => %w(issue_added issue_updated) do + assert issue.save + assert_equal 1, ActionMailer::Base.deliveries.size + end + end + + def test_create_should_not_send_email_notification_with_no_setting + ActionMailer::Base.deliveries.clear + 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') + with_settings :notified_events => [] do + assert issue.save + assert_equal 0, ActionMailer::Base.deliveries.size + end end def test_update_should_notify_previous_assignee @@ -1720,16 +1780,18 @@ issue.init_journal(User.find(1)) issue.subject = 'Subjet update' - assert issue.save - assert_equal 1, ActionMailer::Base.deliveries.size - ActionMailer::Base.deliveries.clear + with_settings :notified_events => %w(issue_updated) do + assert issue.save + assert_equal 1, ActionMailer::Base.deliveries.size + ActionMailer::Base.deliveries.clear - stale.init_journal(User.find(1)) - stale.subject = 'Another subjet update' - assert_raise ActiveRecord::StaleObjectError do - stale.save + 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 - assert ActionMailer::Base.deliveries.empty? end def test_journalized_description @@ -1747,7 +1809,7 @@ end end - detail = JournalDetail.first(:order => 'id DESC') + detail = JournalDetail.order('id DESC').first assert_equal i, detail.journal.journalized assert_equal 'attr', detail.property assert_equal 'description', detail.prop_key @@ -1757,7 +1819,7 @@ def test_blank_descriptions_should_not_be_journalized IssueCustomField.delete_all - Issue.update_all("description = NULL", "id=1") + Issue.where(:id => 1).update_all("description = NULL") i = Issue.find(1) i.init_journal(User.find(2)) @@ -1991,7 +2053,7 @@ r = IssueRelation.create!(:issue_from => Issue.find(3), :issue_to => Issue.find(7), :relation_type => IssueRelation::TYPE_PRECEDES) - IssueRelation.update_all("issue_to_id = 1", ["id = ?", r.id]) + IssueRelation.where(["id = ?", r.id]).update_all("issue_to_id = 1") assert_equal [2, 3], Issue.find(1).all_dependent_issues.collect(&:id).sort end @@ -2011,12 +2073,12 @@ r = IssueRelation.create!(:issue_from => Issue.find(8), :issue_to => Issue.find(7), :relation_type => IssueRelation::TYPE_RELATES) - IssueRelation.update_all("issue_to_id = 2", ["id = ?", r.id]) + IssueRelation.where(["id = ?", r.id]).update_all("issue_to_id = 2") r = IssueRelation.create!(:issue_from => Issue.find(3), :issue_to => Issue.find(7), :relation_type => IssueRelation::TYPE_RELATES) - IssueRelation.update_all("issue_to_id = 1", ["id = ?", r.id]) + IssueRelation.where(["id = ?", r.id]).update_all("issue_to_id = 1") assert_equal [2, 3, 8], Issue.find(1).all_dependent_issues.collect(&:id).sort end