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,44 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "Round Tripping" do
|
5
|
+
|
6
|
+
it "should round trip a basic email" do
|
7
|
+
mail = Mail.new('Subject: FooBar')
|
8
|
+
mail.body "This is Text"
|
9
|
+
parsed_mail = Mail.new(mail.to_s)
|
10
|
+
parsed_mail.subject.to_s.should == "FooBar"
|
11
|
+
parsed_mail.body.to_s.should == "This is Text"
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should round trip a html multipart email" do
|
15
|
+
mail = Mail.new('Subject: FooBar')
|
16
|
+
mail.text_part = Mail::Part.new do
|
17
|
+
body "This is Text"
|
18
|
+
end
|
19
|
+
mail.html_part = Mail::Part.new do
|
20
|
+
content_type = "text/html; charset=US-ASCII"
|
21
|
+
body "<b>This is HTML</b>"
|
22
|
+
end
|
23
|
+
parsed_mail = Mail.new(mail.to_s)
|
24
|
+
parsed_mail.mime_type.should == 'multipart/alternative'
|
25
|
+
parsed_mail.boundary.should == mail.boundary
|
26
|
+
parsed_mail.parts.length.should == 2
|
27
|
+
parsed_mail.parts[0].body.to_s.should == "This is Text"
|
28
|
+
parsed_mail.parts[1].body.to_s.should == "<b>This is HTML</b>"
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should round trip an email" do
|
32
|
+
initial = Mail.new do
|
33
|
+
to "mikel@test.lindsaar.net"
|
34
|
+
subject "testing round tripping"
|
35
|
+
body "Really testing round tripping."
|
36
|
+
from "system@test.lindsaar.net"
|
37
|
+
cc "nobody@test.lindsaar.net"
|
38
|
+
bcc "bob@test.lindsaar.net"
|
39
|
+
date Time.local(2009, 11, 6)
|
40
|
+
end
|
41
|
+
Mail.new(initial.encoded).encoded.should == initial.encoded
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -0,0 +1,327 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "Utilities Module" do
|
5
|
+
|
6
|
+
include Mail::Utilities
|
7
|
+
|
8
|
+
describe "token safe" do
|
9
|
+
|
10
|
+
describe "checking" do
|
11
|
+
it "should return true if a string is token safe" do
|
12
|
+
token_safe?('.abc').should be_true
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should return false if a string is token safe" do
|
16
|
+
token_safe?('?=abc').should be_false
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should work with mb_chars" do
|
20
|
+
token_safe?('.abc'.mb_chars).should be_true
|
21
|
+
token_safe?('?=abc'.mb_chars).should be_false
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "quoting" do
|
26
|
+
it "should return true if a string is token safe" do
|
27
|
+
quote_token('.abc').should == '.abc'
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should return false if a string is token safe" do
|
31
|
+
quote_token('?=abc').should == '"?=abc"'
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should work with mb_chars" do
|
35
|
+
quote_token('.abc'.mb_chars).should == '.abc'
|
36
|
+
quote_token('?=abc'.mb_chars).should == '"?=abc"'
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "atom safe" do
|
43
|
+
|
44
|
+
describe "checking" do
|
45
|
+
it "should return true if a string is token safe" do
|
46
|
+
atom_safe?('?=abc').should be_true
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should return false if a string is token safe" do
|
50
|
+
atom_safe?('.abc').should be_false
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should work with mb_chars" do
|
54
|
+
atom_safe?('?=abc'.mb_chars).should be_true
|
55
|
+
atom_safe?('.abc'.mb_chars).should be_false
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe "quoting" do
|
60
|
+
it "should return true if a string is token safe" do
|
61
|
+
quote_atom('?=abc').should == '?=abc'
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should return false if a string is token safe" do
|
65
|
+
quote_atom('.abc').should == '".abc"'
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should work with mb_chars" do
|
69
|
+
quote_atom('?=abc'.mb_chars).should == '?=abc'
|
70
|
+
quote_atom('.abc'.mb_chars).should == '".abc"'
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should work with mb_chars" do
|
74
|
+
quote_atom('?=abc'.mb_chars).should == '?=abc'
|
75
|
+
quote_atom('.abc'.mb_chars).should == '".abc"'
|
76
|
+
end
|
77
|
+
|
78
|
+
it "should quote white space" do
|
79
|
+
quote_atom('ab abc'.mb_chars).should == '"ab abc"'
|
80
|
+
quote_atom("ab\ta\r\nbc".mb_chars).should == %{"ab\ta\r\nbc"}
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
|
86
|
+
describe "escaping parenthesies" do
|
87
|
+
it "should escape parens" do
|
88
|
+
test = 'This is not (escaped)'
|
89
|
+
result = 'This is not \(escaped\)'
|
90
|
+
escape_paren(test).should == result
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should not double escape parens" do
|
94
|
+
test = 'This is not \(escaped\)'
|
95
|
+
result = 'This is not \(escaped\)'
|
96
|
+
escape_paren(test).should == result
|
97
|
+
end
|
98
|
+
|
99
|
+
it "should escape all parens" do
|
100
|
+
test = 'This is not \()escaped(\)'
|
101
|
+
result = 'This is not \(\)escaped\(\)'
|
102
|
+
escape_paren(test).should == result
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
describe "unescaping parenthesis" do
|
108
|
+
|
109
|
+
it "should work" do
|
110
|
+
test = '(This is a string)'
|
111
|
+
result = 'This is a string'
|
112
|
+
unparen(test).should == result
|
113
|
+
end
|
114
|
+
|
115
|
+
it "should work without parens" do
|
116
|
+
test = 'This is a string'
|
117
|
+
result = 'This is a string'
|
118
|
+
unparen(test).should == result
|
119
|
+
end
|
120
|
+
|
121
|
+
it "should work using ActiveSupport mb_chars" do
|
122
|
+
test = '(This is a string)'.mb_chars
|
123
|
+
result = 'This is a string'
|
124
|
+
unparen(test).should == result
|
125
|
+
end
|
126
|
+
|
127
|
+
it "should work without parens using ActiveSupport mb_chars" do
|
128
|
+
test = 'This is a string'.mb_chars
|
129
|
+
result = 'This is a string'
|
130
|
+
unparen(test).should == result
|
131
|
+
end
|
132
|
+
|
133
|
+
end
|
134
|
+
|
135
|
+
describe "unescaping brackets" do
|
136
|
+
|
137
|
+
it "should work" do
|
138
|
+
test = '<This is a string>'
|
139
|
+
result = 'This is a string'
|
140
|
+
unbracket(test).should == result
|
141
|
+
end
|
142
|
+
|
143
|
+
it "should work without brackets" do
|
144
|
+
test = 'This is a string'
|
145
|
+
result = 'This is a string'
|
146
|
+
unbracket(test).should == result
|
147
|
+
end
|
148
|
+
|
149
|
+
it "should work using ActiveSupport mb_chars" do
|
150
|
+
test = '<This is a string>'.mb_chars
|
151
|
+
result = 'This is a string'
|
152
|
+
unbracket(test).should == result
|
153
|
+
end
|
154
|
+
|
155
|
+
it "should work without parens using ActiveSupport mb_chars" do
|
156
|
+
test = 'This is a string'.mb_chars
|
157
|
+
result = 'This is a string'
|
158
|
+
unbracket(test).should == result
|
159
|
+
end
|
160
|
+
|
161
|
+
end
|
162
|
+
|
163
|
+
describe "quoting phrases" do
|
164
|
+
it "should quote a phrase if it is unsafe" do
|
165
|
+
test = 'this.needs quoting'
|
166
|
+
result = '"this.needs quoting"'
|
167
|
+
dquote(test).should == result
|
168
|
+
end
|
169
|
+
|
170
|
+
it "should properly quote a string, even if quoted but not escaped properly" do
|
171
|
+
test = '"this needs "escaping"'
|
172
|
+
result = '"this needs \"escaping"'
|
173
|
+
dquote(test).should == result
|
174
|
+
end
|
175
|
+
|
176
|
+
it "should quote correctly a phrase with an escaped quote in it" do
|
177
|
+
test = 'this needs \"quoting'
|
178
|
+
result = '"this needs \"quoting"'
|
179
|
+
dquote(test).should == result
|
180
|
+
end
|
181
|
+
|
182
|
+
it "should quote correctly a phrase with an escaped backslash followed by an escaped quote in it" do
|
183
|
+
test = 'this needs \\\"quoting'
|
184
|
+
result = '"this needs \\\"quoting"'
|
185
|
+
dquote(test).should == result
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
|
190
|
+
describe "parenthesizing phrases" do
|
191
|
+
it "should parenthesize a phrase" do
|
192
|
+
test = 'this.needs parenthesizing'
|
193
|
+
result = '(this.needs parenthesizing)'
|
194
|
+
paren(test).should == result
|
195
|
+
end
|
196
|
+
|
197
|
+
it "should properly parenthesize a string, and escape properly" do
|
198
|
+
test = 'this needs (escaping'
|
199
|
+
result = '(this needs \(escaping)'
|
200
|
+
paren(test).should == result
|
201
|
+
end
|
202
|
+
|
203
|
+
it "should properly parenthesize a string, and escape properly (other way)" do
|
204
|
+
test = 'this needs )escaping'
|
205
|
+
result = '(this needs \)escaping)'
|
206
|
+
paren(test).should == result
|
207
|
+
end
|
208
|
+
|
209
|
+
it "should properly parenthesize a string, even if parenthesized but not escaped properly" do
|
210
|
+
test = '(this needs (escaping)'
|
211
|
+
result = '(this needs \(escaping)'
|
212
|
+
paren(test).should == result
|
213
|
+
end
|
214
|
+
|
215
|
+
it "should properly parenthesize a string, even if parenthesized but not escaped properly (other way)" do
|
216
|
+
test = '(this needs )escaping)'
|
217
|
+
result = '(this needs \)escaping)'
|
218
|
+
paren(test).should == result
|
219
|
+
end
|
220
|
+
|
221
|
+
it "should parenthesize correctly a phrase with an escaped parentheses in it" do
|
222
|
+
test = 'this needs \(parenthesizing'
|
223
|
+
result = '(this needs \(parenthesizing)'
|
224
|
+
paren(test).should == result
|
225
|
+
end
|
226
|
+
|
227
|
+
it "should parenthesize correctly a phrase with an escaped parentheses in it (other way)" do
|
228
|
+
test = 'this needs \)parenthesizing'
|
229
|
+
result = '(this needs \)parenthesizing)'
|
230
|
+
paren(test).should == result
|
231
|
+
end
|
232
|
+
|
233
|
+
it "should parenthesize correctly a phrase with an escaped backslash followed by an escaped parentheses in it" do
|
234
|
+
test = 'this needs \\\(parenthesizing'
|
235
|
+
result = '(this needs \\\(parenthesizing)'
|
236
|
+
paren(test).should == result
|
237
|
+
end
|
238
|
+
|
239
|
+
it "should parenthesize correctly a phrase with an escaped backslash followed by an escaped parentheses in it (other way)" do
|
240
|
+
test = 'this needs \\\)parenthesizing'
|
241
|
+
result = '(this needs \\\)parenthesizing)'
|
242
|
+
paren(test).should == result
|
243
|
+
end
|
244
|
+
|
245
|
+
it "should parenthesize correctly a phrase with a set of parentheses" do
|
246
|
+
test = 'this (needs) parenthesizing'
|
247
|
+
result = '(this \(needs\) parenthesizing)'
|
248
|
+
paren(test).should == result
|
249
|
+
end
|
250
|
+
|
251
|
+
end
|
252
|
+
|
253
|
+
|
254
|
+
describe "bracketizing phrases" do
|
255
|
+
it "should bracketize a phrase" do
|
256
|
+
test = 'this.needs bracketizing'
|
257
|
+
result = '<this.needs bracketizing>'
|
258
|
+
bracket(test).should == result
|
259
|
+
end
|
260
|
+
|
261
|
+
it "should properly bracketize a string, and escape properly" do
|
262
|
+
test = 'this needs <escaping'
|
263
|
+
result = '<this needs \<escaping>'
|
264
|
+
bracket(test).should == result
|
265
|
+
end
|
266
|
+
|
267
|
+
it "should properly bracketize a string, and escape properly (other way)" do
|
268
|
+
test = 'this needs >escaping'
|
269
|
+
result = '<this needs \>escaping>'
|
270
|
+
bracket(test).should == result
|
271
|
+
end
|
272
|
+
|
273
|
+
it "should properly bracketize a string, even if bracketized but not escaped properly" do
|
274
|
+
test = '<this needs <escaping>'
|
275
|
+
result = '<this needs \<escaping>'
|
276
|
+
bracket(test).should == result
|
277
|
+
end
|
278
|
+
|
279
|
+
it "should properly bracketize a string, even if bracketized but not escaped properly (other way)" do
|
280
|
+
test = '<this needs >escaping>'
|
281
|
+
result = '<this needs \>escaping>'
|
282
|
+
bracket(test).should == result
|
283
|
+
end
|
284
|
+
|
285
|
+
it "should bracketize correctly a phrase with an escaped brackets in it" do
|
286
|
+
test = 'this needs \<bracketizing'
|
287
|
+
result = '<this needs \<bracketizing>'
|
288
|
+
bracket(test).should == result
|
289
|
+
end
|
290
|
+
|
291
|
+
it "should bracketize correctly a phrase with an escaped brackets in it (other way)" do
|
292
|
+
test = 'this needs \>bracketizing'
|
293
|
+
result = '<this needs \>bracketizing>'
|
294
|
+
bracket(test).should == result
|
295
|
+
end
|
296
|
+
|
297
|
+
it "should bracketize correctly a phrase with an escaped backslash followed by an escaped brackets in it" do
|
298
|
+
test = 'this needs \\\<bracketizing'
|
299
|
+
result = '<this needs \\\<bracketizing>'
|
300
|
+
bracket(test).should == result
|
301
|
+
end
|
302
|
+
|
303
|
+
it "should bracketize correctly a phrase with an escaped backslash followed by an escaped brackets in it (other way)" do
|
304
|
+
test = 'this needs \\\>bracketizing'
|
305
|
+
result = '<this needs \\\>bracketizing>'
|
306
|
+
bracket(test).should == result
|
307
|
+
end
|
308
|
+
|
309
|
+
it "should bracketize correctly a phrase with a set of brackets" do
|
310
|
+
test = 'this <needs> bracketizing'
|
311
|
+
result = '<this \<needs\> bracketizing>'
|
312
|
+
bracket(test).should == result
|
313
|
+
end
|
314
|
+
|
315
|
+
end
|
316
|
+
|
317
|
+
describe "url escaping" do
|
318
|
+
it "should have a wrapper on URI.escape" do
|
319
|
+
uri_escape("@?@!").should == URI.escape("@?@!")
|
320
|
+
end
|
321
|
+
|
322
|
+
it "should have a wrapper on URI.unescape" do
|
323
|
+
uri_unescape("@?@!").should == URI.unescape("@?@!")
|
324
|
+
end
|
325
|
+
end
|
326
|
+
|
327
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe "Ruby 1.8 Extensions" do
|
5
|
+
|
6
|
+
describe "string ascii detection" do
|
7
|
+
it "should say it is US-ASCII only if it is" do
|
8
|
+
"abc".should be_ascii_only
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should not say it is US-ASCII only if it isn't" do
|
12
|
+
"かきくけこ".should_not be_ascii_only
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should not say it is US-ASCII only if it is a mix" do
|
16
|
+
"abcかきくけこ123".should_not be_ascii_only
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should handle edge cases" do
|
20
|
+
["\x00", "\x01", "\x40", "\x7f", "\x73"].each do |str|
|
21
|
+
str.should be_ascii_only
|
22
|
+
end
|
23
|
+
|
24
|
+
["\x81", "\x99", "\xFF"].each do |str|
|
25
|
+
str.should_not be_ascii_only
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module CustomMatchers
|
3
|
+
class BreakDownTo
|
4
|
+
def initialize(expected)
|
5
|
+
@expected = expected
|
6
|
+
end
|
7
|
+
|
8
|
+
def matches?(target)
|
9
|
+
@target = target
|
10
|
+
@failed = false
|
11
|
+
@expected.each_pair do |k,v|
|
12
|
+
unless @target.send(k) == @expected[k]
|
13
|
+
@failed = k
|
14
|
+
end
|
15
|
+
end
|
16
|
+
!@failed
|
17
|
+
end
|
18
|
+
|
19
|
+
def failure_message
|
20
|
+
"expected #{@failed} to be |#{@expected[@failed]}| " +
|
21
|
+
"but was |#{@target.send(@failed)}|"
|
22
|
+
end
|
23
|
+
|
24
|
+
def megative_failure_message
|
25
|
+
"expected #{@failed} not to be |#{@expected[@failed]}| " +
|
26
|
+
"and was |#{@target.send(@failed)}|"
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
# Actual matcher that is exposed.
|
32
|
+
def break_down_to(expected)
|
33
|
+
BreakDownTo.new(expected)
|
34
|
+
end
|
35
|
+
end
|