summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGo MAEDA <maeda@farend.jp>2018-11-24 11:20:00 +0000
committerGo MAEDA <maeda@farend.jp>2018-11-24 11:20:00 +0000
commitfad54d02b8cbe33369cef3bdb7c79022258720f7 (patch)
tree5881fd0ddbe9c6b54d766dd2c39a4b0a82a46f3b
parent9b7efd00e89cf47bcb51877c658f2580533df900 (diff)
downloadredmine-fad54d02b8cbe33369cef3bdb7c79022258720f7.tar.gz
redmine-fad54d02b8cbe33369cef3bdb7c79022258720f7.zip
Merged r17630 from trunk to 3.4-stable (#28576).
git-svn-id: http://svn.redmine.org/redmine/branches/3.4-stable@17631 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rwxr-xr-xapp/models/mail_handler.rb2
-rw-r--r--test/unit/mail_handler_test.rb15
2 files changed, 16 insertions, 1 deletions
diff --git a/app/models/mail_handler.rb b/app/models/mail_handler.rb
index 9377e00d9..aa0ea1e45 100755
--- a/app/models/mail_handler.rb
+++ b/app/models/mail_handler.rb
@@ -250,8 +250,8 @@ class MailHandler < ActionMailer::Base
# add To and Cc as watchers before saving so the watchers can reply to Redmine
add_watchers(issue)
- add_attachments(issue)
issue.save!
+ add_attachments(issue)
if logger
logger.info "MailHandler: issue ##{issue.id} updated by #{user}"
end
diff --git a/test/unit/mail_handler_test.rb b/test/unit/mail_handler_test.rb
index 2d02cf0ed..79405b5d6 100644
--- a/test/unit/mail_handler_test.rb
+++ b/test/unit/mail_handler_test.rb
@@ -866,6 +866,21 @@ class MailHandlerTest < ActiveSupport::TestCase
assert_equal 'Paella.jpg', detail.value
end
+ def test_update_issue_should_discard_all_changes_on_validation_failure
+ Issue.any_instance.stubs(:valid?).returns(false)
+ assert_no_difference 'Journal.count' do
+ assert_no_difference 'JournalDetail.count' do
+ assert_no_difference 'Attachment.count' do
+ assert_no_difference 'Issue.count' do
+ journal = submit_email('ticket_with_attachment.eml') do |raw|
+ raw.gsub! /^Subject: .*$/, 'Subject: Re: [Cookbook - Feature #2] (New) Add ingredients categories'
+ end
+ end
+ end
+ end
+ end
+ end
+
def test_update_issue_should_send_email_notification
journal = submit_email('ticket_reply.eml')
assert journal.is_a?(Journal)