actionmailer 2.3.18 → 3.0.0.beta

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 (154) hide show
  1. data/CHANGELOG +13 -16
  2. data/README +39 -21
  3. data/lib/action_mailer/adv_attr_accessor.rb +14 -18
  4. data/lib/action_mailer/base.rb +437 -560
  5. data/lib/action_mailer/collector.rb +36 -0
  6. data/lib/action_mailer/delivery_methods.rb +86 -0
  7. data/lib/action_mailer/deprecated_api.rb +139 -0
  8. data/lib/action_mailer/mail_helper.rb +25 -13
  9. data/lib/action_mailer/old_api.rb +248 -0
  10. data/lib/action_mailer/quoting.rb +4 -2
  11. data/lib/action_mailer/railtie.rb +25 -0
  12. data/lib/action_mailer/railties/subscriber.rb +20 -0
  13. data/lib/action_mailer/test_case.rb +4 -6
  14. data/lib/action_mailer/test_helper.rb +0 -1
  15. data/lib/action_mailer/tmail_compat.rb +34 -0
  16. data/lib/action_mailer/version.rb +3 -3
  17. data/lib/action_mailer.rb +25 -30
  18. metadata +41 -161
  19. data/Rakefile +0 -97
  20. data/install.rb +0 -30
  21. data/lib/action_mailer/helpers.rb +0 -113
  22. data/lib/action_mailer/part.rb +0 -107
  23. data/lib/action_mailer/part_container.rb +0 -55
  24. data/lib/action_mailer/utils.rb +0 -7
  25. data/lib/action_mailer/vendor/text-format-0.6.3/text/format.rb +0 -1466
  26. data/lib/action_mailer/vendor/text_format.rb +0 -10
  27. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/Makefile +0 -18
  28. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/address.rb +0 -392
  29. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/attachments.rb +0 -65
  30. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/base64.rb +0 -46
  31. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/compat.rb +0 -41
  32. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/config.rb +0 -67
  33. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/core_extensions.rb +0 -63
  34. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/encode.rb +0 -590
  35. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/header.rb +0 -962
  36. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/index.rb +0 -9
  37. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/interface.rb +0 -1162
  38. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/loader.rb +0 -3
  39. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/mail.rb +0 -578
  40. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/mailbox.rb +0 -496
  41. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/main.rb +0 -6
  42. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/mbox.rb +0 -3
  43. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/net.rb +0 -250
  44. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/obsolete.rb +0 -132
  45. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/parser.rb +0 -1060
  46. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/parser.y +0 -416
  47. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/port.rb +0 -379
  48. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/quoting.rb +0 -164
  49. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/require_arch.rb +0 -58
  50. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/scanner.rb +0 -49
  51. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/scanner_r.rb +0 -262
  52. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/stringio.rb +0 -280
  53. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/utils.rb +0 -362
  54. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/COPYING +0 -504
  55. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/README +0 -12
  56. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/big5freq.rb +0 -927
  57. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/big5prober.rb +0 -42
  58. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/chardistribution.rb +0 -238
  59. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/charsetgroupprober.rb +0 -112
  60. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/charsetprober.rb +0 -75
  61. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/codingstatemachine.rb +0 -64
  62. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/constants.rb +0 -42
  63. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/escprober.rb +0 -89
  64. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/escsm.rb +0 -244
  65. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/eucjpprober.rb +0 -88
  66. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/euckrfreq.rb +0 -596
  67. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/euckrprober.rb +0 -42
  68. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/euctwfreq.rb +0 -430
  69. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/euctwprober.rb +0 -42
  70. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/gb2312freq.rb +0 -474
  71. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/gb2312prober.rb +0 -42
  72. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/hebrewprober.rb +0 -289
  73. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/jisfreq.rb +0 -570
  74. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/jpcntx.rb +0 -229
  75. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langbulgarianmodel.rb +0 -229
  76. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langcyrillicmodel.rb +0 -330
  77. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langgreekmodel.rb +0 -227
  78. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langhebrewmodel.rb +0 -202
  79. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langhungarianmodel.rb +0 -226
  80. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langthaimodel.rb +0 -201
  81. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/latin1prober.rb +0 -147
  82. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/mbcharsetprober.rb +0 -89
  83. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/mbcsgroupprober.rb +0 -45
  84. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/mbcssm.rb +0 -542
  85. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/sbcharsetprober.rb +0 -124
  86. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/sbcsgroupprober.rb +0 -56
  87. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/sjisprober.rb +0 -88
  88. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/universaldetector.rb +0 -168
  89. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/utf8prober.rb +0 -87
  90. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet.rb +0 -67
  91. data/lib/action_mailer/vendor/tmail-1.2.7/tmail/version.rb +0 -39
  92. data/lib/action_mailer/vendor/tmail-1.2.7/tmail.rb +0 -6
  93. data/lib/action_mailer/vendor/tmail.rb +0 -17
  94. data/lib/actionmailer.rb +0 -2
  95. data/test/abstract_unit.rb +0 -62
  96. data/test/asset_host_test.rb +0 -54
  97. data/test/delivery_method_test.rb +0 -51
  98. data/test/fixtures/asset_host_mailer/email_with_asset.html.erb +0 -1
  99. data/test/fixtures/auto_layout_mailer/hello.html.erb +0 -1
  100. data/test/fixtures/auto_layout_mailer/multipart.text.html.erb +0 -1
  101. data/test/fixtures/auto_layout_mailer/multipart.text.plain.erb +0 -1
  102. data/test/fixtures/explicit_layout_mailer/logout.html.erb +0 -1
  103. data/test/fixtures/explicit_layout_mailer/signup.html.erb +0 -1
  104. data/test/fixtures/first_mailer/share.erb +0 -1
  105. data/test/fixtures/helper_mailer/use_example_helper.erb +0 -1
  106. data/test/fixtures/helper_mailer/use_helper.erb +0 -1
  107. data/test/fixtures/helper_mailer/use_helper_method.erb +0 -1
  108. data/test/fixtures/helper_mailer/use_mail_helper.erb +0 -5
  109. data/test/fixtures/helpers/example_helper.rb +0 -5
  110. data/test/fixtures/layouts/auto_layout_mailer.html.erb +0 -1
  111. data/test/fixtures/layouts/auto_layout_mailer.text.erb +0 -1
  112. data/test/fixtures/layouts/spam.html.erb +0 -1
  113. data/test/fixtures/path.with.dots/funky_path_mailer/multipart_with_template_path_with_dots.erb +0 -1
  114. data/test/fixtures/raw_email +0 -14
  115. data/test/fixtures/raw_email10 +0 -20
  116. data/test/fixtures/raw_email12 +0 -32
  117. data/test/fixtures/raw_email13 +0 -29
  118. data/test/fixtures/raw_email2 +0 -114
  119. data/test/fixtures/raw_email3 +0 -70
  120. data/test/fixtures/raw_email4 +0 -59
  121. data/test/fixtures/raw_email5 +0 -19
  122. data/test/fixtures/raw_email6 +0 -20
  123. data/test/fixtures/raw_email7 +0 -66
  124. data/test/fixtures/raw_email8 +0 -47
  125. data/test/fixtures/raw_email9 +0 -28
  126. data/test/fixtures/raw_email_quoted_with_0d0a +0 -14
  127. data/test/fixtures/raw_email_with_invalid_characters_in_content_type +0 -104
  128. data/test/fixtures/raw_email_with_nested_attachment +0 -100
  129. data/test/fixtures/raw_email_with_partially_quoted_subject +0 -14
  130. data/test/fixtures/second_mailer/share.erb +0 -1
  131. data/test/fixtures/templates/signed_up.erb +0 -3
  132. data/test/fixtures/test_mailer/_subtemplate.text.plain.erb +0 -1
  133. data/test/fixtures/test_mailer/body_ivar.erb +0 -2
  134. data/test/fixtures/test_mailer/custom_templating_extension.text.html.haml +0 -6
  135. data/test/fixtures/test_mailer/custom_templating_extension.text.plain.haml +0 -6
  136. data/test/fixtures/test_mailer/implicitly_multipart_example.ignored.erb +0 -1
  137. data/test/fixtures/test_mailer/implicitly_multipart_example.rhtml.bak +0 -1
  138. data/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb +0 -10
  139. data/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb~ +0 -10
  140. data/test/fixtures/test_mailer/implicitly_multipart_example.text.plain.erb +0 -2
  141. data/test/fixtures/test_mailer/implicitly_multipart_example.text.yaml.erb +0 -1
  142. data/test/fixtures/test_mailer/included_subtemplate.text.plain.erb +0 -1
  143. data/test/fixtures/test_mailer/rxml_template.builder +0 -2
  144. data/test/fixtures/test_mailer/rxml_template.rxml +0 -2
  145. data/test/fixtures/test_mailer/signed_up.html.erb +0 -3
  146. data/test/fixtures/test_mailer/signed_up_with_url.erb +0 -5
  147. data/test/mail_helper_test.rb +0 -95
  148. data/test/mail_layout_test.rb +0 -123
  149. data/test/mail_render_test.rb +0 -116
  150. data/test/mail_service_test.rb +0 -1145
  151. data/test/quoting_test.rb +0 -105
  152. data/test/test_helper_test.rb +0 -129
  153. data/test/tmail_test.rb +0 -22
  154. data/test/url_test.rb +0 -76
