aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/info_request.rb2
-rw-r--r--spec/models/outgoing_mailer_spec.rb11
2 files changed, 12 insertions, 1 deletions
diff --git a/app/models/info_request.rb b/app/models/info_request.rb
index 6faf0dbad..da953f231 100644
--- a/app/models/info_request.rb
+++ b/app/models/info_request.rb
@@ -212,7 +212,7 @@ public
end
end
def email_subject_followup(incoming_message = nil)
- if incoming_message.nil?
+ if incoming_message.nil? || !incoming_message.valid_to_reply_to?
'Re: ' + self.email_subject_request
else
if incoming_message.mail.subject.match(/^Re:/i)
diff --git a/spec/models/outgoing_mailer_spec.rb b/spec/models/outgoing_mailer_spec.rb
index 0bbe39cad..eeed53251 100644
--- a/spec/models/outgoing_mailer_spec.rb
+++ b/spec/models/outgoing_mailer_spec.rb
@@ -111,6 +111,17 @@ describe OutgoingMailer, "when working out follow up subjects" do
im.raw_email.data = im.raw_email.data.sub("Subject: Geraldine FOI Code AZXB421", "Subject: re: Geraldine FOI Code AZXB421")
OutgoingMailer.subject_for_followup(ir, om).should == "re: Geraldine FOI Code AZXB421"
end
+
+ it "should use 'Re:' and initial request subject when replying to failed delivery notifications" do
+ ir = info_requests(:fancy_dog_request)
+ im = ir.incoming_messages[0]
+ om = outgoing_messages(:useless_outgoing_message)
+ om.incoming_message_followup = im
+
+ im.raw_email.data = im.raw_email.data.sub("foiperson@localhost", "postmaster@localhost")
+ im.raw_email.data = im.raw_email.data.sub("Subject: Geraldine FOI Code AZXB421", "Subject: Delivery Failed")
+ OutgoingMailer.subject_for_followup(ir, om).should == "Re: Freedom of Information request - Why do you have & such a fancy dog?"
+ end
end