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,99 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Object do
|
5
|
+
|
6
|
+
describe "blank method" do
|
7
|
+
it "should say nil is blank" do
|
8
|
+
nil.should be_blank
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should say false is blank" do
|
12
|
+
false.should be_blank
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should say true is not blank" do
|
16
|
+
true.should_not be_blank
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should say an empty array is blank" do
|
20
|
+
[].should be_blank
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should say an empty hash is blank" do
|
24
|
+
{}.should be_blank
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should say an empty string is blank" do
|
28
|
+
''.should be_blank
|
29
|
+
" ".should be_blank
|
30
|
+
a = ''; 1000.times { a << ' ' }
|
31
|
+
a.should be_blank
|
32
|
+
"\t \n\n".should be_blank
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "not blank method" do
|
37
|
+
it "should say a number is not blank" do
|
38
|
+
1.should_not be_blank
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should say a valueless hash is not blank" do
|
42
|
+
{:one => nil, :two => nil}.should_not be_blank
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should say a hash containing an empty hash is not blank" do
|
46
|
+
{:key => {}}.should_not be_blank
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "to_lf method on String" do
|
51
|
+
it "should leave lf as lf" do
|
52
|
+
"\n".to_lf.should == "\n"
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should clean just cr to lf" do
|
56
|
+
"\r".to_lf.should == "\n"
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should leave crlf as lf" do
|
60
|
+
"\r\n".to_lf.should == "\n"
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should handle japanese characters" do
|
64
|
+
string = "\343\201\202\343\201\210\343\201\206\343\201\210\343\201\212\r\n\r\n\343\201\213\343\201\215\343\201\217\343\201\221\343\201\223\r\n\r\n\343\201\225\343\201\227\343\201\244\343\201\233\343\201\235\r\n\r\n"
|
65
|
+
string.to_lf.should == "\343\201\202\343\201\210\343\201\206\343\201\210\343\201\212\n\n\343\201\213\343\201\215\343\201\217\343\201\221\343\201\223\n\n\343\201\225\343\201\227\343\201\244\343\201\233\343\201\235\n\n"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe "to_crlf method on String" do
|
70
|
+
it "should clean just lf to crlf" do
|
71
|
+
"\n".to_crlf.should == "\r\n"
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should clean just cr to crlf" do
|
75
|
+
"\r".to_crlf.should == "\r\n"
|
76
|
+
end
|
77
|
+
|
78
|
+
it "should leave crlf as crlf" do
|
79
|
+
"\r\n".to_crlf.should == "\r\n"
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should handle japanese characters" do
|
83
|
+
string = "\343\201\202\343\201\210\343\201\206\343\201\210\343\201\212\r\n\r\n\343\201\213\343\201\215\343\201\217\343\201\221\343\201\223\r\n\r\n\343\201\225\343\201\227\343\201\244\343\201\233\343\201\235\r\n\r\n"
|
84
|
+
string.to_crlf.should == "\343\201\202\343\201\210\343\201\206\343\201\210\343\201\212\r\n\r\n\343\201\213\343\201\215\343\201\217\343\201\221\343\201\223\r\n\r\n\343\201\225\343\201\227\343\201\244\343\201\233\343\201\235\r\n\r\n"
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
|
89
|
+
describe "methods on NilClass" do
|
90
|
+
it "should return empty string on to_crlf" do
|
91
|
+
nil.to_crlf.should == ''
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should return empty string on to_lf" do
|
95
|
+
nil.to_lf.should == ''
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Mail::AddressList do
|
5
|
+
|
6
|
+
describe "parsing" do
|
7
|
+
it "should parse an address list" do
|
8
|
+
parse_text = 'test@lindsaar.net'
|
9
|
+
doing { Mail::AddressList.new(parse_text) }.should_not raise_error
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should raise an error if the input is useless" do
|
13
|
+
parse_text = '@@@@@@'
|
14
|
+
doing { Mail::AddressList.new(parse_text) }.should raise_error
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should not raise an error if the input is just blank" do
|
18
|
+
parse_text = nil
|
19
|
+
doing { Mail::AddressList.new(parse_text) }.should_not raise_error
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should raise an error if the input is useless" do
|
23
|
+
parse_text = "This ( is an invalid address!"
|
24
|
+
doing { Mail::AddressList.new(parse_text) }.should raise_error
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should give the address passed in" do
|
28
|
+
parse_text = 'test@lindsaar.net'
|
29
|
+
result = 'test@lindsaar.net'
|
30
|
+
a = Mail::AddressList.new(parse_text)
|
31
|
+
a.addresses.first.to_s.should == result
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should give the addresses passed in" do
|
35
|
+
parse_text = 'test@lindsaar.net, test2@lindsaar.net'
|
36
|
+
result = ['test@lindsaar.net', 'test2@lindsaar.net']
|
37
|
+
a = Mail::AddressList.new(parse_text)
|
38
|
+
a.addresses.map {|addr| addr.to_s }.should == result
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should preserve the display name" do
|
42
|
+
parse_text = '"Mikel Lindsaar" <mikel@test.lindsaar.net>'
|
43
|
+
result = 'Mikel Lindsaar <mikel@test.lindsaar.net>'
|
44
|
+
a = Mail::AddressList.new(parse_text)
|
45
|
+
a.addresses.first.format.should == result
|
46
|
+
a.addresses.first.display_name.should == 'Mikel Lindsaar'
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "functionality" do
|
52
|
+
it "should give back a list of address nodes" do
|
53
|
+
list = Mail::AddressList.new('mikel@me.com, bob@you.com')
|
54
|
+
list.address_nodes.length.should == 2
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should have each nood a class of SyntaxNode" do
|
58
|
+
list = Mail::AddressList.new('mikel@me.com, bob@you.com')
|
59
|
+
list.address_nodes.each { |n| n.class.should == Treetop::Runtime::SyntaxNode }
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should give a block of address nodes with groups" do
|
63
|
+
list = Mail::AddressList.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
64
|
+
list.address_nodes.length.should == 2
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should give all the recipients when asked" do
|
68
|
+
list = Mail::AddressList.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
69
|
+
list.individual_recipients.length.should == 1
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should give all the groups when asked" do
|
73
|
+
list = Mail::AddressList.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
74
|
+
list.group_recipients.length.should == 1
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should ask the group for all it's addresses" do
|
78
|
+
list = Mail::AddressList.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
79
|
+
list.group_recipients.first.group_list.addresses.length.should == 2
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should give all the addresses when asked" do
|
83
|
+
list = Mail::AddressList.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
84
|
+
list.addresses.length.should == 3
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should handle a really nasty obsolete address list" do
|
88
|
+
pending
|
89
|
+
psycho_obsolete = "Mary Smith <@machine.tld:mary@example.net>, , jdoe@test . example"
|
90
|
+
list = Mail::AddressList.new(psycho_obsolete)
|
91
|
+
list.addresses.length.should == 2
|
92
|
+
end
|
93
|
+
|
94
|
+
|
95
|
+
it "should create an address instance for each address returned" do
|
96
|
+
list = Mail::AddressList.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
97
|
+
list.addresses.each do |address|
|
98
|
+
address.class.should == Mail::Address
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should provide a list of group names" do
|
103
|
+
list = Mail::AddressList.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
|
104
|
+
list.group_names.should == ["my_group"]
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
108
|
+
|
109
|
+
end
|
@@ -0,0 +1,609 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Mail::Address do
|
5
|
+
|
6
|
+
describe "functionality" do
|
7
|
+
|
8
|
+
it "should allow us to instantiate an empty address object and call to_s" do
|
9
|
+
# doing {
|
10
|
+
Mail::Address.new.inspect
|
11
|
+
# }.should_not raise_error
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should allow us to instantiate an empty address object and call inspect" do
|
15
|
+
# doing {
|
16
|
+
Mail::Address.new.inspect
|
17
|
+
# }.should_not raise_error
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should allow us to instantiate an empty address object and call format" do
|
21
|
+
# doing {
|
22
|
+
Mail::Address.new.format
|
23
|
+
# }.should_not raise_error
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should give it's address back on :to_s if there is no display name" do
|
27
|
+
parse_text = 'test@lindsaar.net'
|
28
|
+
result = 'test@lindsaar.net'
|
29
|
+
Mail::Address.new(parse_text).to_s.should == 'test@lindsaar.net'
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should give it's format back on :to_s if there is a display name" do
|
33
|
+
parse_text = 'Mikel Lindsaar <test@lindsaar.net>'
|
34
|
+
result = 'Mikel Lindsaar <test@lindsaar.net>'
|
35
|
+
Mail::Address.new(parse_text).to_s.should == 'Mikel Lindsaar <test@lindsaar.net>'
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should give back the display name" do
|
39
|
+
parse_text = 'Mikel Lindsaar <test@lindsaar.net>'
|
40
|
+
result = 'Mikel Lindsaar'
|
41
|
+
a = Mail::Address.new(parse_text)
|
42
|
+
a.display_name.should == result
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should preserve the display name passed in" do
|
46
|
+
parse_text = '"Mikel Lindsaar" <mikel@test.lindsaar.net>'
|
47
|
+
result = 'Mikel Lindsaar'
|
48
|
+
a = Mail::Address.new(parse_text)
|
49
|
+
a.display_name.should == result
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should preserve the display name passed in with token unsafe chars" do
|
53
|
+
parse_text = '"Mikel@@@Lindsaar" <mikel@test.lindsaar.net>'
|
54
|
+
result = 'Mikel@@@Lindsaar'
|
55
|
+
a = Mail::Address.new(parse_text)
|
56
|
+
a.display_name.should == result
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should give back the local part" do
|
60
|
+
parse_text = 'Mikel Lindsaar <test@lindsaar.net>'
|
61
|
+
result = 'test'
|
62
|
+
a = Mail::Address.new(parse_text)
|
63
|
+
a.local.should == result
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should give back the domain" do
|
67
|
+
parse_text = 'Mikel Lindsaar <test@lindsaar.net>'
|
68
|
+
result = 'lindsaar.net'
|
69
|
+
a = Mail::Address.new(parse_text)
|
70
|
+
a.domain.should == result
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should give back the formated address" do
|
74
|
+
parse_text = 'Mikel Lindsaar <test@lindsaar.net>'
|
75
|
+
result = 'Mikel Lindsaar <test@lindsaar.net>'
|
76
|
+
a = Mail::Address.new(parse_text)
|
77
|
+
a.format.should == result
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should handle an address without a domain" do
|
81
|
+
parse_text = 'test'
|
82
|
+
result = 'test'
|
83
|
+
a = Mail::Address.new(parse_text)
|
84
|
+
a.address.should == result
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should handle comments" do
|
88
|
+
parse_text = "Mikel Lindsaar (author) <test@lindsaar.net>"
|
89
|
+
result = ['author']
|
90
|
+
a = Mail::Address.new(parse_text)
|
91
|
+
a.comments.should == result
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should handle multiple comments" do
|
95
|
+
parse_text = "Mikel (first name) Lindsaar (author) <test@lindsaar.net>"
|
96
|
+
result = ['first name', 'author']
|
97
|
+
a = Mail::Address.new(parse_text)
|
98
|
+
a.comments.should == result
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should give back the raw value" do
|
102
|
+
parse_text = "Mikel (first name) Lindsaar (author) <test@lindsaar.net>"
|
103
|
+
result = "Mikel (first name) Lindsaar (author) <test@lindsaar.net>"
|
104
|
+
a = Mail::Address.new(parse_text)
|
105
|
+
a.raw.should == result
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
109
|
+
|
110
|
+
describe "assigning values directly" do
|
111
|
+
it "should allow you to assign an address" do
|
112
|
+
a = Mail::Address.new
|
113
|
+
a.address = 'mikel@test.lindsaar.net'
|
114
|
+
a.address.should == 'mikel@test.lindsaar.net'
|
115
|
+
a.format.should == 'mikel@test.lindsaar.net'
|
116
|
+
end
|
117
|
+
|
118
|
+
it "should allow you to assign a display name" do
|
119
|
+
a = Mail::Address.new
|
120
|
+
a.display_name = 'Mikel Lindsaar'
|
121
|
+
a.display_name.should == 'Mikel Lindsaar'
|
122
|
+
end
|
123
|
+
|
124
|
+
it "should return an empty format a display name and no address defined" do
|
125
|
+
a = Mail::Address.new
|
126
|
+
a.display_name = 'Mikel Lindsaar'
|
127
|
+
a.format.should == ''
|
128
|
+
end
|
129
|
+
|
130
|
+
it "should allow you to assign an address and a display name" do
|
131
|
+
a = Mail::Address.new
|
132
|
+
a.address = 'mikel@test.lindsaar.net'
|
133
|
+
a.display_name = 'Mikel Lindsaar'
|
134
|
+
a.format.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
describe "parsing" do
|
139
|
+
|
140
|
+
describe "basic email addresses" do
|
141
|
+
it "should handle all OK local parts" do
|
142
|
+
[ [ 'aamine', 'aamine' ],
|
143
|
+
[ '"Minero Aoki"', '"Minero Aoki"' ],
|
144
|
+
[ '"!@#$%^&*()"', '"!@#$%^&*()"' ],
|
145
|
+
[ 'a.b.c', 'a.b.c' ]
|
146
|
+
|
147
|
+
].each do |(words, ok)|
|
148
|
+
a = Mail::Address.new(words)
|
149
|
+
a.local.should == ok
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
it "should handle all OK domains" do
|
154
|
+
[ [ 'loveruby.net', 'loveruby.net' ],
|
155
|
+
[ '"love ruby".net', '"love ruby".net' ],
|
156
|
+
[ 'a."love ruby".net', 'a."love ruby".net' ],
|
157
|
+
[ '"!@#$%^&*()"', '"!@#$%^&*()"' ],
|
158
|
+
[ '[192.168.1.1]', '[192.168.1.1]' ]
|
159
|
+
|
160
|
+
].each do |(words, ok)|
|
161
|
+
a = Mail::Address.new(%Q|me@#{words}|)
|
162
|
+
a.domain.should == ok
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
describe "email addresses from the wild" do
|
168
|
+
it "should handle |aamine@loveruby.net|" do
|
169
|
+
address = Mail::Address.new('aamine@loveruby.net')
|
170
|
+
address.should break_down_to({
|
171
|
+
:display_name => nil,
|
172
|
+
:address => 'aamine@loveruby.net',
|
173
|
+
:local => 'aamine',
|
174
|
+
:domain => 'loveruby.net',
|
175
|
+
:format => 'aamine@loveruby.net',
|
176
|
+
:comments => nil,
|
177
|
+
:raw => 'aamine@loveruby.net'})
|
178
|
+
end
|
179
|
+
|
180
|
+
it "should handle |Minero Aoki <aamine@loveruby.net>|" do
|
181
|
+
address = Mail::Address.new('Minero Aoki <aamine@loveruby.net>')
|
182
|
+
address.should break_down_to({
|
183
|
+
:display_name => 'Minero Aoki',
|
184
|
+
:address => 'aamine@loveruby.net',
|
185
|
+
:local => 'aamine',
|
186
|
+
:domain => 'loveruby.net',
|
187
|
+
:format => 'Minero Aoki <aamine@loveruby.net>',
|
188
|
+
:comments => nil,
|
189
|
+
:raw => 'Minero Aoki <aamine@loveruby.net>'})
|
190
|
+
end
|
191
|
+
|
192
|
+
it "should handle |Minero Aoki<aamine@loveruby.net>|" do
|
193
|
+
address = Mail::Address.new('Minero Aoki<aamine@loveruby.net>')
|
194
|
+
address.should break_down_to({
|
195
|
+
:display_name => 'Minero Aoki',
|
196
|
+
:address => 'aamine@loveruby.net',
|
197
|
+
:local => 'aamine',
|
198
|
+
:domain => 'loveruby.net',
|
199
|
+
:format => 'Minero Aoki <aamine@loveruby.net>',
|
200
|
+
:comments => nil,
|
201
|
+
:raw => 'Minero Aoki<aamine@loveruby.net>'})
|
202
|
+
end
|
203
|
+
|
204
|
+
it 'should handle |"Minero Aoki" <aamine@loveruby.net>|' do
|
205
|
+
address = Mail::Address.new('"Minero Aoki" <aamine@loveruby.net>')
|
206
|
+
address.should break_down_to({
|
207
|
+
:display_name => 'Minero Aoki',
|
208
|
+
:address => 'aamine@loveruby.net',
|
209
|
+
:local => 'aamine',
|
210
|
+
:domain => 'loveruby.net',
|
211
|
+
:format => 'Minero Aoki <aamine@loveruby.net>',
|
212
|
+
:comments => nil,
|
213
|
+
:raw => '"Minero Aoki" <aamine@loveruby.net>'})
|
214
|
+
end
|
215
|
+
|
216
|
+
it "should handle |Minero Aoki<aamine@0246.loveruby.net>|" do
|
217
|
+
address = Mail::Address.new('Minero Aoki<aamine@0246.loveruby.net>')
|
218
|
+
address.should break_down_to({
|
219
|
+
:display_name => 'Minero Aoki',
|
220
|
+
:address => 'aamine@0246.loveruby.net',
|
221
|
+
:local => 'aamine',
|
222
|
+
:domain => '0246.loveruby.net',
|
223
|
+
:format => 'Minero Aoki <aamine@0246.loveruby.net>',
|
224
|
+
:comments => nil,
|
225
|
+
:raw => 'Minero Aoki<aamine@0246.loveruby.net>'})
|
226
|
+
end
|
227
|
+
|
228
|
+
it "should handle lots of dots" do
|
229
|
+
1.upto(10) do |times|
|
230
|
+
dots = "." * times
|
231
|
+
address = Mail::Address.new("hoge#{dots}test@docomo.ne.jp")
|
232
|
+
address.should break_down_to({
|
233
|
+
:display_name => nil,
|
234
|
+
:address => "hoge#{dots}test@docomo.ne.jp",
|
235
|
+
:local => "hoge#{dots}test",
|
236
|
+
:domain => 'docomo.ne.jp',
|
237
|
+
:format => "hoge#{dots}test@docomo.ne.jp",
|
238
|
+
:comments => nil,
|
239
|
+
:raw => "hoge#{dots}test@docomo.ne.jp"})
|
240
|
+
end
|
241
|
+
end
|
242
|
+
|
243
|
+
it 'should handle |"Joe & J. Harvey" <ddd @Org>|' do
|
244
|
+
address = Mail::Address.new('"Joe & J. Harvey" <ddd @Org>')
|
245
|
+
address.should break_down_to({
|
246
|
+
:name => 'Joe & J. Harvey',
|
247
|
+
:display_name => 'Joe & J. Harvey',
|
248
|
+
:address => 'ddd@Org',
|
249
|
+
:domain => 'Org',
|
250
|
+
:local => 'ddd',
|
251
|
+
:format => '"Joe & J. Harvey" <ddd@Org>',
|
252
|
+
:comments => nil,
|
253
|
+
:raw => '"Joe & J. Harvey" <ddd @Org>'})
|
254
|
+
end
|
255
|
+
|
256
|
+
it 'should handle |"spickett@tiac.net" <Sean.Pickett@zork.tiac.net>|' do
|
257
|
+
address = Mail::Address.new('"spickett@tiac.net" <Sean.Pickett@zork.tiac.net>')
|
258
|
+
address.should break_down_to({
|
259
|
+
:name => 'spickett@tiac.net',
|
260
|
+
:display_name => 'spickett@tiac.net',
|
261
|
+
:address => 'Sean.Pickett@zork.tiac.net',
|
262
|
+
:domain => 'zork.tiac.net',
|
263
|
+
:local => 'Sean.Pickett',
|
264
|
+
:format => '"spickett@tiac.net" <Sean.Pickett@zork.tiac.net>',
|
265
|
+
:comments => nil,
|
266
|
+
:raw => '"spickett@tiac.net" <Sean.Pickett@zork.tiac.net>'})
|
267
|
+
end
|
268
|
+
|
269
|
+
it "should handle |rls@intgp8.ih.att.com (-Schieve,R.L.)|" do
|
270
|
+
address = Mail::Address.new('rls@intgp8.ih.att.com (-Schieve,R.L.)')
|
271
|
+
address.should break_down_to({
|
272
|
+
:name => '-Schieve,R.L.',
|
273
|
+
:display_name => nil,
|
274
|
+
:address => 'rls@intgp8.ih.att.com',
|
275
|
+
:comments => ['-Schieve,R.L.'],
|
276
|
+
:domain => 'intgp8.ih.att.com',
|
277
|
+
:local => 'rls',
|
278
|
+
:format => 'rls@intgp8.ih.att.com (-Schieve,R.L.)',
|
279
|
+
:raw => 'rls@intgp8.ih.att.com (-Schieve,R.L.)'})
|
280
|
+
end
|
281
|
+
|
282
|
+
it "should handle |jrh%cup.portal.com@portal.unix.portal.com|" do
|
283
|
+
address = Mail::Address.new('jrh%cup.portal.com@portal.unix.portal.com')
|
284
|
+
address.should break_down_to({
|
285
|
+
:name => nil,
|
286
|
+
:display_name => nil,
|
287
|
+
:address => 'jrh%cup.portal.com@portal.unix.portal.com',
|
288
|
+
:comments => nil,
|
289
|
+
:domain => 'portal.unix.portal.com',
|
290
|
+
:local => 'jrh%cup.portal.com',
|
291
|
+
:format => 'jrh%cup.portal.com@portal.unix.portal.com',
|
292
|
+
:raw => 'jrh%cup.portal.com@portal.unix.portal.com'})
|
293
|
+
end
|
294
|
+
|
295
|
+
it "should handle |astrachan@austlcm.sps.mot.com ('paul astrachan/xvt3')|" do
|
296
|
+
address = Mail::Address.new("astrachan@austlcm.sps.mot.com ('paul astrachan/xvt3')")
|
297
|
+
address.should break_down_to({
|
298
|
+
:name => "'paul astrachan/xvt3'",
|
299
|
+
:display_name => nil,
|
300
|
+
:address => 'astrachan@austlcm.sps.mot.com',
|
301
|
+
:comments => ["'paul astrachan/xvt3'"],
|
302
|
+
:domain => 'austlcm.sps.mot.com',
|
303
|
+
:local => 'astrachan',
|
304
|
+
:format => "astrachan@austlcm.sps.mot.com ('paul astrachan/xvt3')",
|
305
|
+
:raw => "astrachan@austlcm.sps.mot.com ('paul astrachan/xvt3')"})
|
306
|
+
end
|
307
|
+
|
308
|
+
it "should handle 'TWINE57%SDELVB.decnet@SNYBUF.CS.SNYBUF.EDU (JAMES R. TWINE - THE NERD)'" do
|
309
|
+
address = Mail::Address.new('TWINE57%SDELVB.decnet@SNYBUF.CS.SNYBUF.EDU (JAMES R. TWINE - THE NERD)')
|
310
|
+
address.should break_down_to({
|
311
|
+
:name => 'JAMES R. TWINE - THE NERD',
|
312
|
+
:display_name => nil,
|
313
|
+
:address => 'TWINE57%SDELVB.decnet@SNYBUF.CS.SNYBUF.EDU',
|
314
|
+
:comments => ['JAMES R. TWINE - THE NERD'],
|
315
|
+
:domain => 'SNYBUF.CS.SNYBUF.EDU',
|
316
|
+
:local => 'TWINE57%SDELVB.decnet',
|
317
|
+
:format => 'TWINE57%SDELVB.decnet@SNYBUF.CS.SNYBUF.EDU (JAMES R. TWINE - THE NERD)',
|
318
|
+
:raw => 'TWINE57%SDELVB.decnet@SNYBUF.CS.SNYBUF.EDU (JAMES R. TWINE - THE NERD)'})
|
319
|
+
end
|
320
|
+
|
321
|
+
it "should be able to handle 'David Apfelbaum <da0g+@andrew.cmu.edu>'" do
|
322
|
+
address = Mail::Address.new('David Apfelbaum <da0g+@andrew.cmu.edu>')
|
323
|
+
address.should break_down_to({
|
324
|
+
:name => 'David Apfelbaum',
|
325
|
+
:display_name => 'David Apfelbaum',
|
326
|
+
:address => 'da0g+@andrew.cmu.edu',
|
327
|
+
:comments => nil,
|
328
|
+
:domain => 'andrew.cmu.edu',
|
329
|
+
:local => 'da0g+',
|
330
|
+
:format => 'David Apfelbaum <da0g+@andrew.cmu.edu>',
|
331
|
+
:raw => 'David Apfelbaum <da0g+@andrew.cmu.edu>'})
|
332
|
+
end
|
333
|
+
|
334
|
+
it 'should handle |"JAMES R. TWINE - THE NERD" <TWINE57%SDELVB%SNYDELVA.bitnet@CUNYVM.CUNY.EDU>|' do
|
335
|
+
address = Mail::Address.new('"JAMES R. TWINE - THE NERD" <TWINE57%SDELVB%SNYDELVA.bitnet@CUNYVM.CUNY.EDU>')
|
336
|
+
address.should break_down_to({
|
337
|
+
:name => 'JAMES R. TWINE - THE NERD',
|
338
|
+
:display_name => 'JAMES R. TWINE - THE NERD',
|
339
|
+
:address => 'TWINE57%SDELVB%SNYDELVA.bitnet@CUNYVM.CUNY.EDU',
|
340
|
+
:comments => nil,
|
341
|
+
:domain => 'CUNYVM.CUNY.EDU',
|
342
|
+
:local => 'TWINE57%SDELVB%SNYDELVA.bitnet',
|
343
|
+
:format => '"JAMES R. TWINE - THE NERD" <TWINE57%SDELVB%SNYDELVA.bitnet@CUNYVM.CUNY.EDU>',
|
344
|
+
:raw => '"JAMES R. TWINE - THE NERD" <TWINE57%SDELVB%SNYDELVA.bitnet@CUNYVM.CUNY.EDU>'})
|
345
|
+
end
|
346
|
+
|
347
|
+
it "should handle '/G=Owen/S=Smith/O=SJ-Research/ADMD=INTERSPAN/C=GB/@mhs-relay.ac.uk'" do
|
348
|
+
address = Mail::Address.new('/G=Owen/S=Smith/O=SJ-Research/ADMD=INTERSPAN/C=GB/@mhs-relay.ac.uk')
|
349
|
+
address.should break_down_to({
|
350
|
+
:name => nil,
|
351
|
+
:display_name => nil,
|
352
|
+
:address => '/G=Owen/S=Smith/O=SJ-Research/ADMD=INTERSPAN/C=GB/@mhs-relay.ac.uk',
|
353
|
+
:comments => nil,
|
354
|
+
:domain => 'mhs-relay.ac.uk',
|
355
|
+
:local => '/G=Owen/S=Smith/O=SJ-Research/ADMD=INTERSPAN/C=GB/',
|
356
|
+
:format => '/G=Owen/S=Smith/O=SJ-Research/ADMD=INTERSPAN/C=GB/@mhs-relay.ac.uk',
|
357
|
+
:raw => '/G=Owen/S=Smith/O=SJ-Research/ADMD=INTERSPAN/C=GB/@mhs-relay.ac.uk'})
|
358
|
+
end
|
359
|
+
|
360
|
+
it 'should handle |"Stephen Burke, Liverpool" <BURKE@vxdsya.desy.de>|' do
|
361
|
+
address = Mail::Address.new('"Stephen Burke, Liverpool" <BURKE@vxdsya.desy.de>')
|
362
|
+
address.should break_down_to({
|
363
|
+
:name => 'Stephen Burke, Liverpool',
|
364
|
+
:display_name => 'Stephen Burke, Liverpool',
|
365
|
+
:address => 'BURKE@vxdsya.desy.de',
|
366
|
+
:comments => nil,
|
367
|
+
:domain => 'vxdsya.desy.de',
|
368
|
+
:local => 'BURKE',
|
369
|
+
:format => '"Stephen Burke, Liverpool" <BURKE@vxdsya.desy.de>',
|
370
|
+
:raw => '"Stephen Burke, Liverpool" <BURKE@vxdsya.desy.de>'})
|
371
|
+
end
|
372
|
+
|
373
|
+
it "should handle 'The Newcastle Info-Server <info-admin@newcastle.ac.uk>'" do
|
374
|
+
address = Mail::Address.new('The Newcastle Info-Server <info-admin@newcastle.ac.uk>')
|
375
|
+
address.should break_down_to({
|
376
|
+
:name => 'The Newcastle Info-Server',
|
377
|
+
:display_name => 'The Newcastle Info-Server',
|
378
|
+
:address => 'info-admin@newcastle.ac.uk',
|
379
|
+
:comments => nil,
|
380
|
+
:domain => 'newcastle.ac.uk',
|
381
|
+
:local => 'info-admin',
|
382
|
+
:format => 'The Newcastle Info-Server <info-admin@newcastle.ac.uk>',
|
383
|
+
:raw => 'The Newcastle Info-Server <info-admin@newcastle.ac.uk>'})
|
384
|
+
end
|
385
|
+
|
386
|
+
it "should handle 'Suba.Peddada@eng.sun.com (Suba Peddada [CONTRACTOR])'" do
|
387
|
+
address = Mail::Address.new('Suba.Peddada@eng.sun.com (Suba Peddada [CONTRACTOR])')
|
388
|
+
address.should break_down_to({
|
389
|
+
:name => 'Suba Peddada [CONTRACTOR]',
|
390
|
+
:display_name => nil,
|
391
|
+
:address => 'Suba.Peddada@eng.sun.com',
|
392
|
+
:comments => ['Suba Peddada [CONTRACTOR]'],
|
393
|
+
:domain => 'eng.sun.com',
|
394
|
+
:local => 'Suba.Peddada',
|
395
|
+
:format => 'Suba.Peddada@eng.sun.com (Suba Peddada [CONTRACTOR])',
|
396
|
+
:raw => 'Suba.Peddada@eng.sun.com (Suba Peddada [CONTRACTOR])'})
|
397
|
+
end
|
398
|
+
|
399
|
+
it "should handle 'Paul Manser (0032 memo) <a906187@tiuk.ti.com>'" do
|
400
|
+
address = Mail::Address.new('Paul Manser (0032 memo) <a906187@tiuk.ti.com>')
|
401
|
+
address.should break_down_to({
|
402
|
+
:name => 'Paul Manser',
|
403
|
+
:display_name => 'Paul Manser',
|
404
|
+
:address => 'a906187@tiuk.ti.com',
|
405
|
+
:comments => ['0032 memo'],
|
406
|
+
:domain => 'tiuk.ti.com',
|
407
|
+
:local => 'a906187',
|
408
|
+
:format => 'Paul Manser <a906187@tiuk.ti.com> (0032 memo)',
|
409
|
+
:raw => 'Paul Manser (0032 memo) <a906187@tiuk.ti.com>'})
|
410
|
+
end
|
411
|
+
|
412
|
+
it 'should handle |"gregg (g.) woodcock" <woodcock@bnr.ca>|' do
|
413
|
+
address = Mail::Address.new('"gregg (g.) woodcock" <woodcock@bnr.ca>')
|
414
|
+
address.should break_down_to({
|
415
|
+
:name => 'gregg (g.) woodcock',
|
416
|
+
:display_name => 'gregg (g.) woodcock',
|
417
|
+
:address => 'woodcock@bnr.ca',
|
418
|
+
:comments => nil,
|
419
|
+
:domain => 'bnr.ca',
|
420
|
+
:local => 'woodcock',
|
421
|
+
:format => '"gregg (g.) woodcock" <woodcock@bnr.ca>',
|
422
|
+
:raw => '"gregg (g.) woodcock" <woodcock@bnr.ca>'})
|
423
|
+
end
|
424
|
+
|
425
|
+
it 'should handle |Graham.Barr@tiuk.ti.com|' do
|
426
|
+
address = Mail::Address.new('Graham.Barr@tiuk.ti.com')
|
427
|
+
address.should break_down_to({
|
428
|
+
:name => nil,
|
429
|
+
:display_name => nil,
|
430
|
+
:address => 'Graham.Barr@tiuk.ti.com',
|
431
|
+
:comments => nil,
|
432
|
+
:domain => 'tiuk.ti.com',
|
433
|
+
:local => 'Graham.Barr',
|
434
|
+
:format => 'Graham.Barr@tiuk.ti.com',
|
435
|
+
:raw => 'Graham.Barr@tiuk.ti.com'})
|
436
|
+
end
|
437
|
+
|
438
|
+
it "should handle |a909937 (Graham Barr (0004 bodg))|" do
|
439
|
+
address = Mail::Address.new('a909937 (Graham Barr (0004 bodg))')
|
440
|
+
address.should break_down_to({
|
441
|
+
:name => 'Graham Barr (0004 bodg)',
|
442
|
+
:display_name => nil,
|
443
|
+
:address => 'a909937',
|
444
|
+
:comments => ['Graham Barr (0004 bodg)'],
|
445
|
+
:domain => nil,
|
446
|
+
:local => 'a909937',
|
447
|
+
:format => 'a909937 (Graham Barr \(0004 bodg\))',
|
448
|
+
:raw => 'a909937 (Graham Barr (0004 bodg))'})
|
449
|
+
end
|
450
|
+
|
451
|
+
it "should handle |david d `zoo' zuhn <zoo@aggregate.com>|" do
|
452
|
+
address = Mail::Address.new("david d `zoo' zuhn <zoo@aggregate.com>")
|
453
|
+
address.should break_down_to({
|
454
|
+
:name => "david d `zoo' zuhn",
|
455
|
+
:display_name => "david d `zoo' zuhn",
|
456
|
+
:address => 'zoo@aggregate.com',
|
457
|
+
:comments => nil,
|
458
|
+
:domain => 'aggregate.com',
|
459
|
+
:local => 'zoo',
|
460
|
+
:format => "david d `zoo' zuhn <zoo@aggregate.com>",
|
461
|
+
:raw => "david d `zoo' zuhn <zoo@aggregate.com>"})
|
462
|
+
end
|
463
|
+
|
464
|
+
it "should handle |(foo@bar.com (foobar), ned@foo.com (nedfoo) ) <kevin@goess.org>|" do
|
465
|
+
address = Mail::Address.new('(foo@bar.com (foobar), ned@foo.com (nedfoo) ) <kevin@goess.org>')
|
466
|
+
address.should break_down_to({
|
467
|
+
:name => 'foo@bar.com \(foobar\), ned@foo.com \(nedfoo\) ',
|
468
|
+
:display_name => '(foo@bar.com \(foobar\), ned@foo.com \(nedfoo\) )',
|
469
|
+
:address => 'kevin@goess.org',
|
470
|
+
:comments => ['foo@bar.com (foobar), ned@foo.com (nedfoo) '],
|
471
|
+
:domain => 'goess.org',
|
472
|
+
:local => 'kevin',
|
473
|
+
:format => '"(foo@bar.com \\(foobar\\), ned@foo.com \(nedfoo\) )" <kevin@goess.org> (foo@bar.com \(foobar\), ned@foo.com \(nedfoo\) )',
|
474
|
+
:raw => '(foo@bar.com (foobar), ned@foo.com (nedfoo) ) <kevin@goess.org>'})
|
475
|
+
end
|
476
|
+
|
477
|
+
it "should handle |Pete(A wonderful ) chap) <pete(his account)@silly.test(his host)>|" do
|
478
|
+
address = Mail::Address.new('Pete(A wonderful \) chap) <pete(his account)@silly.test(his host)>')
|
479
|
+
address.should break_down_to({
|
480
|
+
:name => 'Pete',
|
481
|
+
:display_name => 'Pete',
|
482
|
+
:address => 'pete(his account)@silly.test',
|
483
|
+
:comments => ['A wonderful \\) chap', 'his account', 'his host'],
|
484
|
+
:domain => 'silly.test',
|
485
|
+
:local => 'pete(his account)',
|
486
|
+
:format => 'Pete <pete(his account)@silly.test> (A wonderful \\) chap his account his host)',
|
487
|
+
:raw => 'Pete(A wonderful \\) chap) <pete(his account)@silly.test(his host)>'})
|
488
|
+
end
|
489
|
+
|
490
|
+
it "should handle |Joe Q. Public <john.q.public@example.com>|" do
|
491
|
+
address = Mail::Address.new('Joe Q. Public <john.q.public@example.com>')
|
492
|
+
address.should break_down_to({
|
493
|
+
:name => 'Joe Q. Public',
|
494
|
+
:display_name => 'Joe Q. Public',
|
495
|
+
:address => 'john.q.public@example.com',
|
496
|
+
:comments => nil,
|
497
|
+
:domain => 'example.com',
|
498
|
+
:local => 'john.q.public',
|
499
|
+
:format => '"Joe Q. Public" <john.q.public@example.com>',
|
500
|
+
:raw => 'Joe Q. Public <john.q.public@example.com>'})
|
501
|
+
end
|
502
|
+
|
503
|
+
it "should handle |Mary Smith <@machine.tld:mary@example.net>|" do
|
504
|
+
address = Mail::Address.new('Mary Smith <@machine.tld:mary@example.net>')
|
505
|
+
address.should break_down_to({
|
506
|
+
:name => 'Mary Smith',
|
507
|
+
:display_name => 'Mary Smith',
|
508
|
+
:address => '@machine.tld:mary@example.net',
|
509
|
+
:comments => nil,
|
510
|
+
:domain => 'example.net',
|
511
|
+
:local => '@machine.tld:mary',
|
512
|
+
:format => 'Mary Smith <@machine.tld:mary@example.net>',
|
513
|
+
:raw => 'Mary Smith <@machine.tld:mary@example.net>'})
|
514
|
+
end
|
515
|
+
|
516
|
+
it "should handle |jdoe@test . example|" do
|
517
|
+
pending
|
518
|
+
address = Mail::Address.new('jdoe@test . example')
|
519
|
+
address.should break_down_to({
|
520
|
+
:name => 'jdoe@test.example',
|
521
|
+
:display_name => 'jdoe@test.example',
|
522
|
+
:address => 'jdoe@test.example',
|
523
|
+
:comments => nil,
|
524
|
+
:domain => 'test.example',
|
525
|
+
:local => 'jdoe',
|
526
|
+
:format => 'jdoe@test.example',
|
527
|
+
:raw => 'jdoe@test.example'})
|
528
|
+
end
|
529
|
+
|
530
|
+
end
|
531
|
+
|
532
|
+
end
|
533
|
+
|
534
|
+
describe "creating" do
|
535
|
+
|
536
|
+
describe "parts of an address" do
|
537
|
+
it "should add an address" do
|
538
|
+
address = Mail::Address.new
|
539
|
+
address.address = "mikel@test.lindsaar.net"
|
540
|
+
address.should break_down_to({:address => 'mikel@test.lindsaar.net'})
|
541
|
+
end
|
542
|
+
|
543
|
+
it "should add a display name" do
|
544
|
+
address = Mail::Address.new
|
545
|
+
address.display_name = "Mikel Lindsaar"
|
546
|
+
address.display_name.should == 'Mikel Lindsaar'
|
547
|
+
end
|
548
|
+
end
|
549
|
+
|
550
|
+
end
|
551
|
+
|
552
|
+
describe "modifying an address" do
|
553
|
+
it "should add an address" do
|
554
|
+
address = Mail::Address.new
|
555
|
+
address.address = "mikel@test.lindsaar.net"
|
556
|
+
address.should break_down_to({:address => 'mikel@test.lindsaar.net'})
|
557
|
+
end
|
558
|
+
|
559
|
+
it "should add a display name" do
|
560
|
+
address = Mail::Address.new
|
561
|
+
address.display_name = "Mikel Lindsaar"
|
562
|
+
address.display_name.should == 'Mikel Lindsaar'
|
563
|
+
end
|
564
|
+
|
565
|
+
it "should take an address and a display name and join them" do
|
566
|
+
address = Mail::Address.new
|
567
|
+
address.address = "mikel@test.lindsaar.net"
|
568
|
+
address.display_name = "Mikel Lindsaar"
|
569
|
+
address.format.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
|
570
|
+
end
|
571
|
+
|
572
|
+
it "should take a display name and an address and join them" do
|
573
|
+
address = Mail::Address.new
|
574
|
+
address.display_name = "Mikel Lindsaar"
|
575
|
+
address.address = "mikel@test.lindsaar.net"
|
576
|
+
address.format.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
|
577
|
+
end
|
578
|
+
|
579
|
+
end
|
580
|
+
|
581
|
+
describe "providing encoded and decoded outputs" do
|
582
|
+
it "should provide an encoded output" do
|
583
|
+
address = Mail::Address.new
|
584
|
+
address.display_name = "Mikel Lindsaar"
|
585
|
+
address.address = "mikel@test.lindsaar.net"
|
586
|
+
address.encoded.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
|
587
|
+
end
|
588
|
+
|
589
|
+
it "should provide an encoded output for non us-ascii" do
|
590
|
+
address = Mail::Address.new
|
591
|
+
address.display_name = "まける"
|
592
|
+
address.address = "mikel@test.lindsaar.net"
|
593
|
+
if RUBY_VERSION >= '1.9'
|
594
|
+
address.encoded.should == '=?UTF-8?B?44G+44GR44KL?= <mikel@test.lindsaar.net>'
|
595
|
+
else
|
596
|
+
address.encoded.should == '=?UTF8?B?44G+44GR44KL?= <mikel@test.lindsaar.net>'
|
597
|
+
end
|
598
|
+
end
|
599
|
+
|
600
|
+
it "should provide an encoded output for non us-ascii" do
|
601
|
+
address = Mail::Address.new
|
602
|
+
address.display_name = "まける"
|
603
|
+
address.address = "mikel@test.lindsaar.net"
|
604
|
+
address.decoded.should == '"まける" <mikel@test.lindsaar.net>'
|
605
|
+
end
|
606
|
+
|
607
|
+
end
|
608
|
+
|
609
|
+
end
|