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.
Files changed (321) hide show
  1. data/.document +5 -0
  2. data/.gitignore +22 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +38 -0
  5. data/Rakefile +56 -0
  6. data/VERSION +1 -0
  7. data/lib/rack/mail_exception.rb +103 -0
  8. data/test/helper.rb +13 -0
  9. data/test/test_rack_mail_exception.rb +93 -0
  10. data/vendor/mail/.bundle/config +2 -0
  11. data/vendor/mail/CHANGELOG.rdoc +370 -0
  12. data/vendor/mail/Dependencies.txt +3 -0
  13. data/vendor/mail/Gemfile +17 -0
  14. data/vendor/mail/README.rdoc +572 -0
  15. data/vendor/mail/ROADMAP +92 -0
  16. data/vendor/mail/Rakefile +41 -0
  17. data/vendor/mail/TODO.rdoc +9 -0
  18. data/vendor/mail/lib/mail.rb +76 -0
  19. data/vendor/mail/lib/mail/attachments_list.rb +99 -0
  20. data/vendor/mail/lib/mail/body.rb +287 -0
  21. data/vendor/mail/lib/mail/configuration.rb +67 -0
  22. data/vendor/mail/lib/mail/core_extensions/blank.rb +26 -0
  23. data/vendor/mail/lib/mail/core_extensions/nil.rb +11 -0
  24. data/vendor/mail/lib/mail/core_extensions/string.rb +27 -0
  25. data/vendor/mail/lib/mail/elements.rb +14 -0
  26. data/vendor/mail/lib/mail/elements/address.rb +306 -0
  27. data/vendor/mail/lib/mail/elements/address_list.rb +74 -0
  28. data/vendor/mail/lib/mail/elements/content_disposition_element.rb +30 -0
  29. data/vendor/mail/lib/mail/elements/content_location_element.rb +25 -0
  30. data/vendor/mail/lib/mail/elements/content_transfer_encoding_element.rb +24 -0
  31. data/vendor/mail/lib/mail/elements/content_type_element.rb +35 -0
  32. data/vendor/mail/lib/mail/elements/date_time_element.rb +26 -0
  33. data/vendor/mail/lib/mail/elements/envelope_from_element.rb +34 -0
  34. data/vendor/mail/lib/mail/elements/message_ids_element.rb +29 -0
  35. data/vendor/mail/lib/mail/elements/mime_version_element.rb +26 -0
  36. data/vendor/mail/lib/mail/elements/phrase_list.rb +21 -0
  37. data/vendor/mail/lib/mail/elements/received_element.rb +30 -0
  38. data/vendor/mail/lib/mail/encodings.rb +258 -0
  39. data/vendor/mail/lib/mail/encodings/7bit.rb +31 -0
  40. data/vendor/mail/lib/mail/encodings/8bit.rb +31 -0
  41. data/vendor/mail/lib/mail/encodings/base64.rb +33 -0
  42. data/vendor/mail/lib/mail/encodings/binary.rb +31 -0
  43. data/vendor/mail/lib/mail/encodings/quoted_printable.rb +38 -0
  44. data/vendor/mail/lib/mail/encodings/transfer_encoding.rb +58 -0
  45. data/vendor/mail/lib/mail/envelope.rb +35 -0
  46. data/vendor/mail/lib/mail/field.rb +223 -0
  47. data/vendor/mail/lib/mail/field_list.rb +33 -0
  48. data/vendor/mail/lib/mail/fields.rb +35 -0
  49. data/vendor/mail/lib/mail/fields/bcc_field.rb +56 -0
  50. data/vendor/mail/lib/mail/fields/cc_field.rb +55 -0
  51. data/vendor/mail/lib/mail/fields/comments_field.rb +41 -0
  52. data/vendor/mail/lib/mail/fields/common/address_container.rb +16 -0
  53. data/vendor/mail/lib/mail/fields/common/common_address.rb +125 -0
  54. data/vendor/mail/lib/mail/fields/common/common_date.rb +42 -0
  55. data/vendor/mail/lib/mail/fields/common/common_field.rb +50 -0
  56. data/vendor/mail/lib/mail/fields/common/common_message_id.rb +43 -0
  57. data/vendor/mail/lib/mail/fields/common/parameter_hash.rb +52 -0
  58. data/vendor/mail/lib/mail/fields/content_description_field.rb +19 -0
  59. data/vendor/mail/lib/mail/fields/content_disposition_field.rb +69 -0
  60. data/vendor/mail/lib/mail/fields/content_id_field.rb +63 -0
  61. data/vendor/mail/lib/mail/fields/content_location_field.rb +42 -0
  62. data/vendor/mail/lib/mail/fields/content_transfer_encoding_field.rb +50 -0
  63. data/vendor/mail/lib/mail/fields/content_type_field.rb +185 -0
  64. data/vendor/mail/lib/mail/fields/date_field.rb +55 -0
  65. data/vendor/mail/lib/mail/fields/from_field.rb +55 -0
  66. data/vendor/mail/lib/mail/fields/in_reply_to_field.rb +55 -0
  67. data/vendor/mail/lib/mail/fields/keywords_field.rb +44 -0
  68. data/vendor/mail/lib/mail/fields/message_id_field.rb +83 -0
  69. data/vendor/mail/lib/mail/fields/mime_version_field.rb +53 -0
  70. data/vendor/mail/lib/mail/fields/optional_field.rb +13 -0
  71. data/vendor/mail/lib/mail/fields/received_field.rb +67 -0
  72. data/vendor/mail/lib/mail/fields/references_field.rb +55 -0
  73. data/vendor/mail/lib/mail/fields/reply_to_field.rb +55 -0
  74. data/vendor/mail/lib/mail/fields/resent_bcc_field.rb +55 -0
  75. data/vendor/mail/lib/mail/fields/resent_cc_field.rb +55 -0
  76. data/vendor/mail/lib/mail/fields/resent_date_field.rb +35 -0
  77. data/vendor/mail/lib/mail/fields/resent_from_field.rb +55 -0
  78. data/vendor/mail/lib/mail/fields/resent_message_id_field.rb +34 -0
  79. data/vendor/mail/lib/mail/fields/resent_sender_field.rb +62 -0
  80. data/vendor/mail/lib/mail/fields/resent_to_field.rb +55 -0
  81. data/vendor/mail/lib/mail/fields/return_path_field.rb +64 -0
  82. data/vendor/mail/lib/mail/fields/sender_field.rb +67 -0
  83. data/vendor/mail/lib/mail/fields/structured_field.rb +51 -0
  84. data/vendor/mail/lib/mail/fields/subject_field.rb +16 -0
  85. data/vendor/mail/lib/mail/fields/to_field.rb +55 -0
  86. data/vendor/mail/lib/mail/fields/unstructured_field.rb +166 -0
  87. data/vendor/mail/lib/mail/header.rb +262 -0
  88. data/vendor/mail/lib/mail/mail.rb +234 -0
  89. data/vendor/mail/lib/mail/message.rb +1867 -0
  90. data/vendor/mail/lib/mail/network.rb +9 -0
  91. data/vendor/mail/lib/mail/network/delivery_methods/file_delivery.rb +40 -0
  92. data/vendor/mail/lib/mail/network/delivery_methods/sendmail.rb +62 -0
  93. data/vendor/mail/lib/mail/network/delivery_methods/smtp.rb +110 -0
  94. data/vendor/mail/lib/mail/network/delivery_methods/test_mailer.rb +40 -0
  95. data/vendor/mail/lib/mail/network/retriever_methods/imap.rb +18 -0
  96. data/vendor/mail/lib/mail/network/retriever_methods/pop3.rb +149 -0
  97. data/vendor/mail/lib/mail/parsers/address_lists.rb +64 -0
  98. data/vendor/mail/lib/mail/parsers/address_lists.treetop +19 -0
  99. data/vendor/mail/lib/mail/parsers/content_disposition.rb +387 -0
  100. data/vendor/mail/lib/mail/parsers/content_disposition.treetop +46 -0
  101. data/vendor/mail/lib/mail/parsers/content_location.rb +139 -0
  102. data/vendor/mail/lib/mail/parsers/content_location.treetop +20 -0
  103. data/vendor/mail/lib/mail/parsers/content_transfer_encoding.rb +162 -0
  104. data/vendor/mail/lib/mail/parsers/content_transfer_encoding.treetop +20 -0
  105. data/vendor/mail/lib/mail/parsers/content_type.rb +539 -0
  106. data/vendor/mail/lib/mail/parsers/content_type.treetop +58 -0
  107. data/vendor/mail/lib/mail/parsers/date_time.rb +114 -0
  108. data/vendor/mail/lib/mail/parsers/date_time.treetop +11 -0
  109. data/vendor/mail/lib/mail/parsers/envelope_from.rb +194 -0
  110. data/vendor/mail/lib/mail/parsers/envelope_from.treetop +32 -0
  111. data/vendor/mail/lib/mail/parsers/message_ids.rb +45 -0
  112. data/vendor/mail/lib/mail/parsers/message_ids.treetop +15 -0
  113. data/vendor/mail/lib/mail/parsers/mime_version.rb +144 -0
  114. data/vendor/mail/lib/mail/parsers/mime_version.treetop +19 -0
  115. data/vendor/mail/lib/mail/parsers/phrase_lists.rb +45 -0
  116. data/vendor/mail/lib/mail/parsers/phrase_lists.treetop +15 -0
  117. data/vendor/mail/lib/mail/parsers/received.rb +71 -0
  118. data/vendor/mail/lib/mail/parsers/received.treetop +11 -0
  119. data/vendor/mail/lib/mail/parsers/rfc2045.rb +464 -0
  120. data/vendor/mail/lib/mail/parsers/rfc2045.treetop +36 -0
  121. data/vendor/mail/lib/mail/parsers/rfc2822.rb +5318 -0
  122. data/vendor/mail/lib/mail/parsers/rfc2822.treetop +410 -0
  123. data/vendor/mail/lib/mail/parsers/rfc2822_obsolete.rb +3757 -0
  124. data/vendor/mail/lib/mail/parsers/rfc2822_obsolete.treetop +241 -0
  125. data/vendor/mail/lib/mail/part.rb +102 -0
  126. data/vendor/mail/lib/mail/parts_list.rb +34 -0
  127. data/vendor/mail/lib/mail/patterns.rb +30 -0
  128. data/vendor/mail/lib/mail/utilities.rb +181 -0
  129. data/vendor/mail/lib/mail/version.rb +10 -0
  130. data/vendor/mail/lib/mail/version_specific/ruby_1_8.rb +97 -0
  131. data/vendor/mail/lib/mail/version_specific/ruby_1_9.rb +87 -0
  132. data/vendor/mail/lib/tasks/corpus.rake +125 -0
  133. data/vendor/mail/lib/tasks/treetop.rake +10 -0
  134. data/vendor/mail/mail.gemspec +20 -0
  135. data/vendor/mail/reference/US ASCII Table.txt +130 -0
  136. data/vendor/mail/reference/rfc1035 Domain Implementation and Specification.txt +3083 -0
  137. data/vendor/mail/reference/rfc1049 Content-Type Header Field for Internet Messages.txt +451 -0
  138. data/vendor/mail/reference/rfc1344 Implications of MIME for Internet Mail Gateways.txt +586 -0
  139. data/vendor/mail/reference/rfc1345 Character Mnemonics & Character Sets.txt +5761 -0
  140. data/vendor/mail/reference/rfc1524 A User Agent Configuration Mechanism For Multimedia Mail Format Information.txt +675 -0
  141. data/vendor/mail/reference/rfc1652 SMTP Service Extension for 8bit-MIMEtransport.txt +339 -0
  142. data/vendor/mail/reference/rfc1892 Multipart Report .txt +227 -0
  143. data/vendor/mail/reference/rfc1893 Mail System Status Codes.txt +843 -0
  144. data/vendor/mail/reference/rfc2045 Multipurpose Internet Mail Extensions (1).txt +1739 -0
  145. data/vendor/mail/reference/rfc2046 Multipurpose Internet Mail Extensions (2).txt +2467 -0
  146. data/vendor/mail/reference/rfc2047 Multipurpose Internet Mail Extensions (3).txt +843 -0
  147. data/vendor/mail/reference/rfc2048 Multipurpose Internet Mail Extensions (4).txt +1180 -0
  148. data/vendor/mail/reference/rfc2049 Multipurpose Internet Mail Extensions (5).txt +1347 -0
  149. data/vendor/mail/reference/rfc2111 Content-ID and Message-ID URLs.txt +283 -0
  150. data/vendor/mail/reference/rfc2183 Content-Disposition Header Field.txt +675 -0
  151. data/vendor/mail/reference/rfc2231 MIME Parameter Value and Encoded Word Extensions.txt +563 -0
  152. data/vendor/mail/reference/rfc2387 MIME Multipart-Related Content-type.txt +563 -0
  153. data/vendor/mail/reference/rfc2821 Simple Mail Transfer Protocol.txt +3711 -0
  154. data/vendor/mail/reference/rfc2822 Internet Message Format.txt +2859 -0
  155. data/vendor/mail/reference/rfc3462 Reporting of Mail System Administrative Messages.txt +396 -0
  156. data/vendor/mail/reference/rfc3696 Checking and Transformation of Names.txt +898 -0
  157. data/vendor/mail/reference/rfc4155 The application-mbox Media Type.txt +502 -0
  158. data/vendor/mail/reference/rfc4234 Augmented BNF for Syntax Specifications: ABNF.txt +899 -0
  159. data/vendor/mail/reference/rfc822 Standard for the Format of ARPA Internet Text Messages.txt +2900 -0
  160. data/vendor/mail/spec/environment.rb +15 -0
  161. data/vendor/mail/spec/features/making_a_new_message.feature +14 -0
  162. data/vendor/mail/spec/features/steps/env.rb +6 -0
  163. data/vendor/mail/spec/features/steps/making_a_new_message_steps.rb +11 -0
  164. data/vendor/mail/spec/fixtures/attachments/basic_email.eml +31 -0
  165. data/vendor/mail/spec/fixtures/attachments/test.gif +0 -0
  166. data/vendor/mail/spec/fixtures/attachments/test.jpg +0 -0
  167. data/vendor/mail/spec/fixtures/attachments/test.pdf +0 -0
  168. data/vendor/mail/spec/fixtures/attachments/test.png +0 -0
  169. data/vendor/mail/spec/fixtures/attachments/test.tiff +0 -0
  170. data/vendor/mail/spec/fixtures/attachments/test.zip +0 -0
  171. data/vendor/mail/spec/fixtures/attachments//343/201/246/343/201/231/343/201/250.txt +2 -0
  172. data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_content_disposition.eml +29 -0
  173. data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_content_location.eml +32 -0
  174. data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_message_rfc822.eml +92 -0
  175. data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_only_email.eml +17 -0
  176. data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_pdf.eml +70 -0
  177. data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_with_encoded_name.eml +47 -0
  178. data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_with_quoted_filename.eml +60 -0
  179. data/vendor/mail/spec/fixtures/emails/error_emails/cant_parse_from.eml +33 -0
  180. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_7-bit.eml +231 -0
  181. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_empty.eml +33 -0
  182. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_plain.eml +148 -0
  183. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_qp_with_space.eml +53 -0
  184. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_spam.eml +44 -0
  185. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_text-html.eml +50 -0
  186. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_with_8bits.eml +770 -0
  187. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_with_semi_colon.eml +269 -0
  188. data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_x_uuencode.eml +79 -0
  189. data/vendor/mail/spec/fixtures/emails/error_emails/empty_group_lists.eml +162 -0
  190. data/vendor/mail/spec/fixtures/emails/error_emails/header_fields_with_empty_values.eml +33 -0
  191. data/vendor/mail/spec/fixtures/emails/error_emails/missing_body.eml +16 -0
  192. data/vendor/mail/spec/fixtures/emails/error_emails/missing_content_disposition.eml +43 -0
  193. data/vendor/mail/spec/fixtures/emails/error_emails/multiple_content_types.eml +25 -0
  194. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email11.eml +34 -0
  195. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email12.eml +32 -0
  196. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email2.eml +114 -0
  197. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email4.eml +59 -0
  198. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email7.eml +66 -0
  199. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_encoded_stack_level_too_deep.eml +53 -0
  200. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_illegal_boundary.eml +58 -0
  201. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_mimepart_without_content_type.eml +94 -0
  202. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_multipart_mixed_quoted_boundary.eml +50 -0
  203. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_nested_attachment.eml +100 -0
  204. data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_quoted_illegal_boundary.eml +58 -0
  205. data/vendor/mail/spec/fixtures/emails/mime_emails/sig_only_email.eml +29 -0
  206. data/vendor/mail/spec/fixtures/emails/mime_emails/two_from_in_message.eml +42 -0
  207. data/vendor/mail/spec/fixtures/emails/multi_charset/japanese.eml +9 -0
  208. data/vendor/mail/spec/fixtures/emails/multi_charset/japanese_attachment.eml +27 -0
  209. data/vendor/mail/spec/fixtures/emails/multi_charset/japanese_attachment_long_name.eml +44 -0
  210. data/vendor/mail/spec/fixtures/emails/multipart_report_emails/multi_address_bounce1.eml +179 -0
  211. data/vendor/mail/spec/fixtures/emails/multipart_report_emails/multi_address_bounce2.eml +179 -0
  212. data/vendor/mail/spec/fixtures/emails/multipart_report_emails/report_422.eml +98 -0
  213. data/vendor/mail/spec/fixtures/emails/multipart_report_emails/report_530.eml +97 -0
  214. data/vendor/mail/spec/fixtures/emails/plain_emails/basic_email.eml +31 -0
  215. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email.eml +14 -0
  216. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email10.eml +20 -0
  217. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email5.eml +19 -0
  218. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email6.eml +20 -0
  219. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email8.eml +47 -0
  220. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_bad_time.eml +62 -0
  221. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_double_at_in_header.eml +14 -0
  222. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_incorrect_header.eml +28 -0
  223. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_multiple_from.eml +30 -0
  224. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_quoted_with_0d0a.eml +14 -0
  225. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_reply.eml +32 -0
  226. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_simple.eml +11 -0
  227. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_string_in_date_field.eml +17 -0
  228. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_trailing_dot.eml +21 -0
  229. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_with_bad_date.eml +48 -0
  230. data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_with_partially_quoted_subject.eml +14 -0
  231. data/vendor/mail/spec/fixtures/emails/rfc2822/example01.eml +8 -0
  232. data/vendor/mail/spec/fixtures/emails/rfc2822/example02.eml +9 -0
  233. data/vendor/mail/spec/fixtures/emails/rfc2822/example03.eml +7 -0
  234. data/vendor/mail/spec/fixtures/emails/rfc2822/example04.eml +7 -0
  235. data/vendor/mail/spec/fixtures/emails/rfc2822/example05.eml +8 -0
  236. data/vendor/mail/spec/fixtures/emails/rfc2822/example06.eml +10 -0
  237. data/vendor/mail/spec/fixtures/emails/rfc2822/example07.eml +9 -0
  238. data/vendor/mail/spec/fixtures/emails/rfc2822/example08.eml +12 -0
  239. data/vendor/mail/spec/fixtures/emails/rfc2822/example09.eml +15 -0
  240. data/vendor/mail/spec/fixtures/emails/rfc2822/example10.eml +15 -0
  241. data/vendor/mail/spec/fixtures/emails/rfc2822/example11.eml +6 -0
  242. data/vendor/mail/spec/fixtures/emails/rfc2822/example12.eml +8 -0
  243. data/vendor/mail/spec/fixtures/emails/rfc2822/example13.eml +10 -0
  244. data/vendor/mail/spec/fixtures/emails/sample_output_multipart +0 -0
  245. data/vendor/mail/spec/mail/attachments_list_spec.rb +214 -0
  246. data/vendor/mail/spec/mail/body_spec.rb +385 -0
  247. data/vendor/mail/spec/mail/configuration_spec.rb +19 -0
  248. data/vendor/mail/spec/mail/core_extensions/string_spec.rb +62 -0
  249. data/vendor/mail/spec/mail/core_extensions_spec.rb +99 -0
  250. data/vendor/mail/spec/mail/elements/address_list_spec.rb +109 -0
  251. data/vendor/mail/spec/mail/elements/address_spec.rb +609 -0
  252. data/vendor/mail/spec/mail/elements/date_time_element_spec.rb +20 -0
  253. data/vendor/mail/spec/mail/elements/envelope_from_element_spec.rb +31 -0
  254. data/vendor/mail/spec/mail/elements/message_ids_element_spec.rb +43 -0
  255. data/vendor/mail/spec/mail/elements/phrase_list_spec.rb +22 -0
  256. data/vendor/mail/spec/mail/elements/received_element_spec.rb +34 -0
  257. data/vendor/mail/spec/mail/encoding_spec.rb +189 -0
  258. data/vendor/mail/spec/mail/encodings/base64_spec.rb +25 -0
  259. data/vendor/mail/spec/mail/encodings/quoted_printable_spec.rb +25 -0
  260. data/vendor/mail/spec/mail/encodings_spec.rb +664 -0
  261. data/vendor/mail/spec/mail/example_emails_spec.rb +303 -0
  262. data/vendor/mail/spec/mail/field_list_spec.rb +33 -0
  263. data/vendor/mail/spec/mail/field_spec.rb +198 -0
  264. data/vendor/mail/spec/mail/fields/bcc_field_spec.rb +89 -0
  265. data/vendor/mail/spec/mail/fields/cc_field_spec.rb +79 -0
  266. data/vendor/mail/spec/mail/fields/comments_field_spec.rb +25 -0
  267. data/vendor/mail/spec/mail/fields/common/address_container_spec.rb +18 -0
  268. data/vendor/mail/spec/mail/fields/common/common_address_spec.rb +132 -0
  269. data/vendor/mail/spec/mail/fields/common/common_date_spec.rb +25 -0
  270. data/vendor/mail/spec/mail/fields/common/common_field_spec.rb +69 -0
  271. data/vendor/mail/spec/mail/fields/common/common_message_id_spec.rb +30 -0
  272. data/vendor/mail/spec/mail/fields/common/parameter_hash_spec.rb +56 -0
  273. data/vendor/mail/spec/mail/fields/content_description_field_spec.rb +39 -0
  274. data/vendor/mail/spec/mail/fields/content_disposition_field_spec.rb +55 -0
  275. data/vendor/mail/spec/mail/fields/content_id_field_spec.rb +117 -0
  276. data/vendor/mail/spec/mail/fields/content_location_field_spec.rb +46 -0
  277. data/vendor/mail/spec/mail/fields/content_transfer_encoding_field_spec.rb +113 -0
  278. data/vendor/mail/spec/mail/fields/content_type_field_spec.rb +678 -0
  279. data/vendor/mail/spec/mail/fields/date_field_spec.rb +73 -0
  280. data/vendor/mail/spec/mail/fields/envelope_spec.rb +48 -0
  281. data/vendor/mail/spec/mail/fields/from_field_spec.rb +89 -0
  282. data/vendor/mail/spec/mail/fields/in_reply_to_field_spec.rb +62 -0
  283. data/vendor/mail/spec/mail/fields/keywords_field_spec.rb +66 -0
  284. data/vendor/mail/spec/mail/fields/message_id_field_spec.rb +147 -0
  285. data/vendor/mail/spec/mail/fields/mime_version_field_spec.rb +166 -0
  286. data/vendor/mail/spec/mail/fields/received_field_spec.rb +44 -0
  287. data/vendor/mail/spec/mail/fields/references_field_spec.rb +35 -0
  288. data/vendor/mail/spec/mail/fields/reply_to_field_spec.rb +67 -0
  289. data/vendor/mail/spec/mail/fields/resent_bcc_field_spec.rb +66 -0
  290. data/vendor/mail/spec/mail/fields/resent_cc_field_spec.rb +66 -0
  291. data/vendor/mail/spec/mail/fields/resent_date_field_spec.rb +39 -0
  292. data/vendor/mail/spec/mail/fields/resent_from_field_spec.rb +66 -0
  293. data/vendor/mail/spec/mail/fields/resent_message_id_field_spec.rb +24 -0
  294. data/vendor/mail/spec/mail/fields/resent_sender_field_spec.rb +58 -0
  295. data/vendor/mail/spec/mail/fields/resent_to_field_spec.rb +66 -0
  296. data/vendor/mail/spec/mail/fields/return_path_field_spec.rb +52 -0
  297. data/vendor/mail/spec/mail/fields/sender_field_spec.rb +58 -0
  298. data/vendor/mail/spec/mail/fields/structured_field_spec.rb +72 -0
  299. data/vendor/mail/spec/mail/fields/to_field_spec.rb +92 -0
  300. data/vendor/mail/spec/mail/fields/unstructured_field_spec.rb +134 -0
  301. data/vendor/mail/spec/mail/header_spec.rb +578 -0
  302. data/vendor/mail/spec/mail/mail_spec.rb +34 -0
  303. data/vendor/mail/spec/mail/message_spec.rb +1409 -0
  304. data/vendor/mail/spec/mail/mime_messages_spec.rb +435 -0
  305. data/vendor/mail/spec/mail/multipart_report_spec.rb +112 -0
  306. data/vendor/mail/spec/mail/network/delivery_methods/file_delivery_spec.rb +79 -0
  307. data/vendor/mail/spec/mail/network/delivery_methods/sendmail_spec.rb +125 -0
  308. data/vendor/mail/spec/mail/network/delivery_methods/smtp_spec.rb +133 -0
  309. data/vendor/mail/spec/mail/network/delivery_methods/test_mailer_spec.rb +57 -0
  310. data/vendor/mail/spec/mail/network/retriever_methods/pop3_spec.rb +180 -0
  311. data/vendor/mail/spec/mail/network_spec.rb +359 -0
  312. data/vendor/mail/spec/mail/parsers/address_lists_parser_spec.rb +15 -0
  313. data/vendor/mail/spec/mail/parsers/content_transfer_encoding_parser_spec.rb +72 -0
  314. data/vendor/mail/spec/mail/part_spec.rb +129 -0
  315. data/vendor/mail/spec/mail/parts_list_spec.rb +12 -0
  316. data/vendor/mail/spec/mail/round_tripping_spec.rb +44 -0
  317. data/vendor/mail/spec/mail/utilities_spec.rb +327 -0
  318. data/vendor/mail/spec/mail/version_specific/escape_paren_1_8_spec.rb +32 -0
  319. data/vendor/mail/spec/matchers/break_down_to.rb +35 -0
  320. data/vendor/mail/spec/spec_helper.rb +163 -0
  321. metadata +442 -0
