aboutsummaryrefslogtreecommitdiffstats
path: root/spec/mailers
diff options
context:
space:
mode:
authorGareth Rees <gareth@mysociety.org>2014-11-04 15:16:01 +0000
committerGareth Rees <gareth@mysociety.org>2014-11-04 15:16:01 +0000
commit401f44b19bbe9defca7623fdf5436b94d06def83 (patch)
treee6f6294dd18596b8d5733da43cb9977a02f685a1 /spec/mailers
parent01be1a10f03f060f6e9d30a19ef40c723117d6cb (diff)
Add fix for Apple Mail with attachments
Diffstat (limited to 'spec/mailers')
-rw-r--r--spec/mailers/request_mailer_spec.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/spec/mailers/request_mailer_spec.rb b/spec/mailers/request_mailer_spec.rb
index 2c5d6e6a9..8ba2a7bec 100644
--- a/spec/mailers/request_mailer_spec.rb
+++ b/spec/mailers/request_mailer_spec.rb
@@ -38,6 +38,35 @@ describe RequestMailer, " when receiving incoming mail" do
deliveries.clear
end
+ it "should parse attachments from mails sent with apple mail" do
+ ir = info_requests(:fancy_dog_request)
+ ir.incoming_messages.size.should == 1
+ InfoRequest.holding_pen_request.incoming_messages.size.should == 0
+ receive_incoming_mail('apple-mail-with-attachments.email', 'dummy@localhost')
+ ir.incoming_messages.size.should == 1
+ InfoRequest.holding_pen_request.incoming_messages.size.should == 1
+ last_event = InfoRequest.holding_pen_request.incoming_messages[0].info_request.info_request_events.last
+ last_event.params[:rejected_reason].should == "Could not identify the request from the email address"
+
+ im = IncomingMessage.last
+ # Check that the attachments haven't been somehow loaded from a
+ # previous test run
+ im.foi_attachments.size.should == 0
+
+ # Trace where attachments first get loaded:
+ # TODO: Ideally this should be 3, but some html parts from Apple Mail
+ # are being treated like attachments
+ im.extract_attachments!
+ im.foi_attachments.size.should == 6
+
+ # Clean up
+ deliveries = ActionMailer::Base.deliveries
+ deliveries.size.should == 1
+ mail = deliveries[0]
+ mail.to.should == [ AlaveteliConfiguration::contact_email ]
+ deliveries.clear
+ end
+
it "should store mail in holding pen and send to admin when the from email is empty and only authorites can reply" do
ir = info_requests(:fancy_dog_request)
ir.allow_new_responses_from = 'authority_only'