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,39 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Mail::ResentDateField do
|
5
|
+
it "should initialize" do
|
6
|
+
doing { Mail::ResentDateField.new("12 Aug 2009 00:00:02 GMT") }.should_not raise_error
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should be able to tell the time" do
|
10
|
+
Mail::ResentDateField.new("12 Aug 2009 00:00:02 GMT").date_time.class.should == DateTime
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should mix in the CommonAddress module" do
|
14
|
+
Mail::ResentDateField.included_modules.should include(Mail::CommonDate)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should accept a string with the field name" do
|
18
|
+
t = Mail::ResentDateField.new('Resent-Date: 12 Aug 2009 00:00:02 GMT')
|
19
|
+
t.name.should == 'Resent-Date'
|
20
|
+
t.value.should == 'Wed, 12 Aug 2009 00:00:02 +0000'
|
21
|
+
t.date_time.should == ::DateTime.parse('12 Aug 2009 00:00:02 GMT')
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should accept a string without the field name" do
|
25
|
+
t = Mail::ResentDateField.new('12 Aug 2009 00:00:02 GMT')
|
26
|
+
t.name.should == 'Resent-Date'
|
27
|
+
t.value.should == 'Wed, 12 Aug 2009 00:00:02 +0000'
|
28
|
+
t.date_time.should == ::DateTime.parse('12 Aug 2009 00:00:02 GMT')
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should give today's date if no date is specified" do
|
32
|
+
now = Time.now
|
33
|
+
Time.stub!(:now).and_return(now)
|
34
|
+
t = Mail::ResentDateField.new
|
35
|
+
t.name.should == 'Resent-Date'
|
36
|
+
t.date_time.should == ::DateTime.parse(now.to_s)
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
#
|
4
|
+
# resent-from = "Resent-From:" mailbox-list CRLF
|
5
|
+
|
6
|
+
describe Mail::ResentFromField do
|
7
|
+
|
8
|
+
describe "initialization" do
|
9
|
+
|
10
|
+
it "should initialize" do
|
11
|
+
doing { Mail::ResentFromField.new("ResentFrom", "Mikel") }.should_not raise_error
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should mix in the CommonAddress module" do
|
15
|
+
Mail::ResentFromField.included_modules.should include(Mail::CommonAddress)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should accept a string with the field name" do
|
19
|
+
t = Mail::ResentFromField.new('Resent-From: Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
20
|
+
t.name.should == 'Resent-From'
|
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::ResentFromField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
26
|
+
t.name.should == 'Resent-From'
|
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 oResentFromurs in the address field spec file
|
33
|
+
|
34
|
+
describe "instance methods" do
|
35
|
+
it "should return an address" do
|
36
|
+
t = Mail::ResentFromField.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::ResentFromField.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::ResentFromField.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::ResentFromField.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::ResentFromField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
60
|
+
t.encoded.should == "Resent-From: 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,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Mail::ResentMessageIdField do
|
5
|
+
|
6
|
+
it "should initialize" do
|
7
|
+
doing { Mail::ResentMessageIdField.new("<1234@test.lindsaar.net>") }.should_not raise_error
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should accept a string with the field name" do
|
11
|
+
t = Mail::ResentMessageIdField.new('Resent-Message-ID: <1234@test.lindsaar.net>')
|
12
|
+
t.name.should == 'Resent-Message-ID'
|
13
|
+
t.value.should == '<1234@test.lindsaar.net>'
|
14
|
+
t.message_id.should == '1234@test.lindsaar.net'
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should accept a string without the field name" do
|
18
|
+
t = Mail::ResentMessageIdField.new('<1234@test.lindsaar.net>')
|
19
|
+
t.name.should == 'Resent-Message-ID'
|
20
|
+
t.value.should == '<1234@test.lindsaar.net>'
|
21
|
+
t.message_id.should == '1234@test.lindsaar.net'
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
#
|
4
|
+
# resent-sender = "Resent-Sender:" mailbox CRLF
|
5
|
+
|
6
|
+
describe Mail::ResentSenderField do
|
7
|
+
|
8
|
+
describe "initialization" do
|
9
|
+
|
10
|
+
it "should initialize" do
|
11
|
+
doing { Mail::ResentSenderField.new("ResentSender", "Mikel") }.should_not raise_error
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should mix in the CommonAddress module" do
|
15
|
+
Mail::ResentSenderField.included_modules.should include(Mail::CommonAddress)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should accept a string with the field name" do
|
19
|
+
t = Mail::ResentSenderField.new('Resent-Sender: Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
20
|
+
t.name.should == 'Resent-Sender'
|
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::ResentSenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
26
|
+
t.name.should == 'Resent-Sender'
|
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 oResentSenderurs in the address field spec file
|
33
|
+
|
34
|
+
describe "instance methods" do
|
35
|
+
it "should return an address" do
|
36
|
+
t = Mail::ResentSenderField.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::ResentSenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
|
42
|
+
t.address.to_s.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should return the formatted line on to_s" do
|
46
|
+
t = Mail::ResentSenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
|
47
|
+
t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should return the encoded line" do
|
51
|
+
t = Mail::ResentSenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
|
52
|
+
t.encoded.should == "Resent-Sender: Mikel Lindsaar <mikel@test.lindsaar.net>\r\n"
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
#
|
4
|
+
# resent-to = "Resent-To:" address-list CRLF
|
5
|
+
|
6
|
+
describe Mail::ResentToField do
|
7
|
+
|
8
|
+
describe "initialization" do
|
9
|
+
|
10
|
+
it "should initialize" do
|
11
|
+
doing { Mail::ResentToField.new("ResentTo", "Mikel") }.should_not raise_error
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should mix in the CommonAddress module" do
|
15
|
+
Mail::ResentToField.included_modules.should include(Mail::CommonAddress)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should accept a string with the field name" do
|
19
|
+
t = Mail::ResentToField.new('Resent-To: Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
20
|
+
t.name.should == 'Resent-To'
|
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::ResentToField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
26
|
+
t.name.should == 'Resent-To'
|
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 oResentTours in the address field spec file
|
33
|
+
|
34
|
+
describe "instance methods" do
|
35
|
+
it "should return an address" do
|
36
|
+
t = Mail::ResentToField.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::ResentToField.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::ResentToField.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::ResentToField.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::ResentToField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
60
|
+
t.encoded.should == "Resent-To: 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,52 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Mail::ReturnPathField do
|
4
|
+
it "should allow you to specify a field" do
|
5
|
+
rp = Mail::ReturnPathField.new('Return-Path: mikel@test.lindsaar.net')
|
6
|
+
rp.address.should == 'mikel@test.lindsaar.net'
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should encode the addr_spec in <>" do
|
10
|
+
rp = Mail::ReturnPathField.new('Return-Path: mikel@test.lindsaar.net')
|
11
|
+
rp.encoded.should == "Return-Path: <mikel@test.lindsaar.net>\r\n"
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should set the return path" do
|
15
|
+
mail = Mail.new do
|
16
|
+
to "to@someemail.com"
|
17
|
+
from "from@someemail.com"
|
18
|
+
subject "Can't set the return-path"
|
19
|
+
return_path "bounce@someemail.com"
|
20
|
+
message_id "<1234@someemail.com>"
|
21
|
+
body "body"
|
22
|
+
end
|
23
|
+
mail.return_path.should == "bounce@someemail.com"
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should set the return path" do
|
27
|
+
mail = Mail.new do
|
28
|
+
to "to@someemail.com"
|
29
|
+
from "from@someemail.com"
|
30
|
+
subject "Can't set the return-path"
|
31
|
+
return_path "bounce@someemail.com"
|
32
|
+
message_id "<1234@someemail.com>"
|
33
|
+
body "body"
|
34
|
+
end
|
35
|
+
encoded_mail = Mail.new(mail.encoded)
|
36
|
+
encoded_mail.return_path.should == "bounce@someemail.com"
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should wrap the return path addr_spec in <>" do
|
40
|
+
mail = Mail.new do
|
41
|
+
to "to@someemail.com"
|
42
|
+
from "from@someemail.com"
|
43
|
+
subject "Can't set the return-path"
|
44
|
+
return_path "bounce@someemail.com"
|
45
|
+
message_id "<1234@someemail.com>"
|
46
|
+
body "body"
|
47
|
+
end
|
48
|
+
mail.encoded.should =~ /<bounce@someemail\.com>/
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Mail::SenderField do
|
5
|
+
# sender = "Sender:" mailbox CRLF
|
6
|
+
#
|
7
|
+
|
8
|
+
describe "initialization" do
|
9
|
+
|
10
|
+
it "should initialize" do
|
11
|
+
doing { Mail::SenderField.new("Sender", "Mikel") }.should_not raise_error
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should mix in the CommonAddress module" do
|
15
|
+
Mail::SenderField.included_modules.should include(Mail::CommonAddress)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should accept a string with the field name" do
|
19
|
+
t = Mail::SenderField.new('Sender: Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
20
|
+
t.name.should == 'Sender'
|
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::SenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
26
|
+
t.name.should == 'Sender'
|
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 oSenderurs in the address field spec file
|
33
|
+
|
34
|
+
describe "instance methods" do
|
35
|
+
it "should return an address" do
|
36
|
+
t = Mail::SenderField.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::SenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
|
42
|
+
t.address.to_s.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should return the formatted line on to_s" do
|
46
|
+
t = Mail::SenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
|
47
|
+
t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should return the encoded line" do
|
51
|
+
t = Mail::SenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
|
52
|
+
t.encoded.should == "Sender: Mikel Lindsaar <mikel@test.lindsaar.net>\r\n"
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Mail::StructuredField do
|
5
|
+
|
6
|
+
describe "initialization" do
|
7
|
+
|
8
|
+
it "should be instantiated" do
|
9
|
+
doing {Mail::StructuredField.new("From", "bob@me.com")}.should_not raise_error
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "manipulation" do
|
15
|
+
|
16
|
+
before(:each) do
|
17
|
+
@field = Mail::StructuredField.new("From", "bob@me.com")
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should allow us to set a text value at initialization" do
|
21
|
+
doing{Mail::StructuredField.new("From", "bob@me.com")}.should_not raise_error
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should provide access to the text of the field once set" do
|
25
|
+
@field.value.should == "bob@me.com"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should provide a means to change the value" do
|
29
|
+
@field.value = "bob@you.com"
|
30
|
+
@field.value.should == "bob@you.com"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "displaying encoded field and decoded value" do
|
35
|
+
|
36
|
+
before(:each) do
|
37
|
+
@field = Mail::FromField.new("bob@me.com")
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should provide a to_s function that returns the decoded string" do
|
41
|
+
@field.to_s.should == "bob@me.com"
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should return '' on to_s if there is no value" do
|
45
|
+
@field.value = nil
|
46
|
+
@field.encoded.should == ''
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should give an encoded value ready to insert into an email" do
|
50
|
+
@field.encoded.should == "From: bob@me.com\r\n"
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should return an empty string on encoded if it has no value" do
|
54
|
+
@field.value = nil
|
55
|
+
@field.encoded.should == ''
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should return the field name and value in proper format when called to_s" do
|
59
|
+
@field.encoded.should == "From: bob@me.com\r\n"
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
describe "structured field template methods" do
|
65
|
+
it "should raise an error if attempting to call :encoded or :decoded on the parent StructuredField class" do
|
66
|
+
field = Mail::StructuredField.new
|
67
|
+
doing { field.encoded }.should raise_error(NoMethodError)
|
68
|
+
doing { field.decoded }.should raise_error(NoMethodError)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Mail::ToField do
|
5
|
+
#
|
6
|
+
# The "To:" field contains the address(es) of the primary recipient(s)
|
7
|
+
# of the message.
|
8
|
+
|
9
|
+
describe "initialization" do
|
10
|
+
|
11
|
+
it "should initialize" do
|
12
|
+
doing { Mail::ToField.new("Mikel") }.should_not raise_error
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should mix in the CommonAddress module" do
|
16
|
+
Mail::ToField.included_modules.should include(Mail::CommonAddress)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should accept a string with the field name" do
|
20
|
+
t = Mail::ToField.new('To: Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
21
|
+
t.name.should == '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::ToField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
|
27
|
+
t.name.should == '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 oTours in the address field spec file
|
34
|
+
|
35
|
+
describe "instance methods" do
|
36
|
+
it "should return an address" do
|
37
|
+
t = Mail::ToField.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::ToField.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::ToField.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::ToField.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::ToField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
61
|
+
t.encoded.should == "To: sam@me.com, \r\n\tmy_group: mikel@me.com, \r\n\tbob@you.com;\r\n"
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should return the decoded line" do
|
65
|
+
t = Mail::ToField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
66
|
+
t.decoded.should == "sam@me.com, my_group: mikel@me.com, bob@you.com;"
|
67
|
+
end
|
68
|
+
|
69
|
+
it "should get multiple address out from a group list" do
|
70
|
+
t = Mail::ToField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
71
|
+
t.addresses.should == ["sam@me.com", "mikel@me.com", "bob@you.com"]
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should handle commas in the address" do
|
75
|
+
t = Mail::ToField.new('"Long, stupid email address" <mikel@test.lindsaar.net>')
|
76
|
+
t.addresses.should == ["mikel@test.lindsaar.net"]
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should handle commas in the address for multiple fields" do
|
80
|
+
t = Mail::ToField.new('"Long, stupid email address" <mikel@test.lindsaar.net>, "Another, really, really, long, stupid email address" <bob@test.lindsaar.net>')
|
81
|
+
t.addresses.should == ["mikel@test.lindsaar.net", "bob@test.lindsaar.net"]
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should not crash if it can't understand a name" do
|
87
|
+
t = Mail.new('To: <"Undisclosed-Recipient:"@msr19.hinet.net;>')
|
88
|
+
doing { t.encoded }.should_not raise_error
|
89
|
+
t.encoded.should =~ /To\:\s<"Undisclosed\-Recipient\:"@msr19\.hinet\.net;>\r\n/
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|