@@ -0,0 +1,39 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe Mail::ResentDateField do
5
+ it "should initialize" do
6
+ doing { Mail::ResentDateField.new("12 Aug 2009 00:00:02 GMT") }.should_not raise_error
7
+ end
8
+
9
+ it "should be able to tell the time" do
10
+ Mail::ResentDateField.new("12 Aug 2009 00:00:02 GMT").date_time.class.should == DateTime
11
+ end
12
+
13
+ it "should mix in the CommonAddress module" do
14
+ Mail::ResentDateField.included_modules.should include(Mail::CommonDate)
15
+ end
16
+
17
+ it "should accept a string with the field name" do
18
+ t = Mail::ResentDateField.new('Resent-Date: 12 Aug 2009 00:00:02 GMT')
19
+ t.name.should == 'Resent-Date'
20
+ t.value.should == 'Wed, 12 Aug 2009 00:00:02 +0000'
21
+ t.date_time.should == ::DateTime.parse('12 Aug 2009 00:00:02 GMT')
22
+ end
23
+
24
+ it "should accept a string without the field name" do
25
+ t = Mail::ResentDateField.new('12 Aug 2009 00:00:02 GMT')
26
+ t.name.should == 'Resent-Date'
27
+ t.value.should == 'Wed, 12 Aug 2009 00:00:02 +0000'
28
+ t.date_time.should == ::DateTime.parse('12 Aug 2009 00:00:02 GMT')
29
+ end
30
+
31
+ it "should give today's date if no date is specified" do
32
+ now = Time.now
33
+ Time.stub!(:now).and_return(now)
34
+ t = Mail::ResentDateField.new
35
+ t.name.should == 'Resent-Date'
36
+ t.date_time.should == ::DateTime.parse(now.to_s)
37
+ end
38
+
39
+ end
@@ -0,0 +1,66 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ #
4
+ # resent-from = "Resent-From:" mailbox-list CRLF
5
+
6
+ describe Mail::ResentFromField do
7
+
8
+ describe "initialization" do
9
+
10
+ it "should initialize" do
11
+ doing { Mail::ResentFromField.new("ResentFrom", "Mikel") }.should_not raise_error
12
+ end
13
+
14
+ it "should mix in the CommonAddress module" do
15
+ Mail::ResentFromField.included_modules.should include(Mail::CommonAddress)
16
+ end
17
+
18
+ it "should accept a string with the field name" do
19
+ t = Mail::ResentFromField.new('Resent-From: Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
20
+ t.name.should == 'Resent-From'
21
+ t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
22
+ end
23
+
24
+ it "should accept a string without the field name" do
25
+ t = Mail::ResentFromField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
26
+ t.name.should == 'Resent-From'
27
+ t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
28
+ end
29
+
30
+ end
31
+
32
+ # Actual testing of CommonAddress methods oResentFromurs in the address field spec file
33
+
34
+ describe "instance methods" do
35
+ it "should return an address" do
36
+ t = Mail::ResentFromField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
37
+ t.formatted.should == ['Mikel Lindsaar <mikel@test.lindsaar.net>']
38
+ end
39
+
40
+ it "should return two addresses" do
41
+ t = Mail::ResentFromField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, Ada Lindsaar <ada@test.lindsaar.net>')
42
+ t.formatted.first.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
43
+ t.addresses.last.should == 'ada@test.lindsaar.net'
44
+ end
45
+
46
+ it "should return one address and a group" do
47
+ t = Mail::ResentFromField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
48
+ t.addresses[0].should == 'sam@me.com'
49
+ t.addresses[1].should == 'mikel@me.com'
50
+ t.addresses[2].should == 'bob@you.com'
51
+ end
52
+
53
+ it "should return the formatted line on to_s" do
54
+ t = Mail::ResentFromField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
55
+ t.value.should == 'sam@me.com, my_group: mikel@me.com, bob@you.com;'
56
+ end
57
+
58
+ it "should return the encoded line" do
59
+ t = Mail::ResentFromField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
60
+ t.encoded.should == "Resent-From: sam@me.com, \r\n\tmy_group: mikel@me.com, \r\n\tbob@you.com;\r\n"
61
+ end
62
+
63
+ end
64
+
65
+
66
+ end
@@ -0,0 +1,24 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe Mail::ResentMessageIdField do
5
+
6
+ it "should initialize" do
7
+ doing { Mail::ResentMessageIdField.new("<1234@test.lindsaar.net>") }.should_not raise_error
8
+ end
9
+
10
+ it "should accept a string with the field name" do
11
+ t = Mail::ResentMessageIdField.new('Resent-Message-ID: <1234@test.lindsaar.net>')
12
+ t.name.should == 'Resent-Message-ID'
13
+ t.value.should == '<1234@test.lindsaar.net>'
14
+ t.message_id.should == '1234@test.lindsaar.net'
15
+ end
16
+
17
+ it "should accept a string without the field name" do
18
+ t = Mail::ResentMessageIdField.new('<1234@test.lindsaar.net>')
19
+ t.name.should == 'Resent-Message-ID'
20
+ t.value.should == '<1234@test.lindsaar.net>'
21
+ t.message_id.should == '1234@test.lindsaar.net'
22
+ end
23
+
24
+ end
@@ -0,0 +1,58 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ #
4
+ # resent-sender = "Resent-Sender:" mailbox CRLF
5
+
6
+ describe Mail::ResentSenderField do
7
+
8
+ describe "initialization" do
9
+
10
+ it "should initialize" do
11
+ doing { Mail::ResentSenderField.new("ResentSender", "Mikel") }.should_not raise_error
12
+ end
13
+
14
+ it "should mix in the CommonAddress module" do
15
+ Mail::ResentSenderField.included_modules.should include(Mail::CommonAddress)
16
+ end
17
+
18
+ it "should accept a string with the field name" do
19
+ t = Mail::ResentSenderField.new('Resent-Sender: Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
20
+ t.name.should == 'Resent-Sender'
21
+ t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
22
+ end
23
+
24
+ it "should accept a string without the field name" do
25
+ t = Mail::ResentSenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
26
+ t.name.should == 'Resent-Sender'
27
+ t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
28
+ end
29
+
30
+ end
31
+
32
+ # Actual testing of CommonAddress methods oResentSenderurs in the address field spec file
33
+
34
+ describe "instance methods" do
35
+ it "should return an address" do
36
+ t = Mail::ResentSenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
37
+ t.formatted.should == ['Mikel Lindsaar <mikel@test.lindsaar.net>']
38
+ end
39
+
40
+ it "should return two addresses" do
41
+ t = Mail::ResentSenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
42
+ t.address.to_s.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
43
+ end
44
+
45
+ it "should return the formatted line on to_s" do
46
+ t = Mail::ResentSenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
47
+ t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
48
+ end
49
+
50
+ it "should return the encoded line" do
51
+ t = Mail::ResentSenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
52
+ t.encoded.should == "Resent-Sender: Mikel Lindsaar <mikel@test.lindsaar.net>\r\n"
53
+ end
54
+
55
+ end
56
+
57
+
58
+ end
@@ -0,0 +1,66 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ #
4
+ # resent-to = "Resent-To:" address-list CRLF
5
+
6
+ describe Mail::ResentToField do
7
+
8
+ describe "initialization" do
9
+
10
+ it "should initialize" do
11
+ doing { Mail::ResentToField.new("ResentTo", "Mikel") }.should_not raise_error
12
+ end
13
+
14
+ it "should mix in the CommonAddress module" do
15
+ Mail::ResentToField.included_modules.should include(Mail::CommonAddress)
16
+ end
17
+
18
+ it "should accept a string with the field name" do
19
+ t = Mail::ResentToField.new('Resent-To: Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
20
+ t.name.should == 'Resent-To'
21
+ t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
22
+ end
23
+
24
+ it "should accept a string without the field name" do
25
+ t = Mail::ResentToField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
26
+ t.name.should == 'Resent-To'
27
+ t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
28
+ end
29
+
30
+ end
31
+
32
+ # Actual testing of CommonAddress methods oResentTours in the address field spec file
33
+
34
+ describe "instance methods" do
35
+ it "should return an address" do
36
+ t = Mail::ResentToField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
37
+ t.formatted.should == ['Mikel Lindsaar <mikel@test.lindsaar.net>']
38
+ end
39
+
40
+ it "should return two addresses" do
41
+ t = Mail::ResentToField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, Ada Lindsaar <ada@test.lindsaar.net>')
42
+ t.formatted.first.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
43
+ t.addresses.last.should == 'ada@test.lindsaar.net'
44
+ end
45
+
46
+ it "should return one address and a group" do
47
+ t = Mail::ResentToField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
48
+ t.addresses[0].should == 'sam@me.com'
49
+ t.addresses[1].should == 'mikel@me.com'
50
+ t.addresses[2].should == 'bob@you.com'
51
+ end
52
+
53
+ it "should return the formatted line on to_s" do
54
+ t = Mail::ResentToField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
55
+ t.value.should == 'sam@me.com, my_group: mikel@me.com, bob@you.com;'
56
+ end
57
+
58
+ it "should return the encoded line" do
59
+ t = Mail::ResentToField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
60
+ t.encoded.should == "Resent-To: sam@me.com, \r\n\tmy_group: mikel@me.com, \r\n\tbob@you.com;\r\n"
61
+ end
62
+
63
+ end
64
+
65
+
66
+ end
@@ -0,0 +1,52 @@
1
+ require 'spec_helper'
2
+
3
+ describe Mail::ReturnPathField do
4
+ it "should allow you to specify a field" do
5
+ rp = Mail::ReturnPathField.new('Return-Path: mikel@test.lindsaar.net')
6
+ rp.address.should == 'mikel@test.lindsaar.net'
7
+ end
8
+
9
+ it "should encode the addr_spec in <>" do
10
+ rp = Mail::ReturnPathField.new('Return-Path: mikel@test.lindsaar.net')
11
+ rp.encoded.should == "Return-Path: <mikel@test.lindsaar.net>\r\n"
12
+ end
13
+
14
+ it "should set the return path" do
15
+ mail = Mail.new do
16
+ to "to@someemail.com"
17
+ from "from@someemail.com"
18
+ subject "Can't set the return-path"
19
+ return_path "bounce@someemail.com"
20
+ message_id "<1234@someemail.com>"
21
+ body "body"
22
+ end
23
+ mail.return_path.should == "bounce@someemail.com"
24
+ end
25
+
26
+ it "should set the return path" do
27
+ mail = Mail.new do
28
+ to "to@someemail.com"
29
+ from "from@someemail.com"
30
+ subject "Can't set the return-path"
31
+ return_path "bounce@someemail.com"
32
+ message_id "<1234@someemail.com>"
33
+ body "body"
34
+ end
35
+ encoded_mail = Mail.new(mail.encoded)
36
+ encoded_mail.return_path.should == "bounce@someemail.com"
37
+ end
38
+
39
+ it "should wrap the return path addr_spec in <>" do
40
+ mail = Mail.new do
41
+ to "to@someemail.com"
42
+ from "from@someemail.com"
43
+ subject "Can't set the return-path"
44
+ return_path "bounce@someemail.com"
45
+ message_id "<1234@someemail.com>"
46
+ body "body"
47
+ end
48
+ mail.encoded.should =~ /<bounce@someemail\.com>/
49
+ end
50
+
51
+
52
+ end
@@ -0,0 +1,58 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe Mail::SenderField do
5
+ # sender = "Sender:" mailbox CRLF
6
+ #
7
+
8
+ describe "initialization" do
9
+
10
+ it "should initialize" do
11
+ doing { Mail::SenderField.new("Sender", "Mikel") }.should_not raise_error
12
+ end
13
+
14
+ it "should mix in the CommonAddress module" do
15
+ Mail::SenderField.included_modules.should include(Mail::CommonAddress)
16
+ end
17
+
18
+ it "should accept a string with the field name" do
19
+ t = Mail::SenderField.new('Sender: Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
20
+ t.name.should == 'Sender'
21
+ t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
22
+ end
23
+
24
+ it "should accept a string without the field name" do
25
+ t = Mail::SenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
26
+ t.name.should == 'Sender'
27
+ t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
28
+ end
29
+
30
+ end
31
+
32
+ # Actual testing of CommonAddress methods oSenderurs in the address field spec file
33
+
34
+ describe "instance methods" do
35
+ it "should return an address" do
36
+ t = Mail::SenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
37
+ t.formatted.should == ['Mikel Lindsaar <mikel@test.lindsaar.net>']
38
+ end
39
+
40
+ it "should return two addresses" do
41
+ t = Mail::SenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
42
+ t.address.to_s.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
43
+ end
44
+
45
+ it "should return the formatted line on to_s" do
46
+ t = Mail::SenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
47
+ t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
48
+ end
49
+
50
+ it "should return the encoded line" do
51
+ t = Mail::SenderField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
52
+ t.encoded.should == "Sender: Mikel Lindsaar <mikel@test.lindsaar.net>\r\n"
53
+ end
54
+
55
+ end
56
+
57
+
58
+ end
@@ -0,0 +1,72 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe Mail::StructuredField do
5
+
6
+ describe "initialization" do
7
+
8
+ it "should be instantiated" do
9
+ doing {Mail::StructuredField.new("From", "bob@me.com")}.should_not raise_error
10
+ end
11
+
12
+ end
13
+
14
+ describe "manipulation" do
15
+
16
+ before(:each) do
17
+ @field = Mail::StructuredField.new("From", "bob@me.com")
18
+ end
19
+
20
+ it "should allow us to set a text value at initialization" do
21
+ doing{Mail::StructuredField.new("From", "bob@me.com")}.should_not raise_error
22
+ end
23
+
24
+ it "should provide access to the text of the field once set" do
25
+ @field.value.should == "bob@me.com"
26
+ end
27
+
28
+ it "should provide a means to change the value" do
29
+ @field.value = "bob@you.com"
30
+ @field.value.should == "bob@you.com"
31
+ end
32
+ end
33
+
34
+ describe "displaying encoded field and decoded value" do
35
+
36
+ before(:each) do
37
+ @field = Mail::FromField.new("bob@me.com")
38
+ end
39
+
40
+ it "should provide a to_s function that returns the decoded string" do
41
+ @field.to_s.should == "bob@me.com"
42
+ end
43
+
44
+ it "should return '' on to_s if there is no value" do
45
+ @field.value = nil
46
+ @field.encoded.should == ''
47
+ end
48
+
49
+ it "should give an encoded value ready to insert into an email" do
50
+ @field.encoded.should == "From: bob@me.com\r\n"
51
+ end
52
+
53
+ it "should return an empty string on encoded if it has no value" do
54
+ @field.value = nil
55
+ @field.encoded.should == ''
56
+ end
57
+
58
+ it "should return the field name and value in proper format when called to_s" do
59
+ @field.encoded.should == "From: bob@me.com\r\n"
60
+ end
61
+
62
+ end
63
+
64
+ describe "structured field template methods" do
65
+ it "should raise an error if attempting to call :encoded or :decoded on the parent StructuredField class" do
66
+ field = Mail::StructuredField.new
67
+ doing { field.encoded }.should raise_error(NoMethodError)
68
+ doing { field.decoded }.should raise_error(NoMethodError)
69
+ end
70
+ end
71
+
72
+ end
@@ -0,0 +1,92 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe Mail::ToField do
5
+ #
6
+ # The "To:" field contains the address(es) of the primary recipient(s)
7
+ # of the message.
8
+
9
+ describe "initialization" do
10
+
11
+ it "should initialize" do
12
+ doing { Mail::ToField.new("Mikel") }.should_not raise_error
13
+ end
14
+
15
+ it "should mix in the CommonAddress module" do
16
+ Mail::ToField.included_modules.should include(Mail::CommonAddress)
17
+ end
18
+
19
+ it "should accept a string with the field name" do
20
+ t = Mail::ToField.new('To: Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
21
+ t.name.should == 'To'
22
+ t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
23
+ end
24
+
25
+ it "should accept a string without the field name" do
26
+ t = Mail::ToField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>')
27
+ t.name.should == 'To'
28
+ t.value.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>, "Bob Smith" <bob@me.com>'
29
+ end
30
+
31
+ end
32
+
33
+ # Actual testing of CommonAddress methods oTours in the address field spec file
34
+
35
+ describe "instance methods" do
36
+ it "should return an address" do
37
+ t = Mail::ToField.new('Mikel Lindsaar <mikel@test.lindsaar.net>')
38
+ t.formatted.should == ['Mikel Lindsaar <mikel@test.lindsaar.net>']
39
+ end
40
+
41
+ it "should return two addresses" do
42
+ t = Mail::ToField.new('Mikel Lindsaar <mikel@test.lindsaar.net>, Ada Lindsaar <ada@test.lindsaar.net>')
43
+ t.formatted.first.should == 'Mikel Lindsaar <mikel@test.lindsaar.net>'
44
+ t.addresses.last.should == 'ada@test.lindsaar.net'
45
+ end
46
+
47
+ it "should return one address and a group" do
48
+ t = Mail::ToField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
49
+ t.addresses[0].should == 'sam@me.com'
50
+ t.addresses[1].should == 'mikel@me.com'
51
+ t.addresses[2].should == 'bob@you.com'
52
+ end
53
+
54
+ it "should return the formatted line on to_s" do
55
+ t = Mail::ToField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
56
+ t.value.should == 'sam@me.com, my_group: mikel@me.com, bob@you.com;'
57
+ end
58
+
59
+ it "should return the encoded line" do
60
+ t = Mail::ToField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
61
+ t.encoded.should == "To: sam@me.com, \r\n\tmy_group: mikel@me.com, \r\n\tbob@you.com;\r\n"
62
+ end
63
+
64
+ it "should return the decoded line" do
65
+ t = Mail::ToField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
66
+ t.decoded.should == "sam@me.com, my_group: mikel@me.com, bob@you.com;"
67
+ end
68
+
69
+ it "should get multiple address out from a group list" do
70
+ t = Mail::ToField.new('sam@me.com, my_group: mikel@me.com, bob@you.com;')
71
+ t.addresses.should == ["sam@me.com", "mikel@me.com", "bob@you.com"]
72
+ end
73
+
74
+ it "should handle commas in the address" do
75
+ t = Mail::ToField.new('"Long, stupid email address" <mikel@test.lindsaar.net>')
76
+ t.addresses.should == ["mikel@test.lindsaar.net"]
77
+ end
78
+
79
+ it "should handle commas in the address for multiple fields" do
80
+ t = Mail::ToField.new('"Long, stupid email address" <mikel@test.lindsaar.net>, "Another, really, really, long, stupid email address" <bob@test.lindsaar.net>')
81
+ t.addresses.should == ["mikel@test.lindsaar.net", "bob@test.lindsaar.net"]
82
+ end
83
+
84
+ end
85
+
86
+ it "should not crash if it can't understand a name" do
87
+ t = Mail.new('To: <"Undisclosed-Recipient:"@msr19.hinet.net;>')
88
+ doing { t.encoded }.should_not raise_error
89
+ t.encoded.should =~ /To\:\s<"Undisclosed\-Recipient\:"@msr19\.hinet\.net;>\r\n/
90
+ end
91
+
92
+ end