data/test/quoting_test.rb DELETED
@@ -1,105 +0,0 @@
1
- # encoding: utf-8
2
- require 'abstract_unit'
3
- require 'tempfile'
4
-
5
- class QuotingTest < Test::Unit::TestCase
6
- # Move some tests from TMAIL here
7
- def test_unquote_quoted_printable
8
- a ="=?ISO-8859-1?Q?[166417]_Bekr=E6ftelse_fra_Rejsefeber?="
9
- b = TMail::Unquoter.unquote_and_convert_to(a, 'utf-8')
10
- assert_equal "[166417] Bekr\303\246ftelse fra Rejsefeber", b
11
- end
12
-
13
- def test_unquote_base64
14
- a ="=?ISO-8859-1?B?WzE2NjQxN10gQmVrcuZmdGVsc2UgZnJhIFJlanNlZmViZXI=?="
15
- b = TMail::Unquoter.unquote_and_convert_to(a, 'utf-8')
16
- assert_equal "[166417] Bekr\303\246ftelse fra Rejsefeber", b
17
- end
18
-
19
- def test_unquote_without_charset
20
- a ="[166417]_Bekr=E6ftelse_fra_Rejsefeber"
21
- b = TMail::Unquoter.unquote_and_convert_to(a, 'utf-8')
22
- assert_equal "[166417]_Bekr=E6ftelse_fra_Rejsefeber", b
23
- end
24
-
25
- def test_unqoute_multiple
26
- quoted ="=?utf-8?q?Re=3A_=5B12=5D_=23137=3A_Inkonsistente_verwendung_von_=22Hin?==?utf-8?b?enVmw7xnZW4i?="
27
- actual = TMail::Unquoter.unquote_and_convert_to(quoted, 'utf-8')
28
-
29
- expected = "Re: [12] #137: Inkonsistente verwendung von \"Hinzuf\303\274gen\""
30
- expected.force_encoding 'ASCII-8BIT' if expected.respond_to?(:force_encoding)
31
-
32
- assert_equal expected, actual
33
- end
34
-
35
- def test_unqoute_in_the_middle
36
- a ="Re: Photos =?ISO-8859-1?Q?Brosch=FCre_Rand?="
37
- b = TMail::Unquoter.unquote_and_convert_to(a, 'utf-8')
38
- assert_equal "Re: Photos Brosch\303\274re Rand", b
39
- end
40
-
41
- def test_unqoute_iso
42
- a ="=?ISO-8859-1?Q?Brosch=FCre_Rand?="
43
- b = TMail::Unquoter.unquote_and_convert_to(a, 'iso-8859-1')
44
- expected = "Brosch\374re Rand"
45
- expected.force_encoding 'iso-8859-1' if expected.respond_to?(:force_encoding)
46
- assert_equal expected, b
47
- end
48
-
49
- def test_quote_multibyte_chars
50
- original = "\303\246 \303\270 and \303\245"
51
- original.force_encoding('ASCII-8BIT') if original.respond_to?(:force_encoding)
52
-
53
- result = execute_in_sandbox(<<-CODE)
54
- $:.unshift(File.dirname(__FILE__) + "/../lib/")
55
- if RUBY_VERSION < '1.9'
56
- $KCODE = 'u'
57
- require 'jcode'
58
- end
59
- require 'action_mailer/quoting'
60
- include ActionMailer::Quoting
61
- quoted_printable(#{original.inspect}, "UTF-8")
62
- CODE
63
-
64
- unquoted = TMail::Unquoter.unquote_and_convert_to(result, nil)
65
- assert_equal unquoted, original
66
- end
67
-
68
-
69
- # test an email that has been created using \r\n newlines, instead of
70
- # \n newlines.
71
- def test_email_quoted_with_0d0a
72
- mail = TMail::Mail.parse(IO.read("#{File.dirname(__FILE__)}/fixtures/raw_email_quoted_with_0d0a"))
73
- assert_match %r{Elapsed time}, mail.body
74
- end
75
-
76
- def test_email_with_partially_quoted_subject
77
- mail = TMail::Mail.parse(IO.read("#{File.dirname(__FILE__)}/fixtures/raw_email_with_partially_quoted_subject"))
78
- expected = "Re: Test: \"\346\274\242\345\255\227\" mid \"\346\274\242\345\255\227\" tail"
79
- expected.force_encoding('ASCII-8BIT') if expected.respond_to?(:force_encoding)
80
- assert_equal expected, mail.subject
81
- end
82
-
83
- private
84
- # This whole thing *could* be much simpler, but I don't think Tempfile,
85
- # popen and others exist on all platforms (like Windows).
86
- def execute_in_sandbox(code)
87
- test_name = "#{File.dirname(__FILE__)}/am-quoting-test.#{$$}.rb"
88
- res_name = "#{File.dirname(__FILE__)}/am-quoting-test.#{$$}.out"
89
-
90
- File.open(test_name, "w+") do |file|
91
- file.write(<<-CODE)
92
- block = Proc.new do
93
- #{code}
94
- end
95
- puts block.call
96
- CODE
97
- end
98
-
99
- system("ruby #{test_name} > #{res_name}") or raise "could not run test in sandbox"
100
- File.read(res_name).chomp
101
- ensure
102
- File.delete(test_name) rescue nil
103
- File.delete(res_name) rescue nil
104
- end
105
- end
@@ -1,129 +0,0 @@
1
- require 'abstract_unit'
2
-
3
- class TestHelperMailer < ActionMailer::Base
4
- def test
5
- recipients "test@example.com"
6
- from "tester@example.com"
7
- body render(:inline => "Hello, <%= @world %>", :body => { :world => "Earth" })
8
- end
9
- end
10
-
11
- class TestHelperMailerTest < ActionMailer::TestCase
12
- def test_setup_sets_right_action_mailer_options
13
- assert_equal :test, ActionMailer::Base.delivery_method
14
- assert ActionMailer::Base.perform_deliveries
15
- assert_equal [], ActionMailer::Base.deliveries
16
- end
17
-
18
- def test_setup_creates_the_expected_mailer
19
- assert @expected.is_a?(TMail::Mail)
20
- assert_equal "1.0", @expected.mime_version
21
- assert_equal "text/plain", @expected.content_type
22
- end
23
-
24
- def test_mailer_class_is_correctly_inferred
25
- assert_equal TestHelperMailer, self.class.mailer_class
26
- end
27
-
28
- def test_determine_default_mailer_raises_correct_error
29
- assert_raise(ActionMailer::NonInferrableMailerError) do
30
- self.class.determine_default_mailer("NotAMailerTest")
31
- end
32
- end
33
-
34
- def test_charset_is_utf_8
35
- assert_equal "utf-8", charset
36
- end
37
-
38
- def test_encode
39
- assert_equal "=?utf-8?Q?=0Aasdf=0A?=", encode("\nasdf\n")
40
- end
41
-
42
- def test_assert_emails
43
- assert_nothing_raised do
44
- assert_emails 1 do
45
- TestHelperMailer.deliver_test
46
- end
47
- end
48
- end
49
-
50
- def test_repeated_assert_emails_calls
51
- assert_nothing_raised do
52
- assert_emails 1 do
53
- TestHelperMailer.deliver_test
54
- end
55
- end
56
-
57
- assert_nothing_raised do
58
- assert_emails 2 do
59
- TestHelperMailer.deliver_test
60
- TestHelperMailer.deliver_test
61
- end
62
- end
63
- end
64
-
65
- def test_assert_emails_with_no_block
66
- assert_nothing_raised do
67
- TestHelperMailer.deliver_test
68
- assert_emails 1
69
- end
70
-
71
- assert_nothing_raised do
72
- TestHelperMailer.deliver_test
73
- TestHelperMailer.deliver_test
74
- assert_emails 3
75
- end
76
- end
77
-
78
- def test_assert_no_emails
79
- assert_nothing_raised do
80
- assert_no_emails do
81
- TestHelperMailer.create_test
82
- end
83
- end
84
- end
85
-
86
- def test_assert_emails_too_few_sent
87
- error = assert_raise ActiveSupport::TestCase::Assertion do
88
- assert_emails 2 do
89
- TestHelperMailer.deliver_test
90
- end
91
- end
92
-
93
- assert_match /2 .* but 1/, error.message
94
- end
95
-
96
- def test_assert_emails_too_many_sent
97
- error = assert_raise ActiveSupport::TestCase::Assertion do
98
- assert_emails 1 do
99
- TestHelperMailer.deliver_test
100
- TestHelperMailer.deliver_test
101
- end
102
- end
103
-
104
- assert_match /1 .* but 2/, error.message
105
- end
106
-
107
- def test_assert_no_emails_failure
108
- error = assert_raise ActiveSupport::TestCase::Assertion do
109
- assert_no_emails do
110
- TestHelperMailer.deliver_test
111
- end
112
- end
113
-
114
- assert_match /0 .* but 1/, error.message
115
- end
116
- end
117
-
118
- class AnotherTestHelperMailerTest < ActionMailer::TestCase
119
- tests TestHelperMailer
120
-
121
- def setup
122
- @test_var = "a value"
123
- end
124
-
125
- def test_setup_shouldnt_conflict_with_mailer_setup
126
- assert @expected.is_a?(TMail::Mail)
127
- assert_equal 'a value', @test_var
128
- end
129
- end
data/test/tmail_test.rb DELETED
@@ -1,22 +0,0 @@
1
- require 'abstract_unit'
2
-
3
- class TMailMailTest < Test::Unit::TestCase
4
- def test_body
5
- m = TMail::Mail.new
6
- expected = 'something_with_underscores'
7
- m.encoding = 'quoted-printable'
8
- quoted_body = [expected].pack('*M')
9
- m.body = quoted_body
10
- assert_equal "something_with_underscores=\n", m.quoted_body
11
- assert_equal expected, m.body
12
- end
13
-
14
- def test_nested_attachments_are_recognized_correctly
15
- fixture = File.read("#{File.dirname(__FILE__)}/fixtures/raw_email_with_nested_attachment")
16
- mail = TMail::Mail.parse(fixture)
17
- assert_equal 2, mail.attachments.length
18
- assert_equal "image/png", mail.attachments.first.content_type
19
- assert_equal 1902, mail.attachments.first.length
20
- assert_equal "application/pkcs7-signature", mail.attachments.last.content_type
21
- end
22
- end
data/test/url_test.rb DELETED
@@ -1,76 +0,0 @@
1
- require 'abstract_unit'
2
-
3
- class TestMailer < ActionMailer::Base
4
-
5
- default_url_options[:host] = 'www.basecamphq.com'
6
-
7
- def signed_up_with_url(recipient)
8
- @recipients = recipient
9
- @subject = "[Signed up] Welcome #{recipient}"
10
- @from = "system@loudthinking.com"
11
- @sent_on = Time.local(2004, 12, 12)
12
-
13
- @body["recipient"] = recipient
14
- @body["welcome_url"] = url_for :host => "example.com", :controller => "welcome", :action => "greeting"
15
- end
16
-
17
- class <<self
18
- attr_accessor :received_body
19
- end
20
-
21
- def receive(mail)
22
- self.class.received_body = mail.body
23
- end
24
- end
25
-
26
- class ActionMailerUrlTest < Test::Unit::TestCase
27
- include ActionMailer::Quoting
28
-
29
- def encode( text, charset="utf-8" )
30
- quoted_printable( text, charset )
31
- end
32
-
33
- def new_mail( charset="utf-8" )
34
- mail = TMail::Mail.new
35
- mail.mime_version = "1.0"
36
- if charset
37
- mail.set_content_type "text", "plain", { "charset" => charset }
38
- end
39
- mail
40
- end
41
-
42
- def setup
43
- set_delivery_method :test
44
- ActionMailer::Base.perform_deliveries = true
45
- ActionMailer::Base.deliveries = []
46
-
47
- @recipient = 'test@localhost'
48
- end
49
-
50
- def teardown
51
- restore_delivery_method
52
- end
53
-
54
- def test_signed_up_with_url
55
- ActionController::Routing::Routes.draw do |map|
56
- map.connect ':controller/:action/:id'
57
- map.welcome 'welcome', :controller=>"foo", :action=>"bar"
58
- end
59
-
60
- expected = new_mail
61
- expected.to = @recipient
62
- expected.subject = "[Signed up] Welcome #{@recipient}"
63
- expected.body = "Hello there, \n\nMr. #{@recipient}. Please see our greeting at http://example.com/welcome/greeting http://www.basecamphq.com/welcome\n\n<img alt=\"Somelogo\" src=\"/images/somelogo.png\" />"
64
- expected.from = "system@loudthinking.com"
65
- expected.date = Time.local(2004, 12, 12)
66
-
67
- created = nil
68
- assert_nothing_raised { created = TestMailer.create_signed_up_with_url(@recipient) }
69
- assert_not_nil created
70
- assert_equal expected.encoded, created.encoded
71
-
72
- assert_nothing_raised { TestMailer.deliver_signed_up_with_url(@recipient) }
73
- assert_not_nil ActionMailer::Base.deliveries.first
74
- assert_equal expected.encoded, ActionMailer::Base.deliveries.first.encoded
75
- end
76
- end