diff options
Diffstat (limited to 'actionmailer/test')
-rw-r--r-- | actionmailer/test/abstract_unit.rb | 8 | ||||
-rw-r--r-- | actionmailer/test/asset_host_test.rb | 54 | ||||
-rw-r--r-- | actionmailer/test/fixtures/asset_host_mailer/email_with_asset.html.erb | 1 | ||||
-rw-r--r-- | actionmailer/test/fixtures/auto_layout_mailer/multipart.text.html.erb | 1 | ||||
-rw-r--r-- | actionmailer/test/fixtures/auto_layout_mailer/multipart.text.plain.erb | 1 | ||||
-rw-r--r-- | actionmailer/test/fixtures/layouts/auto_layout_mailer.text.erb | 1 | ||||
-rw-r--r-- | actionmailer/test/mail_layout_test.rb | 17 | ||||
-rw-r--r-- | actionmailer/test/mail_service_test.rb | 28 | ||||
-rw-r--r-- | actionmailer/test/quoting_test.rb | 1 | ||||
-rw-r--r-- | actionmailer/test/test_helper_test.rb | 8 |
10 files changed, 113 insertions, 7 deletions
diff --git a/actionmailer/test/abstract_unit.rb b/actionmailer/test/abstract_unit.rb index 905f25c9f7..1617b88c8e 100644 --- a/actionmailer/test/abstract_unit.rb +++ b/actionmailer/test/abstract_unit.rb @@ -24,11 +24,15 @@ class MockSMTP def sendmail(mail, from, to) @@deliveries << [mail, from, to] end + + def start(*args) + yield self + end end class Net::SMTP - def self.start(*args) - yield MockSMTP.new + def self.new(*args) + MockSMTP.new end end diff --git a/actionmailer/test/asset_host_test.rb b/actionmailer/test/asset_host_test.rb new file mode 100644 index 0000000000..1c92dd266d --- /dev/null +++ b/actionmailer/test/asset_host_test.rb @@ -0,0 +1,54 @@ +require 'abstract_unit' + +class AssetHostMailer < ActionMailer::Base + def email_with_asset(recipient) + recipients recipient + subject "testing email containing asset path while asset_host is set" + from "tester@example.com" + end +end + +class AssetHostTest < Test::Unit::TestCase + def setup + set_delivery_method :test + ActionMailer::Base.perform_deliveries = true + ActionMailer::Base.deliveries = [] + + @recipient = 'test@localhost' + end + + def teardown + restore_delivery_method + end + + def test_asset_host_as_string + ActionController::Base.asset_host = "http://www.example.com" + mail = AssetHostMailer.deliver_email_with_asset(@recipient) + assert_equal "<img alt=\"Somelogo\" src=\"http://www.example.com/images/somelogo.png\" />", mail.body.strip + end + + def test_asset_host_as_one_arguement_proc + ActionController::Base.asset_host = Proc.new { |source| + if source.starts_with?('/images') + "http://images.example.com" + else + "http://assets.example.com" + end + } + mail = AssetHostMailer.deliver_email_with_asset(@recipient) + assert_equal "<img alt=\"Somelogo\" src=\"http://images.example.com/images/somelogo.png\" />", mail.body.strip + end + + def test_asset_host_as_two_arguement_proc + ActionController::Base.asset_host = Proc.new {|source,request| + if request && request.ssl? + "https://www.example.com" + else + "http://www.example.com" + end + } + mail = nil + assert_nothing_raised { mail = AssetHostMailer.deliver_email_with_asset(@recipient) } + assert_equal "<img alt=\"Somelogo\" src=\"http://www.example.com/images/somelogo.png\" />", mail.body.strip + end +end
\ No newline at end of file diff --git a/actionmailer/test/fixtures/asset_host_mailer/email_with_asset.html.erb b/actionmailer/test/fixtures/asset_host_mailer/email_with_asset.html.erb new file mode 100644 index 0000000000..b3f0438d03 --- /dev/null +++ b/actionmailer/test/fixtures/asset_host_mailer/email_with_asset.html.erb @@ -0,0 +1 @@ +<%= image_tag "somelogo.png" %>
\ No newline at end of file diff --git a/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.html.erb b/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.html.erb new file mode 100644 index 0000000000..6d73f199c4 --- /dev/null +++ b/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.html.erb @@ -0,0 +1 @@ +text/html multipart
\ No newline at end of file diff --git a/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.plain.erb b/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.plain.erb new file mode 100644 index 0000000000..f4b91e4031 --- /dev/null +++ b/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.plain.erb @@ -0,0 +1 @@ +text/plain multipart
\ No newline at end of file diff --git a/actionmailer/test/fixtures/layouts/auto_layout_mailer.text.erb b/actionmailer/test/fixtures/layouts/auto_layout_mailer.text.erb new file mode 100644 index 0000000000..111576b672 --- /dev/null +++ b/actionmailer/test/fixtures/layouts/auto_layout_mailer.text.erb @@ -0,0 +1 @@ +text/plain layout - <%= yield %>
\ No newline at end of file diff --git a/actionmailer/test/mail_layout_test.rb b/actionmailer/test/mail_layout_test.rb index ffba9a16bd..c185bd5acd 100644 --- a/actionmailer/test/mail_layout_test.rb +++ b/actionmailer/test/mail_layout_test.rb @@ -20,6 +20,12 @@ class AutoLayoutMailer < ActionMailer::Base from "tester@example.com" body render(:inline => "Hello, <%= @world %>", :layout => false, :body => { :world => "Earth" }) end + + def multipart(recipient) + recipients recipient + subject "You have a mail" + from "tester@example.com" + end end class ExplicitLayoutMailer < ActionMailer::Base @@ -56,6 +62,17 @@ class LayoutMailerTest < Test::Unit::TestCase assert_equal "Hello from layout Inside", mail.body.strip end + def test_should_pickup_multipart_layout + mail = AutoLayoutMailer.create_multipart(@recipient) + assert_equal 2, mail.parts.size + + assert_equal 'text/plain', mail.parts.first.content_type + assert_equal "text/plain layout - text/plain multipart", mail.parts.first.body + + assert_equal 'text/html', mail.parts.last.content_type + assert_equal "Hello from layout text/html multipart", mail.parts.last.body + end + def test_should_pickup_layout_given_to_render mail = AutoLayoutMailer.create_spam(@recipient) assert_equal "Spammer layout Hello, Earth", mail.body.strip diff --git a/actionmailer/test/mail_service_test.rb b/actionmailer/test/mail_service_test.rb index 7f9540c44b..c49049cc6a 100644 --- a/actionmailer/test/mail_service_test.rb +++ b/actionmailer/test/mail_service_test.rb @@ -915,6 +915,8 @@ EOF def test_multipart_with_template_path_with_dots mail = FunkyPathMailer.create_multipart_with_template_path_with_dots(@recipient) assert_equal 2, mail.parts.length + assert_equal 'text/plain', mail.parts[0].content_type + assert_equal 'utf-8', mail.parts[0].charset end def test_custom_content_type_attributes @@ -938,6 +940,20 @@ EOF mail = TestMailer.create_body_ivar(@recipient) assert_equal "body: foo\nbar: baz", mail.body end + + def test_starttls_is_enabled_if_supported + MockSMTP.any_instance.expects(:respond_to?).with(:enable_starttls_auto).returns(true) + MockSMTP.any_instance.expects(:enable_starttls_auto) + ActionMailer::Base.delivery_method = :smtp + TestMailer.deliver_signed_up(@recipient) + end + + def test_starttls_is_disabled_if_not_supported + MockSMTP.any_instance.expects(:respond_to?).with(:enable_starttls_auto).returns(false) + MockSMTP.any_instance.expects(:enable_starttls_auto).never + ActionMailer::Base.delivery_method = :smtp + TestMailer.deliver_signed_up(@recipient) + end end end # uses_mocha @@ -1031,4 +1047,16 @@ class RespondToTest < Test::Unit::TestCase def test_should_not_respond_to_deliver_with_template_suffix_if_it_begins_with_a_digit assert !RespondToMailer.respond_to?(:deliver_1_template) end + + def test_should_not_respond_to_method_where_deliver_is_not_a_suffix + assert !RespondToMailer.respond_to?(:foo_deliver_template) + end + + def test_should_still_raise_exception_with_expected_message_when_calling_an_undefined_method + error = assert_raises NoMethodError do + RespondToMailer.not_a_method + end + + assert_match /undefined method.*not_a_method/, error.message + end end diff --git a/actionmailer/test/quoting_test.rb b/actionmailer/test/quoting_test.rb index 13a859a5cc..2650efccdb 100644 --- a/actionmailer/test/quoting_test.rb +++ b/actionmailer/test/quoting_test.rb @@ -1,6 +1,5 @@ # encoding: utf-8 require 'abstract_unit' -require 'tmail' require 'tempfile' class QuotingTest < Test::Unit::TestCase diff --git a/actionmailer/test/test_helper_test.rb b/actionmailer/test/test_helper_test.rb index f8913e548c..9d22bb26bd 100644 --- a/actionmailer/test/test_helper_test.rb +++ b/actionmailer/test/test_helper_test.rb @@ -36,7 +36,7 @@ class TestHelperMailerTest < ActionMailer::TestCase end def test_encode - assert_equal "=?utf-8?Q?=0aasdf=0a?=", encode("\nasdf\n") + assert_equal "=?utf-8?Q?=0Aasdf=0A?=", encode("\nasdf\n") end def test_assert_emails @@ -84,7 +84,7 @@ class TestHelperMailerTest < ActionMailer::TestCase end def test_assert_emails_too_few_sent - error = assert_raises Test::Unit::AssertionFailedError do + error = assert_raises ActiveSupport::TestCase::Assertion do assert_emails 2 do TestHelperMailer.deliver_test end @@ -94,7 +94,7 @@ class TestHelperMailerTest < ActionMailer::TestCase end def test_assert_emails_too_many_sent - error = assert_raises Test::Unit::AssertionFailedError do + error = assert_raises ActiveSupport::TestCase::Assertion do assert_emails 1 do TestHelperMailer.deliver_test TestHelperMailer.deliver_test @@ -105,7 +105,7 @@ class TestHelperMailerTest < ActionMailer::TestCase end def test_assert_no_emails_failure - error = assert_raises Test::Unit::AssertionFailedError do + error = assert_raises ActiveSupport::TestCase::Assertion do assert_no_emails do TestHelperMailer.deliver_test end |