2011-10-29 16:19:11 +04:00
|
|
|
#-- encoding: UTF-8
|
2011-05-30 00:11:52 +04:00
|
|
|
#-- copyright
|
|
|
|
# ChiliProject is a project management system.
|
2011-05-30 22:52:25 +04:00
|
|
|
#
|
2012-01-03 23:36:40 +04:00
|
|
|
# Copyright (C) 2010-2012 the ChiliProject Team
|
2011-05-30 22:52:25 +04:00
|
|
|
#
|
2010-09-29 00:20:00 +04:00
|
|
|
# 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.
|
2011-05-30 22:52:25 +04:00
|
|
|
#
|
2011-05-30 00:11:52 +04:00
|
|
|
# See doc/COPYRIGHT.rdoc for more details.
|
|
|
|
#++
|
2010-12-13 02:24:34 +03:00
|
|
|
require File.expand_path('../../test_helper', __FILE__)
|
2010-09-29 00:20:00 +04:00
|
|
|
|
|
|
|
class JournalObserverTest < ActiveSupport::TestCase
|
|
|
|
def setup
|
2011-12-19 19:56:01 +04:00
|
|
|
super
|
2011-06-02 07:53:18 +04:00
|
|
|
@user = User.generate!(:mail_notification => 'all')
|
|
|
|
@project = Project.generate!
|
|
|
|
User.add_to_project(@user, @project, Role.generate!(:permissions => [:view_issues, :edit_issues]))
|
|
|
|
@issue = Issue.generate_for_project!(@project)
|
2010-09-29 00:20:00 +04:00
|
|
|
ActionMailer::Base.deliveries.clear
|
|
|
|
end
|
|
|
|
|
2011-06-02 07:53:18 +04:00
|
|
|
context "#after_create for 'issue_updated'" do
|
|
|
|
should "should send a notification when configured as a notification" do
|
|
|
|
Setting.notified_events = ['issue_updated']
|
2011-02-24 22:10:23 +03:00
|
|
|
assert_difference('ActionMailer::Base.deliveries.size', 2) do
|
2011-06-02 07:53:18 +04:00
|
|
|
@issue.init_journal(@user)
|
|
|
|
@issue.subject = "A change to the issue"
|
|
|
|
assert @issue.save
|
|
|
|
end
|
|
|
|
end
|
2011-05-30 22:52:25 +04:00
|
|
|
|
2011-06-02 07:53:18 +04:00
|
|
|
should "not send a notification with not configured" do
|
|
|
|
Setting.notified_events = []
|
|
|
|
assert_no_difference('ActionMailer::Base.deliveries.size') do
|
|
|
|
@issue.init_journal(@user)
|
|
|
|
@issue.subject = "A change to the issue"
|
|
|
|
assert @issue.save
|
|
|
|
end
|
|
|
|
end
|
2011-08-27 20:26:12 +04:00
|
|
|
|
2010-09-29 00:20:00 +04:00
|
|
|
end
|
|
|
|
|
2011-06-02 07:53:18 +04:00
|
|
|
context "#after_create for 'issue_note_added'" do
|
|
|
|
should "should send a notification when configured as a notification" do
|
|
|
|
Setting.notified_events = ['issue_note_added']
|
2011-02-24 22:10:23 +03:00
|
|
|
assert_difference('ActionMailer::Base.deliveries.size', 2) do
|
2011-06-02 07:53:18 +04:00
|
|
|
@issue.init_journal(@user, 'This update has a note')
|
|
|
|
assert @issue.save
|
|
|
|
end
|
2011-08-27 20:26:12 +04:00
|
|
|
|
2011-06-02 07:53:18 +04:00
|
|
|
end
|
2010-09-29 00:20:00 +04:00
|
|
|
|
2011-06-02 07:53:18 +04:00
|
|
|
should "not send a notification with not configured" do
|
|
|
|
Setting.notified_events = []
|
|
|
|
assert_no_difference('ActionMailer::Base.deliveries.size') do
|
|
|
|
@issue.init_journal(@user, 'This update has a note')
|
|
|
|
assert @issue.save
|
|
|
|
end
|
2011-08-27 20:26:12 +04:00
|
|
|
|
2011-06-02 07:53:18 +04:00
|
|
|
end
|
2010-09-29 00:20:00 +04:00
|
|
|
end
|
|
|
|
|
2011-06-02 07:53:18 +04:00
|
|
|
context "#after_create for 'issue_status_updated'" do
|
|
|
|
should "should send a notification when configured as a notification" do
|
|
|
|
Setting.notified_events = ['issue_status_updated']
|
2011-02-24 22:10:23 +03:00
|
|
|
assert_difference('ActionMailer::Base.deliveries.size', 2) do
|
2011-06-02 07:53:18 +04:00
|
|
|
@issue.init_journal(@user)
|
|
|
|
@issue.status = IssueStatus.generate!
|
|
|
|
assert @issue.save
|
2011-05-30 22:52:25 +04:00
|
|
|
|
2011-06-02 07:53:18 +04:00
|
|
|
end
|
2011-08-27 20:26:12 +04:00
|
|
|
|
2011-06-02 07:53:18 +04:00
|
|
|
end
|
2010-09-29 00:20:00 +04:00
|
|
|
|
2011-06-02 07:53:18 +04:00
|
|
|
should "not send a notification with not configured" do
|
|
|
|
Setting.notified_events = []
|
|
|
|
assert_no_difference('ActionMailer::Base.deliveries.size') do
|
|
|
|
@issue.init_journal(@user)
|
|
|
|
@issue.status = IssueStatus.generate!
|
|
|
|
assert @issue.save
|
2010-09-29 00:20:00 +04:00
|
|
|
|
2011-06-02 07:53:18 +04:00
|
|
|
end
|
|
|
|
end
|
2010-09-29 00:20:00 +04:00
|
|
|
end
|
|
|
|
|
2011-06-02 07:53:18 +04:00
|
|
|
context "#after_create for 'issue_priority_updated'" do
|
|
|
|
should "should send a notification when configured as a notification" do
|
|
|
|
Setting.notified_events = ['issue_priority_updated']
|
2011-02-24 22:10:23 +03:00
|
|
|
assert_difference('ActionMailer::Base.deliveries.size', 2) do
|
2011-06-02 07:53:18 +04:00
|
|
|
@issue.init_journal(@user)
|
|
|
|
@issue.priority = IssuePriority.generate!
|
|
|
|
assert @issue.save
|
|
|
|
end
|
2011-08-27 20:26:12 +04:00
|
|
|
|
2011-06-02 07:53:18 +04:00
|
|
|
end
|
2011-05-30 22:52:25 +04:00
|
|
|
|
2011-06-02 07:53:18 +04:00
|
|
|
should "not send a notification with not configured" do
|
|
|
|
Setting.notified_events = []
|
|
|
|
assert_no_difference('ActionMailer::Base.deliveries.size') do
|
|
|
|
@issue.init_journal(@user)
|
|
|
|
@issue.priority = IssuePriority.generate!
|
|
|
|
assert @issue.save
|
|
|
|
end
|
2011-08-27 20:26:12 +04:00
|
|
|
|
2011-06-02 07:53:18 +04:00
|
|
|
end
|
2010-09-29 00:20:00 +04:00
|
|
|
end
|
|
|
|
end
|