redmine_headers 'Project' => issue.project.identifier,
'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
+ 'Issue-Author' => issue.author.login,
+ 'Issue-Assignee' => assignee_for_header(issue)
message_id issue
references issue
@author = issue.author
redmine_headers 'Project' => issue.project.identifier,
'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
+ 'Issue-Author' => issue.author.login,
+ 'Issue-Assignee' => assignee_for_header(issue)
message_id journal
references issue
@author = journal.user
# Appends a Redmine header field (name is prepended with 'X-Redmine-')
def redmine_headers(h)
- h.each {|k, v| headers["X-Redmine-#{k}"] = v.to_s}
+ h.compact.each {|k, v| headers["X-Redmine-#{k}"] = v.to_s}
+ end
+
+ def assignee_for_header(issue)
+ case issue.assigned_to
+ when User
+ issue.assigned_to.login
+ when Group
+ "Group (#{issue.assigned_to.name})"
+ end
end
# Singleton class method is public
assert_equal issue.author.login, mail.header['X-Redmine-Sender'].to_s
end
+ def test_email_headers_should_not_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_not 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 'jsmith', 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)
+ end
+ mail = last_email
+ assert_equal 'Group (A Team)', mail.header['X-Redmine-Issue-Assignee'].to_s
+ end
+
def test_plain_text_mail
Setting.plain_text_mail = 1
journal = Journal.find(2)