From 74789231cc38ee449adbb839b2a7bc9e963fde07 Mon Sep 17 00:00:00 2001 From: Akihiro MATOBA Date: Thu, 25 Mar 2021 02:27:29 +0000 Subject: Patch for task/36 --- app/models/mailer.rb | 6 ++++-- test/unit/mailer_test.rb | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/app/models/mailer.rb b/app/models/mailer.rb index 7b4ca059c..322e1b3c3 100644 --- a/app/models/mailer.rb +++ b/app/models/mailer.rb @@ -75,7 +75,8 @@ class Mailer < ActionMailer::Base 'Issue-Tracker' => issue.tracker.name, 'Issue-Id' => issue.id, 'Issue-Author' => issue.author.login - redmine_headers 'Issue-Assignee' => issue.assigned_to.login if issue.assigned_to + redmine_headers 'Issue-Assignee' => issue.assigned_to.login if issue.assigned_to.is_a?(User) + redmine_headers 'Issue-Assignee' => "Group (#{issue.assigned_to.name})" if issue.assigned_to.is_a?(Group) message_id issue references issue @author = issue.author @@ -107,7 +108,8 @@ class Mailer < ActionMailer::Base 'Issue-Tracker' => issue.tracker.name, 'Issue-Id' => issue.id, 'Issue-Author' => issue.author.login - redmine_headers 'Issue-Assignee' => issue.assigned_to.login if issue.assigned_to + redmine_headers 'Issue-Assignee' => issue.assigned_to.login if issue.assigned_to.is_a?(User) + redmine_headers 'Issue-Assignee' => "Group (#{issue.assigned_to.name})" if issue.assigned_to.is_a?(Group) message_id journal references issue @author = journal.user diff --git a/test/unit/mailer_test.rb b/test/unit/mailer_test.rb index 7c867e098..13ddb6127 100644 --- a/test/unit/mailer_test.rb +++ b/test/unit/mailer_test.rb @@ -219,6 +219,33 @@ class MailerTest < ActiveSupport::TestCase assert_equal issue.author.login, mail.header['X-Redmine-Sender'].to_s end + def test_email_headers_shouldnt_include_assignee_when_not_assigned + issue = Issue.find(6) + issue.init_journal(User.current) + issue.update(:status_id => 4) + issue.update(:assigned_to_id => nil) + mail = last_email + assert !mail.header['X-Redmine-Issue-Assignee'] + end + + def test_email_headers_should_include_assignee_when_assigned + issue = Issue.find(6) + issue.init_journal(User.current) + issue.update(:assigned_to_id => 2) + mail = last_email + assert_equal issue.assigned_to.login, mail.header['X-Redmine-Issue-Assignee'].to_s + end + + def test_email_headers_should_include_assignee_if_assigned_to_group + issue = Issue.find(6) + with_settings :issue_group_assignment => 1 do + issue.init_journal(User.current) + issue.update(:assigned_to_id => 10) # Group: A Team + end + mail = last_email + assert_equal "Group (#{issue.assigned_to.name})", mail.header['X-Redmine-Issue-Assignee'].to_s + end + def test_plain_text_mail Setting.plain_text_mail = 1 journal = Journal.find(2) -- 2.31.0