rack-mail_exception 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +5 -0
- data/.gitignore +22 -0
- data/LICENSE +20 -0
- data/README.rdoc +38 -0
- data/Rakefile +56 -0
- data/VERSION +1 -0
- data/lib/rack/mail_exception.rb +103 -0
- data/test/helper.rb +13 -0
- data/test/test_rack_mail_exception.rb +93 -0
- data/vendor/mail/.bundle/config +2 -0
- data/vendor/mail/CHANGELOG.rdoc +370 -0
- data/vendor/mail/Dependencies.txt +3 -0
- data/vendor/mail/Gemfile +17 -0
- data/vendor/mail/README.rdoc +572 -0
- data/vendor/mail/ROADMAP +92 -0
- data/vendor/mail/Rakefile +41 -0
- data/vendor/mail/TODO.rdoc +9 -0
- data/vendor/mail/lib/mail.rb +76 -0
- data/vendor/mail/lib/mail/attachments_list.rb +99 -0
- data/vendor/mail/lib/mail/body.rb +287 -0
- data/vendor/mail/lib/mail/configuration.rb +67 -0
- data/vendor/mail/lib/mail/core_extensions/blank.rb +26 -0
- data/vendor/mail/lib/mail/core_extensions/nil.rb +11 -0
- data/vendor/mail/lib/mail/core_extensions/string.rb +27 -0
- data/vendor/mail/lib/mail/elements.rb +14 -0
- data/vendor/mail/lib/mail/elements/address.rb +306 -0
- data/vendor/mail/lib/mail/elements/address_list.rb +74 -0
- data/vendor/mail/lib/mail/elements/content_disposition_element.rb +30 -0
- data/vendor/mail/lib/mail/elements/content_location_element.rb +25 -0
- data/vendor/mail/lib/mail/elements/content_transfer_encoding_element.rb +24 -0
- data/vendor/mail/lib/mail/elements/content_type_element.rb +35 -0
- data/vendor/mail/lib/mail/elements/date_time_element.rb +26 -0
- data/vendor/mail/lib/mail/elements/envelope_from_element.rb +34 -0
- data/vendor/mail/lib/mail/elements/message_ids_element.rb +29 -0
- data/vendor/mail/lib/mail/elements/mime_version_element.rb +26 -0
- data/vendor/mail/lib/mail/elements/phrase_list.rb +21 -0
- data/vendor/mail/lib/mail/elements/received_element.rb +30 -0
- data/vendor/mail/lib/mail/encodings.rb +258 -0
- data/vendor/mail/lib/mail/encodings/7bit.rb +31 -0
- data/vendor/mail/lib/mail/encodings/8bit.rb +31 -0
- data/vendor/mail/lib/mail/encodings/base64.rb +33 -0
- data/vendor/mail/lib/mail/encodings/binary.rb +31 -0
- data/vendor/mail/lib/mail/encodings/quoted_printable.rb +38 -0
- data/vendor/mail/lib/mail/encodings/transfer_encoding.rb +58 -0
- data/vendor/mail/lib/mail/envelope.rb +35 -0
- data/vendor/mail/lib/mail/field.rb +223 -0
- data/vendor/mail/lib/mail/field_list.rb +33 -0
- data/vendor/mail/lib/mail/fields.rb +35 -0
- data/vendor/mail/lib/mail/fields/bcc_field.rb +56 -0
- data/vendor/mail/lib/mail/fields/cc_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/comments_field.rb +41 -0
- data/vendor/mail/lib/mail/fields/common/address_container.rb +16 -0
- data/vendor/mail/lib/mail/fields/common/common_address.rb +125 -0
- data/vendor/mail/lib/mail/fields/common/common_date.rb +42 -0
- data/vendor/mail/lib/mail/fields/common/common_field.rb +50 -0
- data/vendor/mail/lib/mail/fields/common/common_message_id.rb +43 -0
- data/vendor/mail/lib/mail/fields/common/parameter_hash.rb +52 -0
- data/vendor/mail/lib/mail/fields/content_description_field.rb +19 -0
- data/vendor/mail/lib/mail/fields/content_disposition_field.rb +69 -0
- data/vendor/mail/lib/mail/fields/content_id_field.rb +63 -0
- data/vendor/mail/lib/mail/fields/content_location_field.rb +42 -0
- data/vendor/mail/lib/mail/fields/content_transfer_encoding_field.rb +50 -0
- data/vendor/mail/lib/mail/fields/content_type_field.rb +185 -0
- data/vendor/mail/lib/mail/fields/date_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/from_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/in_reply_to_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/keywords_field.rb +44 -0
- data/vendor/mail/lib/mail/fields/message_id_field.rb +83 -0
- data/vendor/mail/lib/mail/fields/mime_version_field.rb +53 -0
- data/vendor/mail/lib/mail/fields/optional_field.rb +13 -0
- data/vendor/mail/lib/mail/fields/received_field.rb +67 -0
- data/vendor/mail/lib/mail/fields/references_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/reply_to_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/resent_bcc_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/resent_cc_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/resent_date_field.rb +35 -0
- data/vendor/mail/lib/mail/fields/resent_from_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/resent_message_id_field.rb +34 -0
- data/vendor/mail/lib/mail/fields/resent_sender_field.rb +62 -0
- data/vendor/mail/lib/mail/fields/resent_to_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/return_path_field.rb +64 -0
- data/vendor/mail/lib/mail/fields/sender_field.rb +67 -0
- data/vendor/mail/lib/mail/fields/structured_field.rb +51 -0
- data/vendor/mail/lib/mail/fields/subject_field.rb +16 -0
- data/vendor/mail/lib/mail/fields/to_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/unstructured_field.rb +166 -0
- data/vendor/mail/lib/mail/header.rb +262 -0
- data/vendor/mail/lib/mail/mail.rb +234 -0
- data/vendor/mail/lib/mail/message.rb +1867 -0
- data/vendor/mail/lib/mail/network.rb +9 -0
- data/vendor/mail/lib/mail/network/delivery_methods/file_delivery.rb +40 -0
- data/vendor/mail/lib/mail/network/delivery_methods/sendmail.rb +62 -0
- data/vendor/mail/lib/mail/network/delivery_methods/smtp.rb +110 -0
- data/vendor/mail/lib/mail/network/delivery_methods/test_mailer.rb +40 -0
- data/vendor/mail/lib/mail/network/retriever_methods/imap.rb +18 -0
- data/vendor/mail/lib/mail/network/retriever_methods/pop3.rb +149 -0
- data/vendor/mail/lib/mail/parsers/address_lists.rb +64 -0
- data/vendor/mail/lib/mail/parsers/address_lists.treetop +19 -0
- data/vendor/mail/lib/mail/parsers/content_disposition.rb +387 -0
- data/vendor/mail/lib/mail/parsers/content_disposition.treetop +46 -0
- data/vendor/mail/lib/mail/parsers/content_location.rb +139 -0
- data/vendor/mail/lib/mail/parsers/content_location.treetop +20 -0
- data/vendor/mail/lib/mail/parsers/content_transfer_encoding.rb +162 -0
- data/vendor/mail/lib/mail/parsers/content_transfer_encoding.treetop +20 -0
- data/vendor/mail/lib/mail/parsers/content_type.rb +539 -0
- data/vendor/mail/lib/mail/parsers/content_type.treetop +58 -0
- data/vendor/mail/lib/mail/parsers/date_time.rb +114 -0
- data/vendor/mail/lib/mail/parsers/date_time.treetop +11 -0
- data/vendor/mail/lib/mail/parsers/envelope_from.rb +194 -0
- data/vendor/mail/lib/mail/parsers/envelope_from.treetop +32 -0
- data/vendor/mail/lib/mail/parsers/message_ids.rb +45 -0
- data/vendor/mail/lib/mail/parsers/message_ids.treetop +15 -0
- data/vendor/mail/lib/mail/parsers/mime_version.rb +144 -0
- data/vendor/mail/lib/mail/parsers/mime_version.treetop +19 -0
- data/vendor/mail/lib/mail/parsers/phrase_lists.rb +45 -0
- data/vendor/mail/lib/mail/parsers/phrase_lists.treetop +15 -0
- data/vendor/mail/lib/mail/parsers/received.rb +71 -0
- data/vendor/mail/lib/mail/parsers/received.treetop +11 -0
- data/vendor/mail/lib/mail/parsers/rfc2045.rb +464 -0
- data/vendor/mail/lib/mail/parsers/rfc2045.treetop +36 -0
- data/vendor/mail/lib/mail/parsers/rfc2822.rb +5318 -0
- data/vendor/mail/lib/mail/parsers/rfc2822.treetop +410 -0
- data/vendor/mail/lib/mail/parsers/rfc2822_obsolete.rb +3757 -0
- data/vendor/mail/lib/mail/parsers/rfc2822_obsolete.treetop +241 -0
- data/vendor/mail/lib/mail/part.rb +102 -0
- data/vendor/mail/lib/mail/parts_list.rb +34 -0
- data/vendor/mail/lib/mail/patterns.rb +30 -0
- data/vendor/mail/lib/mail/utilities.rb +181 -0
- data/vendor/mail/lib/mail/version.rb +10 -0
- data/vendor/mail/lib/mail/version_specific/ruby_1_8.rb +97 -0
- data/vendor/mail/lib/mail/version_specific/ruby_1_9.rb +87 -0
- data/vendor/mail/lib/tasks/corpus.rake +125 -0
- data/vendor/mail/lib/tasks/treetop.rake +10 -0
- data/vendor/mail/mail.gemspec +20 -0
- data/vendor/mail/reference/US ASCII Table.txt +130 -0
- data/vendor/mail/reference/rfc1035 Domain Implementation and Specification.txt +3083 -0
- data/vendor/mail/reference/rfc1049 Content-Type Header Field for Internet Messages.txt +451 -0
- data/vendor/mail/reference/rfc1344 Implications of MIME for Internet Mail Gateways.txt +586 -0
- data/vendor/mail/reference/rfc1345 Character Mnemonics & Character Sets.txt +5761 -0
- data/vendor/mail/reference/rfc1524 A User Agent Configuration Mechanism For Multimedia Mail Format Information.txt +675 -0
- data/vendor/mail/reference/rfc1652 SMTP Service Extension for 8bit-MIMEtransport.txt +339 -0
- data/vendor/mail/reference/rfc1892 Multipart Report .txt +227 -0
- data/vendor/mail/reference/rfc1893 Mail System Status Codes.txt +843 -0
- data/vendor/mail/reference/rfc2045 Multipurpose Internet Mail Extensions (1).txt +1739 -0
- data/vendor/mail/reference/rfc2046 Multipurpose Internet Mail Extensions (2).txt +2467 -0
- data/vendor/mail/reference/rfc2047 Multipurpose Internet Mail Extensions (3).txt +843 -0
- data/vendor/mail/reference/rfc2048 Multipurpose Internet Mail Extensions (4).txt +1180 -0
- data/vendor/mail/reference/rfc2049 Multipurpose Internet Mail Extensions (5).txt +1347 -0
- data/vendor/mail/reference/rfc2111 Content-ID and Message-ID URLs.txt +283 -0
- data/vendor/mail/reference/rfc2183 Content-Disposition Header Field.txt +675 -0
- data/vendor/mail/reference/rfc2231 MIME Parameter Value and Encoded Word Extensions.txt +563 -0
- data/vendor/mail/reference/rfc2387 MIME Multipart-Related Content-type.txt +563 -0
- data/vendor/mail/reference/rfc2821 Simple Mail Transfer Protocol.txt +3711 -0
- data/vendor/mail/reference/rfc2822 Internet Message Format.txt +2859 -0
- data/vendor/mail/reference/rfc3462 Reporting of Mail System Administrative Messages.txt +396 -0
- data/vendor/mail/reference/rfc3696 Checking and Transformation of Names.txt +898 -0
- data/vendor/mail/reference/rfc4155 The application-mbox Media Type.txt +502 -0
- data/vendor/mail/reference/rfc4234 Augmented BNF for Syntax Specifications: ABNF.txt +899 -0
- data/vendor/mail/reference/rfc822 Standard for the Format of ARPA Internet Text Messages.txt +2900 -0
- data/vendor/mail/spec/environment.rb +15 -0
- data/vendor/mail/spec/features/making_a_new_message.feature +14 -0
- data/vendor/mail/spec/features/steps/env.rb +6 -0
- data/vendor/mail/spec/features/steps/making_a_new_message_steps.rb +11 -0
- data/vendor/mail/spec/fixtures/attachments/basic_email.eml +31 -0
- data/vendor/mail/spec/fixtures/attachments/test.gif +0 -0
- data/vendor/mail/spec/fixtures/attachments/test.jpg +0 -0
- data/vendor/mail/spec/fixtures/attachments/test.pdf +0 -0
- data/vendor/mail/spec/fixtures/attachments/test.png +0 -0
- data/vendor/mail/spec/fixtures/attachments/test.tiff +0 -0
- data/vendor/mail/spec/fixtures/attachments/test.zip +0 -0
- data/vendor/mail/spec/fixtures/attachments//343/201/246/343/201/231/343/201/250.txt +2 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_content_disposition.eml +29 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_content_location.eml +32 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_message_rfc822.eml +92 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_only_email.eml +17 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_pdf.eml +70 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_with_encoded_name.eml +47 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_with_quoted_filename.eml +60 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/cant_parse_from.eml +33 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_7-bit.eml +231 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_empty.eml +33 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_plain.eml +148 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_qp_with_space.eml +53 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_spam.eml +44 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_text-html.eml +50 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_with_8bits.eml +770 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_with_semi_colon.eml +269 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_x_uuencode.eml +79 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/empty_group_lists.eml +162 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/header_fields_with_empty_values.eml +33 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/missing_body.eml +16 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/missing_content_disposition.eml +43 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/multiple_content_types.eml +25 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email11.eml +34 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email12.eml +32 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email2.eml +114 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email4.eml +59 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email7.eml +66 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_encoded_stack_level_too_deep.eml +53 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_illegal_boundary.eml +58 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_mimepart_without_content_type.eml +94 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_multipart_mixed_quoted_boundary.eml +50 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_nested_attachment.eml +100 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_quoted_illegal_boundary.eml +58 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/sig_only_email.eml +29 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/two_from_in_message.eml +42 -0
- data/vendor/mail/spec/fixtures/emails/multi_charset/japanese.eml +9 -0
- data/vendor/mail/spec/fixtures/emails/multi_charset/japanese_attachment.eml +27 -0
- data/vendor/mail/spec/fixtures/emails/multi_charset/japanese_attachment_long_name.eml +44 -0
- data/vendor/mail/spec/fixtures/emails/multipart_report_emails/multi_address_bounce1.eml +179 -0
- data/vendor/mail/spec/fixtures/emails/multipart_report_emails/multi_address_bounce2.eml +179 -0
- data/vendor/mail/spec/fixtures/emails/multipart_report_emails/report_422.eml +98 -0
- data/vendor/mail/spec/fixtures/emails/multipart_report_emails/report_530.eml +97 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/basic_email.eml +31 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email.eml +14 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email10.eml +20 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email5.eml +19 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email6.eml +20 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email8.eml +47 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_bad_time.eml +62 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_double_at_in_header.eml +14 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_incorrect_header.eml +28 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_multiple_from.eml +30 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_quoted_with_0d0a.eml +14 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_reply.eml +32 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_simple.eml +11 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_string_in_date_field.eml +17 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_trailing_dot.eml +21 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_with_bad_date.eml +48 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_with_partially_quoted_subject.eml +14 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example01.eml +8 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example02.eml +9 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example03.eml +7 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example04.eml +7 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example05.eml +8 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example06.eml +10 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example07.eml +9 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example08.eml +12 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example09.eml +15 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example10.eml +15 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example11.eml +6 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example12.eml +8 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example13.eml +10 -0
- data/vendor/mail/spec/fixtures/emails/sample_output_multipart +0 -0
- data/vendor/mail/spec/mail/attachments_list_spec.rb +214 -0
- data/vendor/mail/spec/mail/body_spec.rb +385 -0
- data/vendor/mail/spec/mail/configuration_spec.rb +19 -0
- data/vendor/mail/spec/mail/core_extensions/string_spec.rb +62 -0
- data/vendor/mail/spec/mail/core_extensions_spec.rb +99 -0
- data/vendor/mail/spec/mail/elements/address_list_spec.rb +109 -0
- data/vendor/mail/spec/mail/elements/address_spec.rb +609 -0
- data/vendor/mail/spec/mail/elements/date_time_element_spec.rb +20 -0
- data/vendor/mail/spec/mail/elements/envelope_from_element_spec.rb +31 -0
- data/vendor/mail/spec/mail/elements/message_ids_element_spec.rb +43 -0
- data/vendor/mail/spec/mail/elements/phrase_list_spec.rb +22 -0
- data/vendor/mail/spec/mail/elements/received_element_spec.rb +34 -0
- data/vendor/mail/spec/mail/encoding_spec.rb +189 -0
- data/vendor/mail/spec/mail/encodings/base64_spec.rb +25 -0
- data/vendor/mail/spec/mail/encodings/quoted_printable_spec.rb +25 -0
- data/vendor/mail/spec/mail/encodings_spec.rb +664 -0
- data/vendor/mail/spec/mail/example_emails_spec.rb +303 -0
- data/vendor/mail/spec/mail/field_list_spec.rb +33 -0
- data/vendor/mail/spec/mail/field_spec.rb +198 -0
- data/vendor/mail/spec/mail/fields/bcc_field_spec.rb +89 -0
- data/vendor/mail/spec/mail/fields/cc_field_spec.rb +79 -0
- data/vendor/mail/spec/mail/fields/comments_field_spec.rb +25 -0
- data/vendor/mail/spec/mail/fields/common/address_container_spec.rb +18 -0
- data/vendor/mail/spec/mail/fields/common/common_address_spec.rb +132 -0
- data/vendor/mail/spec/mail/fields/common/common_date_spec.rb +25 -0
- data/vendor/mail/spec/mail/fields/common/common_field_spec.rb +69 -0
- data/vendor/mail/spec/mail/fields/common/common_message_id_spec.rb +30 -0
- data/vendor/mail/spec/mail/fields/common/parameter_hash_spec.rb +56 -0
- data/vendor/mail/spec/mail/fields/content_description_field_spec.rb +39 -0
- data/vendor/mail/spec/mail/fields/content_disposition_field_spec.rb +55 -0
- data/vendor/mail/spec/mail/fields/content_id_field_spec.rb +117 -0
- data/vendor/mail/spec/mail/fields/content_location_field_spec.rb +46 -0
- data/vendor/mail/spec/mail/fields/content_transfer_encoding_field_spec.rb +113 -0
- data/vendor/mail/spec/mail/fields/content_type_field_spec.rb +678 -0
- data/vendor/mail/spec/mail/fields/date_field_spec.rb +73 -0
- data/vendor/mail/spec/mail/fields/envelope_spec.rb +48 -0
- data/vendor/mail/spec/mail/fields/from_field_spec.rb +89 -0
- data/vendor/mail/spec/mail/fields/in_reply_to_field_spec.rb +62 -0
- data/vendor/mail/spec/mail/fields/keywords_field_spec.rb +66 -0
- data/vendor/mail/spec/mail/fields/message_id_field_spec.rb +147 -0
- data/vendor/mail/spec/mail/fields/mime_version_field_spec.rb +166 -0
- data/vendor/mail/spec/mail/fields/received_field_spec.rb +44 -0
- data/vendor/mail/spec/mail/fields/references_field_spec.rb +35 -0
- data/vendor/mail/spec/mail/fields/reply_to_field_spec.rb +67 -0
- data/vendor/mail/spec/mail/fields/resent_bcc_field_spec.rb +66 -0
- data/vendor/mail/spec/mail/fields/resent_cc_field_spec.rb +66 -0
- data/vendor/mail/spec/mail/fields/resent_date_field_spec.rb +39 -0
- data/vendor/mail/spec/mail/fields/resent_from_field_spec.rb +66 -0
- data/vendor/mail/spec/mail/fields/resent_message_id_field_spec.rb +24 -0
- data/vendor/mail/spec/mail/fields/resent_sender_field_spec.rb +58 -0
- data/vendor/mail/spec/mail/fields/resent_to_field_spec.rb +66 -0
- data/vendor/mail/spec/mail/fields/return_path_field_spec.rb +52 -0
- data/vendor/mail/spec/mail/fields/sender_field_spec.rb +58 -0
- data/vendor/mail/spec/mail/fields/structured_field_spec.rb +72 -0
- data/vendor/mail/spec/mail/fields/to_field_spec.rb +92 -0
- data/vendor/mail/spec/mail/fields/unstructured_field_spec.rb +134 -0
- data/vendor/mail/spec/mail/header_spec.rb +578 -0
- data/vendor/mail/spec/mail/mail_spec.rb +34 -0
- data/vendor/mail/spec/mail/message_spec.rb +1409 -0
- data/vendor/mail/spec/mail/mime_messages_spec.rb +435 -0
- data/vendor/mail/spec/mail/multipart_report_spec.rb +112 -0
- data/vendor/mail/spec/mail/network/delivery_methods/file_delivery_spec.rb +79 -0
- data/vendor/mail/spec/mail/network/delivery_methods/sendmail_spec.rb +125 -0
- data/vendor/mail/spec/mail/network/delivery_methods/smtp_spec.rb +133 -0
- data/vendor/mail/spec/mail/network/delivery_methods/test_mailer_spec.rb +57 -0
- data/vendor/mail/spec/mail/network/retriever_methods/pop3_spec.rb +180 -0
- data/vendor/mail/spec/mail/network_spec.rb +359 -0
- data/vendor/mail/spec/mail/parsers/address_lists_parser_spec.rb +15 -0
- data/vendor/mail/spec/mail/parsers/content_transfer_encoding_parser_spec.rb +72 -0
- data/vendor/mail/spec/mail/part_spec.rb +129 -0
- data/vendor/mail/spec/mail/parts_list_spec.rb +12 -0
- data/vendor/mail/spec/mail/round_tripping_spec.rb +44 -0
- data/vendor/mail/spec/mail/utilities_spec.rb +327 -0
- data/vendor/mail/spec/mail/version_specific/escape_paren_1_8_spec.rb +32 -0
- data/vendor/mail/spec/matchers/break_down_to.rb +35 -0
- data/vendor/mail/spec/spec_helper.rb +163 -0
- metadata +442 -0
@@ -0,0 +1,89 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Mail::BccField do
|
5
|
+
|
6
|
+
# The "Bcc:" field (where the "Bcc" means "Blind Carbon Copy") contains
|
7
|
+
# addresses of recipients of the message whose addresses are not to be
|
8
|
+
# revealed to other recipients of the message. There are three ways in
|
9
|
+
# which the "Bcc:" field is used. In the first case, when a message
|
10
|
+
# containing a "Bcc:" field is prepared to be sent, the "Bcc:" line is
|
11
|
+
# removed even though all of the recipients (including those specified
|
12
|
+
# in the "Bcc:" field) are sent a copy of the message. In the second
|
13
|
+
# case, recipients specified in the "To:" and "Cc:" lines each are sent
|
14
|
+
# a copy of the message with the "Bcc:" line removed as above, but the
|
15
|
+
# recipients on the "Bcc:" line get a separate copy of the message
|
16
|
+
# containing a "Bcc:" line. (When there are multiple recipient
|
17
|
+
# addresses in the "Bcc:" field, some implementations actually send a
|
18
|
+
# separate copy of the message to each recipient with a "Bcc:"
|
19
|
+
# containing only the address of that particular recipient.) Finally,
|
20
|
+
# since a "Bcc:" field may contain no addresses, a "Bcc:" field can be
|
21
|
+
# sent without any addresses indicating to the recipients that blind
|
22
|
+
# copies were sent to someone. Which method to use with "Bcc:" fields
|
23
|
+
# is implementation dependent, but refer to the "Security
|
24
|
+
# Considerations" section of this document for a discussion of each.
|
25
|
+
|
26
|
+
describe "initialization" do
|
27
|
+
|
28
|
+
it "should initialize" do
|
29
|
+
doing { Mail::BccField.new("Bcc: Mikel") }.should_not raise_error
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should mix in the CommonAddress module" do
|
33
|
+
Mail::BccField.included_modules.should include(Mail::CommonAddress)
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should accept a string with the field name" do
|
37
|
+
t = Mail::BccField.new('Bcc: Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
38
|
+
t.name.should == 'Bcc'
|
39
|
+
t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should accept a string without the field name" do
|
43
|
+
t = Mail::BccField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
44
|
+
t.name.should == 'Bcc'
|
45
|
+
t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
# Actual testing of CommonAddress methods occurs in the address field spec file
|
51
|
+
|
52
|
+
describe "instance methods" do
|
53
|
+
it "should return an address" do
|
54
|
+
t = Mail::BccField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
|
55
|
+
t.formatted.should == ['Mikel Lindsaar <mikel@test.lindsaar.net>']
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should return two addresses" do
|
59
|
+
t = Mail::BccField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, Ada Lindsaar <ada@test.lindsaar.net>')
|
60
|
+
t.formatted.first.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
|
61
|
+
t.addresses.last.should == 'ada@test.lindsaar.net'
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should return one address and a group" do
|
65
|
+
t = Mail::BccField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
66
|
+
t.addresses[0].should == 'sam@me.com'
|
67
|
+
t.addresses[1].should == 'mikel@me.com'
|
68
|
+
t.addresses[2].should == 'bob@you.com'
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should return the formatted line on to_s" do
|
72
|
+
t = Mail::BccField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
73
|
+
t.value.should == 'sam@me.com, my_group: mikel@me.com, bob@you.com;'
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should return nothing on encoded as Bcc should not be in the mail" do
|
77
|
+
t = Mail::BccField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
78
|
+
t.encoded.should == ""
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should return the decoded line" do
|
82
|
+
t = Mail::BccField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
83
|
+
t.decoded.should == "sam@me.com, my_group: mikel@me.com, bob@you.com;"
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
87
|
+
|
88
|
+
|
89
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
# The "Cc:" field (where the "Cc" means "Carbon Copy" in the sense of
|
5
|
+
# making a copy on a typewriter using carbon paper) contains the
|
6
|
+
# addresses of others who are to receive the message, though the
|
7
|
+
# content of the message may not be directed at them.
|
8
|
+
|
9
|
+
describe Mail::CcField do
|
10
|
+
|
11
|
+
describe "initialization" do
|
12
|
+
|
13
|
+
it "should initialize" do
|
14
|
+
doing { Mail::CcField.new("Cc: Mikel") }.should_not raise_error
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should mix in the CommonAddress module" do
|
18
|
+
Mail::CcField.included_modules.should include(Mail::CommonAddress)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should accept a string with the field name" do
|
22
|
+
t = Mail::CcField.new('Cc: Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
23
|
+
t.name.should == 'Cc'
|
24
|
+
t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should accept a string without the field name" do
|
28
|
+
t = Mail::CcField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
29
|
+
t.name.should == 'Cc'
|
30
|
+
t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
# Actual testing of CommonAddress methods occurs in the address field spec file
|
36
|
+
|
37
|
+
describe "instance methods" do
|
38
|
+
it "should return an address" do
|
39
|
+
t = Mail::CcField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
|
40
|
+
t.formatted.should == ['Mikel Lindsaar <mikel@test.lindsaar.net>']
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should return two addresses" do
|
44
|
+
t = Mail::CcField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, Ada Lindsaar <ada@test.lindsaar.net>')
|
45
|
+
t.formatted.first.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
|
46
|
+
t.addresses.last.should == 'ada@test.lindsaar.net'
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should return one address and a group" do
|
50
|
+
t = Mail::CcField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
51
|
+
t.addresses[0].should == 'sam@me.com'
|
52
|
+
t.addresses[1].should == 'mikel@me.com'
|
53
|
+
t.addresses[2].should == 'bob@you.com'
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should return the formatted line on to_s" do
|
57
|
+
t = Mail::CcField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
58
|
+
t.value.should == 'sam@me.com, my_group: mikel@me.com, bob@you.com;'
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should return the encoded line for one address" do
|
62
|
+
t = Mail::CcField.new('sam@me.com')
|
63
|
+
t.encoded.should == "Cc: sam@me.com\r\n"
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should return the encoded line" do
|
67
|
+
t = Mail::CcField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
68
|
+
t.encoded.should == "Cc: sam@me.com, \r\n\tmy_group: mikel@me.com, \r\n\tbob@you.com;\r\n"
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should return the decoded line" do
|
72
|
+
t = Mail::CcField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
73
|
+
t.decoded.should == "sam@me.com, my_group: mikel@me.com, bob@you.com;"
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
|
79
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Mail::CommentsField do
|
5
|
+
#
|
6
|
+
# comments = "Comments:" unstructured CRLF
|
7
|
+
|
8
|
+
it "should initialize" do
|
9
|
+
doing { Mail::CommentsField.new("this is a comment") }.should_not raise_error
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should accept a string with the field name" do
|
13
|
+
t = Mail::CommentsField.new('Comments: this is a comment')
|
14
|
+
t.name.should == 'Comments'
|
15
|
+
t.value.should == 'this is a comment'
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should accept a string with the field name" do
|
19
|
+
t = Mail::CommentsField.new('this is a comment')
|
20
|
+
t.name.should == 'Comments'
|
21
|
+
t.value.should == 'this is a comment'
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe 'AddressContainer' do
|
5
|
+
it "should allow you to append an address to an address field result" do
|
6
|
+
m = Mail.new("To: mikel@test.lindsaar.net")
|
7
|
+
m.to.should == ['mikel@test.lindsaar.net']
|
8
|
+
m.to << 'bob@test.lindsaar.net'
|
9
|
+
m.to.should == ['mikel@test.lindsaar.net', 'bob@test.lindsaar.net']
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should handle complex addresses correctly" do
|
13
|
+
m = Mail.new("From: mikel@test.lindsaar.net")
|
14
|
+
m.from.should == ['mikel@test.lindsaar.net']
|
15
|
+
m.from << '"Ada Lindsaar" <ada@test.lindsaar.net>, bob@test.lindsaar.net'
|
16
|
+
m.from.should == ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net', 'bob@test.lindsaar.net']
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,132 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "Mail::CommonAddress" do
|
5
|
+
|
6
|
+
describe "address handling" do
|
7
|
+
|
8
|
+
it "should give the addresses it is going to" do
|
9
|
+
field = Mail::ToField.new("To: test1@lindsaar.net")
|
10
|
+
field.addresses.first.should == "test1@lindsaar.net"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should split up the address list into individual addresses" do
|
14
|
+
field = Mail::ToField.new("To: test1@lindsaar.net, test2@lindsaar.net")
|
15
|
+
field.addresses.should == ["test1@lindsaar.net", "test2@lindsaar.net"]
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should give the formatted addresses" do
|
19
|
+
field = Mail::ToField.new("To: Mikel <test1@lindsaar.net>, Bob <test2@lindsaar.net>")
|
20
|
+
field.formatted.should == ["Mikel <test1@lindsaar.net>", "Bob <test2@lindsaar.net>"]
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should give the display names" do
|
24
|
+
field = Mail::ToField.new("To: Mikel <test1@lindsaar.net>, Bob <test2@lindsaar.net>")
|
25
|
+
field.display_names.should == ["Mikel", "Bob"]
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should give the actual address objects" do
|
29
|
+
field = Mail::ToField.new("To: Mikel <test1@lindsaar.net>, Bob <test2@lindsaar.net>")
|
30
|
+
field.addrs.each do |addr|
|
31
|
+
addr.class.should == Mail::Address
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should handle groups as well" do
|
36
|
+
field = Mail::ToField.new("To: test1@lindsaar.net, group: test2@lindsaar.net, me@lindsaar.net;")
|
37
|
+
field.addresses.should == ["test1@lindsaar.net", "test2@lindsaar.net", "me@lindsaar.net"]
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should provide a list of groups" do
|
41
|
+
field = Mail::ToField.new("To: test1@lindsaar.net, My Group: test2@lindsaar.net, me@lindsaar.net;")
|
42
|
+
field.group_names.should == ["My Group"]
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should provide a list of addresses per group" do
|
46
|
+
field = Mail::ToField.new("To: test1@lindsaar.net, My Group: test2@lindsaar.net, me@lindsaar.net;")
|
47
|
+
field.groups["My Group"].length.should == 2
|
48
|
+
field.groups["My Group"].first.to_s.should == 'test2@lindsaar.net'
|
49
|
+
field.groups["My Group"].last.to_s.should == 'me@lindsaar.net'
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should provide a list of addresses that are just in the groups" do
|
53
|
+
field = Mail::ToField.new("To: test1@lindsaar.net, My Group: test2@lindsaar.net, me@lindsaar.net;")
|
54
|
+
field.group_addresses.should == ['test2@lindsaar.net', 'me@lindsaar.net']
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should handle initializing as an empty string" do
|
58
|
+
field = Mail::ToField.new("")
|
59
|
+
field.addresses.should == []
|
60
|
+
field.value = 'mikel@test.lindsaar.net'
|
61
|
+
field.addresses.should == ['mikel@test.lindsaar.net']
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should encode to an empty string if it has no addresses or groups" do
|
65
|
+
field = Mail::ToField.new("")
|
66
|
+
field.encoded.should == ''
|
67
|
+
field.value = 'mikel@test.lindsaar.net'
|
68
|
+
field.encoded.should == "To: mikel@test.lindsaar.net\r\n"
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should allow you to append an address" do
|
72
|
+
field = Mail::ToField.new("")
|
73
|
+
field << 'mikel@test.lindsaar.net'
|
74
|
+
field.addresses.should == ["mikel@test.lindsaar.net"]
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should preserve the display name" do
|
78
|
+
field = Mail::ToField.new('"Mikel Lindsaar" <mikel@test.lindsaar.net>')
|
79
|
+
field.display_names.should == ["Mikel Lindsaar"]
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should handle multiple addresses" do
|
83
|
+
field = Mail::ToField.new(['test1@lindsaar.net', 'Mikel <test2@lindsaar.net>'])
|
84
|
+
field.addresses.should == ['test1@lindsaar.net', 'test2@lindsaar.net']
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
|
89
|
+
describe "encoding and decoding fields" do
|
90
|
+
|
91
|
+
it "should allow us to encode an address field" do
|
92
|
+
field = Mail::ToField.new("test1@lindsaar.net, My Group: test2@lindsaar.net, me@lindsaar.net;")
|
93
|
+
field.encoded.should == "To: test1@lindsaar.net, \r\n\tMy Group: test2@lindsaar.net, \r\n\tme@lindsaar.net;\r\n"
|
94
|
+
end
|
95
|
+
|
96
|
+
it "should allow us to encode a simple address field" do
|
97
|
+
field = Mail::ToField.new("test1@lindsaar.net")
|
98
|
+
field.encoded.should == "To: test1@lindsaar.net\r\n"
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should allow us to encode an address field" do
|
102
|
+
field = Mail::CcField.new("test1@lindsaar.net, My Group: test2@lindsaar.net, me@lindsaar.net;")
|
103
|
+
field.encoded.should == "Cc: test1@lindsaar.net, \r\n\tMy Group: test2@lindsaar.net, \r\n\tme@lindsaar.net;\r\n"
|
104
|
+
end
|
105
|
+
|
106
|
+
it "should allow us to decode an address field" do
|
107
|
+
field = Mail::ToField.new("test1@lindsaar.net, My Group: test2@lindsaar.net, me@lindsaar.net;")
|
108
|
+
field.decoded.should == "test1@lindsaar.net, My Group: test2@lindsaar.net, me@lindsaar.net;"
|
109
|
+
end
|
110
|
+
|
111
|
+
it "should allow us to decode a non ascii address field" do
|
112
|
+
field = Mail::ToField.new("=?UTF-8?B?44G/44GR44KL?= <raasdnil@text.lindsaar.net>")
|
113
|
+
field.decoded.should == '"みける" <raasdnil@text.lindsaar.net>'
|
114
|
+
end
|
115
|
+
|
116
|
+
it "should allow us to decode a non ascii address field" do
|
117
|
+
field = Mail::ToField.new("=?UTF-8?B?44G/44GR44KL?= <raasdnil@text.lindsaar.net>, =?UTF-8?B?44G/44GR44KL?= <mikel@text.lindsaar.net>")
|
118
|
+
field.decoded.should == '"みける" <raasdnil@text.lindsaar.net>, "みける" <mikel@text.lindsaar.net>'
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
122
|
+
|
123
|
+
it "should yield each address object in turn" do
|
124
|
+
field = Mail::ToField.new("test1@lindsaar.net, test2@lindsaar.net, me@lindsaar.net")
|
125
|
+
addresses = []
|
126
|
+
field.each do |address|
|
127
|
+
addresses << address.address
|
128
|
+
end
|
129
|
+
addresses.should == ["test1@lindsaar.net", "test2@lindsaar.net", "me@lindsaar.net"]
|
130
|
+
end
|
131
|
+
|
132
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Mail::CommonAddress do
|
4
|
+
|
5
|
+
describe "encoding and decoding fields" do
|
6
|
+
|
7
|
+
it "should allow us to encode an date field" do
|
8
|
+
field = Mail::DateField.new('12 Aug 2009 00:00:02 GMT')
|
9
|
+
field.encoded.should == "Date: Wed, 12 Aug 2009 00:00:02 +0000\r\n"
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should allow us to encode an resent date field" do
|
13
|
+
field = Mail::ResentDateField.new('12 Aug 2009 00:00:02 GMT')
|
14
|
+
field.encoded.should == "Resent-Date: Wed, 12 Aug 2009 00:00:02 +0000\r\n"
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should allow us to decode an address field" do
|
18
|
+
field = Mail::DateField.new('12 Aug 2009 00:00:02 GMT')
|
19
|
+
field.decoded.should == "Wed, 12 Aug 2009 00:00:02 +0000"
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Mail::CommonField do
|
5
|
+
|
6
|
+
describe "multi-charset support" do
|
7
|
+
|
8
|
+
before(:each) do
|
9
|
+
@original = $KCODE if RUBY_VERSION < '1.9'
|
10
|
+
end
|
11
|
+
|
12
|
+
after(:each) do
|
13
|
+
$KCODE = @original if RUBY_VERSION < '1.9'
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should leave ascii alone" do
|
17
|
+
field = Mail::SubjectField.new("This is a test")
|
18
|
+
field.encoded.should == "Subject: This is a test\r\n"
|
19
|
+
field.decoded.should == "This is a test"
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should encode a utf-8 string as utf-8 quoted printable" do
|
23
|
+
value = "かきくけこ"
|
24
|
+
if RUBY_VERSION < '1.9'
|
25
|
+
$KCODE = 'u'
|
26
|
+
result = "Subject: =?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n"
|
27
|
+
else
|
28
|
+
value.force_encoding('UTF-8')
|
29
|
+
result = "Subject: =?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n"
|
30
|
+
end
|
31
|
+
field = Mail::SubjectField.new(value)
|
32
|
+
field.encoded.should == result
|
33
|
+
field.decoded.should == value
|
34
|
+
field.value.should == value
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should wrap an encoded at 60 characters" do
|
38
|
+
value = "かきくけこ かきくけこ かきくけこ かきくけこ かきくけこ かきくけこ かきくけこ かきくけこ かきくけこ"
|
39
|
+
if RUBY_VERSION < '1.9'
|
40
|
+
$KCODE = 'u'
|
41
|
+
result = "Subject: =?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n\t=?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n\t=?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n\t=?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n\t=?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n\t=?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n\t=?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n\t=?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n\t=?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n"
|
42
|
+
else
|
43
|
+
value.force_encoding('UTF-8')
|
44
|
+
result = "Subject: =?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n\t=?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n\t=?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n\t=?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n\t=?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n\t=?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n\t=?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n\t=?UTF-8?Q?=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n\t=?UTF-8?Q?_=E3=81=8B=E3=81=8D=E3=81=8F=E3=81=91=E3=81=93=?=\r\n"
|
45
|
+
end
|
46
|
+
field = Mail::SubjectField.new(value)
|
47
|
+
field.encoded.should == result
|
48
|
+
field.decoded.should == value
|
49
|
+
field.value.should == value
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should handle charsets in assigned addresses" do
|
53
|
+
value = '"かきくけこ" <mikel@test.lindsaar.net>'
|
54
|
+
if RUBY_VERSION < '1.9'
|
55
|
+
$KCODE = 'u'
|
56
|
+
result = "From: =?UTF-8?B?44GL44GN44GP44GR44GT?= <mikel@test.lindsaar.net>\r\n"
|
57
|
+
else
|
58
|
+
value.force_encoding('UTF-8')
|
59
|
+
result = "From: =?UTF-8?B?44GL44GN44GP44GR44GT?= <mikel@test.lindsaar.net>\r\n"
|
60
|
+
end
|
61
|
+
field = Mail::FromField.new(value)
|
62
|
+
field.encoded.should == result
|
63
|
+
field.decoded.should == value
|
64
|
+
field.value.should == "=?UTF-8?B?44GL44GN44GP44GR44GT?= <mikel@test.lindsaar.net>"
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'mail/fields/common/common_message_id'
|
3
|
+
|
4
|
+
describe Mail::CommonMessageId do
|
5
|
+
|
6
|
+
describe "encoding and decoding fields" do
|
7
|
+
|
8
|
+
it "should allow us to encode a message id field" do
|
9
|
+
field = Mail::MessageIdField.new('<ThisIsANonUniqueMessageId@me.com>')
|
10
|
+
field.encoded.should == "Message-ID: <ThisIsANonUniqueMessageId@me.com>\r\n"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should allow us to encode a message id field" do
|
14
|
+
field = Mail::MessageIdField.new('<1234@test.lindsaar.net>')
|
15
|
+
field.encoded.should == "Message-ID: <1234@test.lindsaar.net>\r\n"
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should allow us to encode an in reply to field" do
|
19
|
+
field = Mail::InReplyToField.new('<1234@test.lindsaar.net>')
|
20
|
+
field.encoded.should == "In-Reply-To: <1234@test.lindsaar.net>\r\n"
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should allow us to decode a message id field" do
|
24
|
+
field = Mail::MessageIdField.new('<1234@test.lindsaar.net>')
|
25
|
+
field.decoded.should == "<1234@test.lindsaar.net>"
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|