aboutsummaryrefslogtreecommitdiffstats
path: root/spec/models/incoming_message_spec.rb
diff options
context:
space:
mode:
authorGareth Rees <gareth@mysociety.org>2015-06-04 14:21:31 +0100
committerGareth Rees <gareth@mysociety.org>2015-06-04 14:21:31 +0100
commitc381a4ed104493b20d97e5a2e3d6ba111c719238 (patch)
tree42d4e82dca13c56cb03544a9a7a5a7ddc51da7a9 /spec/models/incoming_message_spec.rb
parentd59a325de7cb43f114412a8ad62c60b331b8b19a (diff)
parent305aab8701d9a398ad9dc9150e296c3badc0ee92 (diff)
Merge branch 'hotfix/0.21.0.36'0.21.0.36
Diffstat (limited to 'spec/models/incoming_message_spec.rb')
-rw-r--r--spec/models/incoming_message_spec.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/spec/models/incoming_message_spec.rb b/spec/models/incoming_message_spec.rb
index ca9bbe39e..0fdc7b663 100644
--- a/spec/models/incoming_message_spec.rb
+++ b/spec/models/incoming_message_spec.rb
@@ -503,6 +503,20 @@ end
describe IncomingMessage, " when uudecoding bad messages" do
+ it "decodes a valid uuencoded attachment" do
+ mail = get_fixture_mail('simple-uuencoded-attachment.email')
+ im = incoming_messages(:useless_incoming_message)
+ im.stub!(:mail).and_return(mail)
+ im.extract_attachments!
+
+ im.reload
+ attachments = im.foi_attachments
+ attachments.size.should == 2
+ attachments[1].filename.should == 'Happy.txt'
+ attachments[1].body.should == "Happy today for to be one of peace and serene time.\n"
+ im.get_attachments_for_display.size.should == 1
+ end
+
it "should be able to do it at all" do
mail = get_fixture_mail('incoming-request-bad-uuencoding.email')
im = incoming_messages(:useless_incoming_message)
@@ -516,6 +530,21 @@ describe IncomingMessage, " when uudecoding bad messages" do
im.get_attachments_for_display.size.should == 1
end
+ it "decodes an attachment where the uudecode program reports a 'No end line' error" do
+ # See https://github.com/mysociety/alaveteli/issues/2508
+ mail = get_fixture_mail('incoming-request-bad-uuencoding-2.email')
+ im = incoming_messages(:useless_incoming_message)
+ im.stub!(:mail).and_return(mail)
+ im.extract_attachments!
+
+ im.reload
+ attachments = im.foi_attachments
+ attachments.size.should == 2
+ attachments[1].filename.should == 'ResponseT5741 15.doc'
+ attachments[1].display_size.should == '123K'
+ im.get_attachments_for_display.size.should == 1
+ end
+
it "should still work when parsed from the raw email" do
raw_email = load_file_fixture 'inline-uuencode.email'
mail = MailHandler.mail_from_raw_email(raw_email)