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,166 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Mail::MimeVersionField do
|
4
|
+
# MIME-Version Header Field
|
5
|
+
#
|
6
|
+
# Since RFC 822 was published in 1982, there has really been only one
|
7
|
+
# format standard for Internet messages, and there has been little
|
8
|
+
# perceived need to declare the format standard in use. This document
|
9
|
+
# is an independent specification that complements RFC 822. Although
|
10
|
+
# the extensions in this document have been defined in such a way as to
|
11
|
+
# be compatible with RFC 822, there are still circumstances in which it
|
12
|
+
# might be desirable for a mail-processing agent to know whether a
|
13
|
+
# message was composed with the new standard in mind.
|
14
|
+
#
|
15
|
+
# Therefore, this document defines a new header field, "MIME-Version",
|
16
|
+
# which is to be used to declare the version of the Internet message
|
17
|
+
# body format standard in use.
|
18
|
+
#
|
19
|
+
# Messages composed in aMimeVersionordance with this document MUST include such
|
20
|
+
# a header field, with the following verbatim text:
|
21
|
+
#
|
22
|
+
# MIME-Version: 1.0
|
23
|
+
#
|
24
|
+
# The presence of this header field is an assertion that the message
|
25
|
+
# has been composed in compliance with this document.
|
26
|
+
#
|
27
|
+
# Since it is possible that a future document might extend the message
|
28
|
+
# format standard again, a formal BNF is given for the content of the
|
29
|
+
# MIME-Version field:
|
30
|
+
#
|
31
|
+
# version := "MIME-Version" ":" 1*DIGIT "." 1*DIGIT
|
32
|
+
#
|
33
|
+
# Thus, future format specifiers, which might replace or extend "1.0",
|
34
|
+
# are constrained to be two integer fields, separated by a period. If
|
35
|
+
# a message is received with a MIME-version value other than "1.0", it
|
36
|
+
# cannot be assumed to conform with this document.
|
37
|
+
#
|
38
|
+
# Note that the MIME-Version header field is required at the top level
|
39
|
+
# of a message. It is not required for each body part of a multipart
|
40
|
+
# entity. It is required for the embedded headers of a body of type
|
41
|
+
# "message/rfc822" or "message/partial" if and only if the embedded
|
42
|
+
# message is itself claimed to be MIME-conformant.
|
43
|
+
#
|
44
|
+
# It is not possible to fully specify how a mail reader that conforms
|
45
|
+
# with MIME as defined in this document should treat a message that
|
46
|
+
# might arrive in the future with some value of MIME-Version other than
|
47
|
+
# "1.0".
|
48
|
+
#
|
49
|
+
# It is also worth noting that version control for specific media types
|
50
|
+
# is not aMimeVersionomplished using the MIME-Version mechanism. In particular,
|
51
|
+
# some formats (such as application/postscript) have version numbering
|
52
|
+
# conventions that are internal to the media format. Where such
|
53
|
+
# conventions exist, MIME does nothing to supersede them. Where no
|
54
|
+
# such conventions exist, a MIME media type might use a "version"
|
55
|
+
# parameter in the content-type field if necessary.
|
56
|
+
#
|
57
|
+
# NOTE TO IMPLEMENTORS: When checking MIME-Version values any RFC 822
|
58
|
+
# comment strings that are present must be ignored. In particular, the
|
59
|
+
# following four MIME-Version fields are equivalent:
|
60
|
+
#
|
61
|
+
# MIME-Version: 1.0
|
62
|
+
#
|
63
|
+
# MIME-Version: 1.0 (produced by MetaSend Vx.x)
|
64
|
+
#
|
65
|
+
# MIME-Version: (produced by MetaSend Vx.x) 1.0
|
66
|
+
#
|
67
|
+
# MIME-Version: 1.(produced by MetaSend Vx.x)0
|
68
|
+
#
|
69
|
+
# In the absence of a MIME-Version field, a receiving mail user agent
|
70
|
+
# (whether conforming to MIME requirements or not) may optionally
|
71
|
+
# choose to interpret the body of the message aMimeVersionording to local
|
72
|
+
# conventions. Many such conventions are currently in use and it
|
73
|
+
# should be noted that in practice non-MIME messages can contain just
|
74
|
+
# about anything.
|
75
|
+
#
|
76
|
+
# It is impossible to be certain that a non-MIME mail message is
|
77
|
+
# actually plain text in the US-ASCII character set since it might well
|
78
|
+
# be a message that, using some set of nonstandard local conventions
|
79
|
+
# that predate MIME, includes text in another character set or non-
|
80
|
+
# textual data presented in a manner that cannot be automatically
|
81
|
+
# recognized (e.g., a uuencoded compressed UNIX tar file).
|
82
|
+
|
83
|
+
describe "initialization" do
|
84
|
+
|
85
|
+
it "should initialize" do
|
86
|
+
doing { Mail::MimeVersionField.new("1.0") }.should_not raise_error
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should accept a string with the field name" do
|
90
|
+
t = Mail::MimeVersionField.new('Mime-Version: 1.0')
|
91
|
+
t.name.should == 'Mime-Version'
|
92
|
+
t.value.should == '1.0'
|
93
|
+
end
|
94
|
+
|
95
|
+
it "should accept a string without the field name" do
|
96
|
+
t = Mail::MimeVersionField.new('1.0')
|
97
|
+
t.name.should == 'Mime-Version'
|
98
|
+
t.value.should == '1.0'
|
99
|
+
end
|
100
|
+
|
101
|
+
end
|
102
|
+
|
103
|
+
describe "parsing a version string" do
|
104
|
+
it "should get a major value" do
|
105
|
+
t = Mail::MimeVersionField.new('1.0')
|
106
|
+
t.major.should == 1
|
107
|
+
end
|
108
|
+
|
109
|
+
it "should get a minor value" do
|
110
|
+
t = Mail::MimeVersionField.new('1.0')
|
111
|
+
t.minor.should == 0
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should get a version string" do
|
115
|
+
t = Mail::MimeVersionField.new('1.0')
|
116
|
+
t.version.should == '1.0'
|
117
|
+
end
|
118
|
+
|
119
|
+
it "should handle comments before the major version" do
|
120
|
+
t = Mail::MimeVersionField.new('(This is a comment) 1.0')
|
121
|
+
t.version.should == '1.0'
|
122
|
+
end
|
123
|
+
|
124
|
+
it "should handle comments before the major version without space" do
|
125
|
+
t = Mail::MimeVersionField.new('(This is a comment)1.0')
|
126
|
+
t.version.should == '1.0'
|
127
|
+
end
|
128
|
+
|
129
|
+
it "should handle comments after the major version without space" do
|
130
|
+
t = Mail::MimeVersionField.new('1(This is a comment).0')
|
131
|
+
t.version.should == '1.0'
|
132
|
+
end
|
133
|
+
|
134
|
+
it "should handle comments before the minor version without space" do
|
135
|
+
t = Mail::MimeVersionField.new('1.(This is a comment)0')
|
136
|
+
t.version.should == '1.0'
|
137
|
+
end
|
138
|
+
|
139
|
+
it "should handle comments after the minor version without space" do
|
140
|
+
t = Mail::MimeVersionField.new('1.0(This is a comment)')
|
141
|
+
t.version.should == '1.0'
|
142
|
+
end
|
143
|
+
|
144
|
+
it "should handle comments after the minor version" do
|
145
|
+
t = Mail::MimeVersionField.new('1.0 (This is a comment)')
|
146
|
+
t.version.should == '1.0'
|
147
|
+
end
|
148
|
+
|
149
|
+
it "should accept nil as a value" do
|
150
|
+
t = Mail::MimeVersionField.new(nil)
|
151
|
+
t.version.should_not be_nil
|
152
|
+
end
|
153
|
+
|
154
|
+
it "should provide an encoded value" do
|
155
|
+
t = Mail::MimeVersionField.new('1.0 (This is a comment)')
|
156
|
+
t.encoded.should == "Mime-Version: 1.0\r\n"
|
157
|
+
end
|
158
|
+
|
159
|
+
it "should provide an decoded value" do
|
160
|
+
t = Mail::MimeVersionField.new('1.0 (This is a comment)')
|
161
|
+
t.decoded.should == '1.0'
|
162
|
+
end
|
163
|
+
|
164
|
+
end
|
165
|
+
|
166
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Mail::ReceivedField do
|
5
|
+
|
6
|
+
it "should initialize" do
|
7
|
+
doing { Mail::ReceivedField.new("Received: from localhost (localhost [127.0.0.1]) by xxx.xxxxx.com (Postfix) with ESMTP id 50FD3A96F for <xxxx@xxxx.com>; Tue, 10 May 2005 17:26:50 +0000 (GMT)") }.should_not raise_error
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should be able to tell the time" do
|
11
|
+
Mail::ReceivedField.new("Received: from localhost (localhost [127.0.0.1]) by xxx.xxxxx.com (Postfix) with ESMTP id 50FD3A96F for <xxxx@xxxx.com>; Tue, 10 May 2005 17:26:50 +0000 (GMT)").date_time.class.should == DateTime
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should accept a string with the field name" do
|
15
|
+
t = Mail::ReceivedField.new('Received: from localhost (localhost [127.0.0.1]) by xxx.xxxxx.com (Postfix) with ESMTP id 50FD3A96F for <xxxx@xxxx.com>; Tue, 10 May 2005 17:26:50 +0000 (GMT)')
|
16
|
+
t.name.should == 'Received'
|
17
|
+
t.value.should == 'from localhost (localhost [127.0.0.1]) by xxx.xxxxx.com (Postfix) with ESMTP id 50FD3A96F for <xxxx@xxxx.com>; Tue, 10 May 2005 17:26:50 +0000 (GMT)'
|
18
|
+
t.info.should == 'from localhost (localhost [127.0.0.1]) by xxx.xxxxx.com (Postfix) with ESMTP id 50FD3A96F for <xxxx@xxxx.com>'
|
19
|
+
t.date_time.should == ::DateTime.parse('10 May 2005 17:26:50 +0000 (GMT)')
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should accept a string without the field name" do
|
23
|
+
t = Mail::ReceivedField.new('from localhost (localhost [127.0.0.1]) by xxx.xxxxx.com (Postfix) with ESMTP id 50FD3A96F for <xxxx@xxxx.com>; Tue, 10 May 2005 17:26:50 +0000 (GMT)')
|
24
|
+
t.name.should == 'Received'
|
25
|
+
t.value.should == 'from localhost (localhost [127.0.0.1]) by xxx.xxxxx.com (Postfix) with ESMTP id 50FD3A96F for <xxxx@xxxx.com>; Tue, 10 May 2005 17:26:50 +0000 (GMT)'
|
26
|
+
t.info.should == 'from localhost (localhost [127.0.0.1]) by xxx.xxxxx.com (Postfix) with ESMTP id 50FD3A96F for <xxxx@xxxx.com>'
|
27
|
+
t.date_time.should == ::DateTime.parse('10 May 2005 17:26:50 +0000 (GMT)')
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should provide an encoded value" do
|
31
|
+
t = Mail::ReceivedField.new('from localhost (localhost [127.0.0.1]) by xxx.xxxxx.com (Postfix) with ESMTP id 50FD3A96F for <xxxx@xxxx.com>; Tue, 10 May 2005 17:26:50 +0000 (GMT)')
|
32
|
+
t.encoded.should == "Received: from localhost (localhost [127.0.0.1]) by xxx.xxxxx.com (Postfix) with ESMTP id 50FD3A96F for <xxxx@xxxx.com>; Tue, 10 May 2005 17:26:50 +0000\r\n"
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should provide an encoded value with correct timezone" do
|
36
|
+
t = Mail::ReceivedField.new('from localhost (localhost [127.0.0.1]) by xxx.xxxxx.com (Postfix) with ESMTP id 50FD3A96F for <xxxx@xxxx.com>; Tue, 10 May 2005 17:26:50 -0500 (EST)')
|
37
|
+
t.encoded.should == "Received: from localhost (localhost [127.0.0.1]) by xxx.xxxxx.com (Postfix) with ESMTP id 50FD3A96F for <xxxx@xxxx.com>; Tue, 10 May 2005 17:26:50 -0500\r\n"
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should provide an decoded value" do
|
41
|
+
t = Mail::ReceivedField.new('from localhost (localhost [127.0.0.1]) by xxx.xxxxx.com (Postfix) with ESMTP id 50FD3A96F for <xxxx@xxxx.com>; Tue, 10 May 2005 17:26:50 +0000 (GMT)')
|
42
|
+
t.decoded.should == 'from localhost (localhost [127.0.0.1]) by xxx.xxxxx.com (Postfix) with ESMTP id 50FD3A96F for <xxxx@xxxx.com>; Tue, 10 May 2005 17:26:50 +0000'
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
#
|
4
|
+
# The "References:" field will contain the contents of the parent's
|
5
|
+
# "References:" field (if any) followed by the contents of the parent's
|
6
|
+
# "Message-ID:" field (if any). If the parent message does not contain
|
7
|
+
# a "References:" field but does have an "In-Reply-To:" field
|
8
|
+
# containing a single message identifier, then the "References:" field
|
9
|
+
# will contain the contents of the parent's "In-Reply-To:" field
|
10
|
+
# followed by the contents of the parent's "Message-ID:" field (if
|
11
|
+
# any). If the parent has none of the "References:", "In-Reply-To:",
|
12
|
+
# or "Message-ID:" fields, then the new message will have no
|
13
|
+
# "References:" field.
|
14
|
+
|
15
|
+
describe Mail::ReferencesField do
|
16
|
+
|
17
|
+
it "should initialize" do
|
18
|
+
doing { Mail::ReferencesField.new("<1234@test.lindsaar.net>") }.should_not raise_error
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should accept a string with the field name" do
|
22
|
+
t = Mail::ReferencesField.new('References: <1234@test.lindsaar.net>')
|
23
|
+
t.name.should == 'References'
|
24
|
+
t.value.should == '<1234@test.lindsaar.net>'
|
25
|
+
t.message_id.should == '1234@test.lindsaar.net'
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should accept a string without the field name" do
|
29
|
+
t = Mail::ReferencesField.new('<1234@test.lindsaar.net>')
|
30
|
+
t.name.should == 'References'
|
31
|
+
t.value.should == '<1234@test.lindsaar.net>'
|
32
|
+
t.message_id.should == '1234@test.lindsaar.net'
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
#
|
4
|
+
# reply-to = "Reply-To:" address-list CRLF
|
5
|
+
#
|
6
|
+
|
7
|
+
describe Mail::ReplyToField do
|
8
|
+
|
9
|
+
describe "initialization" do
|
10
|
+
|
11
|
+
it "should initialize" do
|
12
|
+
doing { Mail::ReplyToField.new("ReplyTo", "Mikel") }.should_not raise_error
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should mix in the CommonAddress module" do
|
16
|
+
Mail::ReplyToField.included_modules.should include(Mail::CommonAddress)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should accept a string with the field name" do
|
20
|
+
t = Mail::ReplyToField.new('Reply-To: Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
21
|
+
t.name.should == 'Reply-To'
|
22
|
+
t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should accept a string without the field name" do
|
26
|
+
t = Mail::ReplyToField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
27
|
+
t.name.should == 'Reply-To'
|
28
|
+
t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
# Actual testing of CommonAddress methods oReplyTours in the address field spec file
|
34
|
+
|
35
|
+
describe "instance methods" do
|
36
|
+
it "should return an address" do
|
37
|
+
t = Mail::ReplyToField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
|
38
|
+
t.formatted.should == ['Mikel Lindsaar <mikel@test.lindsaar.net>']
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should return two addresses" do
|
42
|
+
t = Mail::ReplyToField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, Ada Lindsaar <ada@test.lindsaar.net>')
|
43
|
+
t.formatted.first.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
|
44
|
+
t.addresses.last.should == 'ada@test.lindsaar.net'
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should return one address and a group" do
|
48
|
+
t = Mail::ReplyToField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
49
|
+
t.addresses[0].should == 'sam@me.com'
|
50
|
+
t.addresses[1].should == 'mikel@me.com'
|
51
|
+
t.addresses[2].should == 'bob@you.com'
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should return the formatted line on to_s" do
|
55
|
+
t = Mail::ReplyToField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
56
|
+
t.value.should == 'sam@me.com, my_group: mikel@me.com, bob@you.com;'
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should return the encoded line" do
|
60
|
+
t = Mail::ReplyToField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
61
|
+
t.encoded.should == "Reply-To: sam@me.com, \r\n\tmy_group: mikel@me.com, \r\n\tbob@you.com;\r\n"
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
#
|
4
|
+
# resent-bcc = "Resent-Bcc:" (address-list / [CFWS]) CRLF
|
5
|
+
|
6
|
+
describe Mail::ResentBccField do
|
7
|
+
|
8
|
+
describe "initialization" do
|
9
|
+
|
10
|
+
it "should initialize" do
|
11
|
+
doing { Mail::ResentBccField.new("ResentBcc", "Mikel") }.should_not raise_error
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should mix in the CommonAddress module" do
|
15
|
+
Mail::ResentBccField.included_modules.should include(Mail::CommonAddress)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should accept a string with the field name" do
|
19
|
+
t = Mail::ResentBccField.new('Resent-Bcc: Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
20
|
+
t.name.should == 'Resent-Bcc'
|
21
|
+
t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should accept a string without the field name" do
|
25
|
+
t = Mail::ResentBccField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
26
|
+
t.name.should == 'Resent-Bcc'
|
27
|
+
t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
# Actual testing of CommonAddress methods oResentBccurs in the address field spec file
|
33
|
+
|
34
|
+
describe "instance methods" do
|
35
|
+
it "should return an address" do
|
36
|
+
t = Mail::ResentBccField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
|
37
|
+
t.formatted.should == ['Mikel Lindsaar <mikel@test.lindsaar.net>']
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should return two addresses" do
|
41
|
+
t = Mail::ResentBccField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, Ada Lindsaar <ada@test.lindsaar.net>')
|
42
|
+
t.formatted.first.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
|
43
|
+
t.addresses.last.should == 'ada@test.lindsaar.net'
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should return one address and a group" do
|
47
|
+
t = Mail::ResentBccField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
48
|
+
t.addresses[0].should == 'sam@me.com'
|
49
|
+
t.addresses[1].should == 'mikel@me.com'
|
50
|
+
t.addresses[2].should == 'bob@you.com'
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should return the formatted line on to_s" do
|
54
|
+
t = Mail::ResentBccField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
55
|
+
t.value.should == 'sam@me.com, my_group: mikel@me.com, bob@you.com;'
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should return the encoded line" do
|
59
|
+
t = Mail::ResentBccField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
60
|
+
t.encoded.should == "Resent-Bcc: sam@me.com, \r\n\tmy_group: mikel@me.com, \r\n\tbob@you.com;\r\n"
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
#
|
4
|
+
# resent-cc = "Resent-Cc:" address-list CRLF
|
5
|
+
|
6
|
+
describe Mail::ResentCcField do
|
7
|
+
|
8
|
+
describe "initialization" do
|
9
|
+
|
10
|
+
it "should initialize" do
|
11
|
+
doing { Mail::ResentCcField.new("ResentCc", "Mikel") }.should_not raise_error
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should mix in the CommonAddress module" do
|
15
|
+
Mail::ResentCcField.included_modules.should include(Mail::CommonAddress)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should accept a string with the field name" do
|
19
|
+
t = Mail::ResentCcField.new('Resent-Cc: Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
20
|
+
t.name.should == 'Resent-Cc'
|
21
|
+
t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should accept a string without the field name" do
|
25
|
+
t = Mail::ResentCcField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
26
|
+
t.name.should == 'Resent-Cc'
|
27
|
+
t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
# Actual testing of CommonAddress methods oResentCcurs in the address field spec file
|
33
|
+
|
34
|
+
describe "instance methods" do
|
35
|
+
it "should return an address" do
|
36
|
+
t = Mail::ResentCcField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
|
37
|
+
t.formatted.should == ['Mikel Lindsaar <mikel@test.lindsaar.net>']
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should return two addresses" do
|
41
|
+
t = Mail::ResentCcField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, Ada Lindsaar <ada@test.lindsaar.net>')
|
42
|
+
t.formatted.first.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
|
43
|
+
t.addresses.last.should == 'ada@test.lindsaar.net'
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should return one address and a group" do
|
47
|
+
t = Mail::ResentCcField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
48
|
+
t.addresses[0].should == 'sam@me.com'
|
49
|
+
t.addresses[1].should == 'mikel@me.com'
|
50
|
+
t.addresses[2].should == 'bob@you.com'
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should return the formatted line on to_s" do
|
54
|
+
t = Mail::ResentCcField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
55
|
+
t.value.should == 'sam@me.com, my_group: mikel@me.com, bob@you.com;'
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should return the encoded line" do
|
59
|
+
t = Mail::ResentCcField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
60
|
+
t.encoded.should == "Resent-Cc: sam@me.com, \r\n\tmy_group: mikel@me.com, \r\n\tbob@you.com;\r\n"
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
end
|