summaryrefslogtreecommitdiff
path: root/tests/email.scm
AgeCommit message (Collapse)Author
2019-09-23email: Tolerate non-ASCII non-UTF-8 characters in headers.Arun Isaac
* email/email.scm (email->headers+body): If non-ASCII non-UTF-8 characters occur in the headers, do not raise a decoding error. Work around using the substitute conversion strategy. * tests/email.scm ("tolerate non-ASCII characters in headers"): Rename to "decode utf-8 characters in headers". ("tolerate non-ascii non-utf-8 characters in headers"): New test. Reported-by: Christopher Baines <mail@cbaines.net>
2019-09-17email: Tolerate non-ASCII characters in headers.Arun Isaac
We tolerate non-ASCII characters in headers in order to support Emacs message mode parens style addresses. * email/email.scm (email->headers+body): Read headers as UTF-8 characters. * tests/email.scm ("tolerate non-ascii characters in headers"): New tests. Reported-by: Christopher Baines <mail@cbaines.net>
2019-07-28tests: Add examples from RFC5322 A.1.1 and A.1.2.Arun Isaac
* tests/email.scm ("RFC5322 A.1.1. A message from one person to another with simple addressing", "RFC5322 A.1.2. Different types of mailboxes"): New tests.
2019-07-28tests: Add example from RFC2046 5.1.1.Arun Isaac
* tests/email.scm ("RFC2046 5.1.1. Common syntax"): New test.
2019-07-28email: Decode MIME entities without headers.Arun Isaac
* email/email.scm (email->headers+body): If there are no headers, return "" as headers not an eof-object. (parse-email-body): Parse headers of parent entity or email to parse-mime-entity. (add-default-mime-entity-headers): New function. (parse-mime-entity): Use add-default-mime-entity-headers instead of add-default-headers. Handle MIME entities without headers. * tests/email.scm ("decode MIME entity without headers"): New test.
2019-07-28email: Support email with mixed encoding of characters.Arun Isaac
Prior to this, parse-email would accept email in the form of a string. A string is constrained to use the same encoding for all its characters whereas an email can have characters encoded using different encoding schemes. Therefore, it is more correct that parse-email deals with bytevectors instead of strings. * email/utils.scm (read-bytes-till): New function. * email/email.scm (body->mime-entities, email->headers+body, decode-body): Deal with emails as bytevectors instead of strings. (parse-mime-entity): Rename text argument to bv. (parse-email, parse-email-body): Overload to handle input in the form of a string or bytevector. * doc/guile-email.texi (Parsing e-mail): Document overloading of parse-email and parse-email-body. * tests/email.scm ("handle truncated multipart message gracefully"): Deal in bytevectors instead of strings. ("email with 8 bit encoding and non UTF-8 charset", "multipart email with a 8 bit encoding and non UTF-8 charset part"): New tests. * tests/email-with-8bit-encoding-and-non-utf8-charset, tests/multipart-email-with-a-8bit-encoding-and-non-utf8-charset-part: New files. Reported-by: Jack Hill <jackhill@jackhill.us>
2019-07-21email: Decode MIME encoded words in Subject header.Arun Isaac
Prior to this, MIME encoded words in the Subject header were not decoded. * email/email.scm (parse-email-headers): Decode MIME encoded words in Subject header. * tests/email.scm ("decode MIME encoded words in Subject header"): New test. Reported-by: Ricardo Wurmus <rekado@elephly.net>
2019-07-21tests: Add test for decoding MIME encoded phrases.Arun Isaac
* tests/email.scm ("decode MIME encoded phrases that contain multiple MIME encoded words each with their own encoding"): New test.
2018-11-14tests: Add tests for decoding MIME encoded words.Arun Isaac
* tests/email.scm ("decode MIME encoded word: wikipedia example", "decode MIME encoded phrases that mix ASCII text and MIME encoded words"): New tests.
2018-11-14tests: Add tests for email address parsing.Arun Isaac
* tests/email.scm ("parse name-addr email address", "parse addr-spec email address", "parse emacs message mode parens style email address"): New tests.
2018-10-01tests: Add tests for (email email).Arun Isaac
* tests/email.scm: New file. * Makefile.am (SCM_TESTS): Register it.