diff options
author | Arun Isaac | 2019-07-27 20:25:29 +0530 |
---|---|---|
committer | Arun Isaac | 2019-07-28 12:13:43 +0530 |
commit | 9ac10570fca04800f04a439e484f41421864b99f (patch) | |
tree | 030144163601ddf43b72df64d84530f2f5871587 /tests | |
parent | ac83c2a00c13702bc365cd0f3074239fa63d743f (diff) | |
download | guile-email-9ac10570fca04800f04a439e484f41421864b99f.tar.gz guile-email-9ac10570fca04800f04a439e484f41421864b99f.tar.lz guile-email-9ac10570fca04800f04a439e484f41421864b99f.zip |
email: Decode MIME entities without headers.
* 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.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/email.scm | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/email.scm b/tests/email.scm index 856a5b9..177391e 100644 --- a/tests/email.scm +++ b/tests/email.scm @@ -102,6 +102,23 @@ Content-Length: 4349 (x-mailer . "FooMail 4.0 4.03 (SMT460B92F)") (content-length . "4349"))) +(test-equal "decode MIME entity without headers" + ((module-ref (resolve-module '(email email)) + 'parse-mime-entity) + '((content-type (type . multipart) + (subtype . mixed))) + (string->bytevector + " +This is implicitly typed plain US-ASCII text. +It does NOT end with a linebreak. +" "utf-8")) + (make-mime-entity '((content-type (type . text) + (subtype . plain) + (charset . "utf-8")) + (content-transfer-encoding . 7bit)) + "This is implicitly typed plain US-ASCII text. +It does NOT end with a linebreak.")) + (test-equal "email with 8 bit encoding and non UTF-8 charset" (call-with-input-file "tests/email-with-8bit-encoding-and-non-utf8-charset" (compose parse-email get-bytevector-all)) |