aboutsummaryrefslogtreecommitdiffstats
path: root/spec/lib/mail_handler
Commit message (Collapse)AuthorAgeLines
* Address#to_s changes the input passed to it - dup before calling.Louise Crow2015-05-28-0/+17
| | | | Otherwise UTF-8 encoded strings will be returned as ASCII-8BIT.
* Handle invalid 'to' addresses.Louise Crow2015-05-22-0/+10
|
* Add fix for Apple Mail with attachments Gareth Rees2014-11-04-0/+6
|
* Add some specs to MailBackendGareth Rees2014-11-04-0/+145
|
* Fix for badly-formed content-disposition header.Louise Crow2014-04-25-0/+5
| | | | Taken from https://github.com/mikel/mail/pull/602
* Treat any document/pdf attachment as if it were application/pdfMark Longair2013-12-03-0/+6
| | | | | | | | | | | | | | | | | This is a fix for issue #1232. Richard Taylor pointed out that some PDF attachments had the non-standard content-type document/pdf, and that these weren't being treated as PDFs. (Ganesh Sittampalam discovered that all of these PDFs were generated by a Lexmark X945e, according to the PDF metadata.) This commit adds an extra case to normalise_content_type to map document/pdf to application/pdf. In fact, since the upgrade of the Mail gem in ccebe3c3d6d4dc5f81 the behaviour when handling the non-standard content-type document/pdf was much better, but this commit also means that you get the right icon for the attachment, and can be cherry-picked onto older versions to fix #1232.
* Update spec to match upgraded mail gem behaviour.Louise Crow2013-11-12-1/+1
| | | | | The new name value doesn't escape a double quote within single quotes, which seems more correct.
* Merge branch 'hotfix/0.12.0.1' into rails-3-developLouise Crow2013-07-29-0/+7
|\ | | | | | | | | | | Conflicts: locale/he_IL/app.po locale/nb_NO/app.po
| * Backport https://github.com/mikel/mail/pull/405 to prevent stack overflow ↵0.12.0.1hotfix/0.12.0.1Louise Crow2013-07-26-0/+7
| | | | | | | | errors when parsing large mails with envelopes on memory limited systems.
* | Add test case and fix for unrecognized encoding in subject lineLouise Crow2013-06-25-0/+5
|/
* Fix a security vulnerability: eval used in quoting display name0.11.0.12Mark Longair2013-06-17-1/+1
| | | | | | | | | This use of eval allows arbitrary remote code execution on parsing of a maliciously formed email. Two tests are updated to match the behaviour of the new code to return the display name - these introduce extra escaping, so should be innocous.
* Parse the 'to' address as if on a real mail to trigger quoted string encoding.Louise Crow2013-06-03-0/+8
|
* Fix for subject lines with invalid UTF-8 as the last characterMark Longair2013-06-03-0/+13
| | | | | | | | | | | | | | | This seems to be the bug mentioned here: http://po-ru.com/diary/fixing-invalid-utf-8-in-ruby-revisited/ That explains that some versions of Iconv don't ignore invalid characters when converting to UTF-8 even with //IGNORE if that invalid character happens to be at the end of the string. In fact, as Matthew Somerville pointed out, with some versions of iconv (e.g. 1.14 on Mac OS, apparently) it's necessary to add and remove more than one space at the end, in case the first character of the byte sequence indicates a long sequence. We add and remove 4 to be on the safe side.
* Retain old handling of malformed addresses in To and Cc linesMark Longair2013-05-21-0/+6
| | | | | | | | | | The behaviour of the TMail backend's 'to' and 'cc' methods where there was a malformed To: or Cc: line was to return nil, whereas Mail returns a version of the string anyway. We'd have to change quite a lot of code to deal with an extra possible class of returned objects, so it's simplest for the moment to monkey-patch Mail::Message's 'to' and 'cc' methods to restore the old behaviour.
* Cope with emails with a missing final MIME boundaryMark Longair2013-05-17-8/+6
| | | | | | | | | | | | | | | The Mail gem deals with multipart messages that look as if they should have 1 part but are missing the final MIME boundary, by make the parts list empty and setting part.body to the text of the email. Rather than throwing an exception in this case, we just pretend that part is text/plain and return it, so that the page doesn't error and we still have a chance of some useful text being displayed. Note that we haven't investigated yet the case of emails that have more than one start boundary, but no final boundary. Fixes #921
* Add failing test for case where a mail part has a content-type header with ↵Louise Crow2013-05-16-0/+6
| | | | no charset field.
* Mark as "pending" two tests relating to odd MIME boundary casesMark Longair2013-05-16-14/+18
| | | | | | | These cases are rare, and probably need to be resolved by reporting issues against the Mail gem (although it's debatable what the more correct or pragmatic behaviour should be in both cases).
* Add another mail parsing testMark Longair2013-05-16-0/+7
| | | | | At one point in development this email was misparsed, so I've added this as test to check for regressions.
* Fix a syntax errorMark Longair2013-05-16-1/+1
|
* Add a test for parsing a malformed emailMark Longair2013-05-16-0/+15
| | | | | | | This example email indicates the wrong charset and includes a top bit set character despite Content-Transfer-Encoding: 7bit - nonetheless, we should be able to convert it to UTF-8 and interpret the character correctly.
* Add a test for a missing final MIME boundaryMark Longair2013-05-16-0/+9
| | | | | | | | | If there is a missing final MIME boundary, the behaviour of Alaveteli with the TMail backend was to still parse the attachment, but with the new code it currently throws an exception. This commit adds a test that asserts that the attachment should be parsed despite the email being malformed in this way.
* Add a test to check that anything in the MIME epilogue is ignoredMark Longair2013-05-16-0/+11
| | | | | | | | | | | There is currently a difference in behaviour in the parsing of nested MIME multipart attachments between the Mail and TMail based backends. This commit adds a test that will pass if the behaviour is the same as the the old (TMail-based) version, which I believe is correct according to RFC 1521. The example email has a PNG attachment after the final MIME boundary, and the RFC says that anything after the final boundary ("the epilogue") should be ignored.
* Add tests for TNEF attachments that should be handledMark Longair2013-05-16-0/+24
| | | | | | | | | | | These two cases were ignored previously, and we need to make sure that they still are under the switch from TMail to Mail. One TNEF attachment is a heavily truncated one from a real example from Alaveteli that has no personal data in it. The other is an example from the tests in the distribution of the tnef package for Ubuntu 1.4.9-1 - it's an HTML version of the US constitution.
* Replace use of have_text with contain from webrat or matchMatthew Landauer2013-01-29-1/+1
|
* Wrap specs on the extraction of RFC-822 headers in code that sets the ENV ↵Louise Crow2012-12-11-10/+14
| | | | timezone. TMail renders headers using localtime, which is not ideal, but we're migrating away from it anyway, so I'm not sure it's worth delving into the internals of TMail to fix it.
* Add specs for attachment attributes.Louise Crow2012-12-06-0/+20
|
* Add a spec for some basic consistency in content types, url part numbers, ↵Louise Crow2012-12-06-0/+80
| | | | filenames, and within rfc822 subjects.
* Convert example URL to spec.Louise Crow2012-12-06-0/+9
|
* Stub the close method on the object we're passing to the zip file extraction ↵Louise Crow2012-12-06-1/+3
| | | | function.
* Rename _get_attachment_text_internal_one_file to ↵Louise Crow2012-12-06-3/+2
| | | | get_attachment_text_one_file as it is now an externally-accessed method of the mail handler module.
* Move methods for getting the text out of attachments to the mail handler module.Louise Crow2012-12-06-1/+21
|
* Adding methods for getting the content type of a mail part, and getting ↵Louise Crow2012-12-04-0/+54
| | | | header strings from a mail.
* Rewrite and move spec so that it tests the mail handler method.Louise Crow2012-12-04-0/+7
|
* Add specs for getting name, email and formatted address - make them pass ↵Louise Crow2012-12-04-0/+50
| | | | with the mail backend.
* Add a method for setting the from address on a plain email fixture.Louise Crow2012-12-04-6/+8
|
* Add methods for finding out if there is an empty return path on a mail and ↵Louise Crow2012-12-04-0/+32
| | | | getting the auto-submitted field.
* Move method for getting the to, cc and envelope-to addresses of a mail to ↵Louise Crow2012-12-04-0/+29
| | | | the mail handler.
* Add specs for the mail handler getting the from name and from address from ↵Louise Crow2012-12-03-0/+56
| | | | an email.
* Use get_part_body in spec.Louise Crow2012-12-03-1/+1
|
* Move TMail extensions to mail handler.Louise Crow2012-11-15-0/+11
|
* Factor out method for getting a mail object from a fixture file.Louise Crow2012-11-15-4/+0
|
* Move TMail monkey patch to MailHandler Tmail backend.Louise Crow2012-11-15-0/+16