aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailer
diff options
context:
space:
mode:
authorJosé Valim and Mikel Lindsaar <pair@programming.com>2010-01-25 21:47:03 +1100
committerJosé Valim and Mikel Lindsaar <pair@programming.com>2010-01-25 21:47:03 +1100
commitace74974cf3575bbd3bf7ff4d8a83c3100fd22a9 (patch)
treeee3f53d8257623cd8544eee40528ddea74096a33 /actionmailer
parent4240369a4399b944a0652807c545ffe99d7fb0cd (diff)
downloadrails-ace74974cf3575bbd3bf7ff4d8a83c3100fd22a9.tar.gz
rails-ace74974cf3575bbd3bf7ff4d8a83c3100fd22a9.tar.bz2
rails-ace74974cf3575bbd3bf7ff4d8a83c3100fd22a9.zip
Got AM working with Mail yield on delivery_handler and updated tests
Diffstat (limited to 'actionmailer')
-rw-r--r--actionmailer/actionmailer.gemspec2
-rw-r--r--actionmailer/lib/action_mailer/base.rb9
-rw-r--r--actionmailer/lib/action_mailer/delivery_methods.rb4
-rw-r--r--actionmailer/test/base_test.rb7
-rw-r--r--actionmailer/test/delivery_methods_test.rb4
-rw-r--r--actionmailer/test/old_base/mail_service_test.rb8
-rw-r--r--actionmailer/test/old_base/url_test.rb2
7 files changed, 23 insertions, 13 deletions
diff --git a/actionmailer/actionmailer.gemspec b/actionmailer/actionmailer.gemspec
index 4f53c709c4..a3d466c986 100644
--- a/actionmailer/actionmailer.gemspec
+++ b/actionmailer/actionmailer.gemspec
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
s.homepage = "http://www.rubyonrails.org"
s.add_dependency('actionpack', '= 3.0.pre')
- s.add_dependency('mail', '~> 2.0.5')
+ s.add_dependency('mail', '~> 2.0.6')
s.files = Dir['CHANGELOG', 'README', 'MIT-LICENSE', 'lib/**/*']
s.has_rdoc = true
diff --git a/actionmailer/lib/action_mailer/base.rb b/actionmailer/lib/action_mailer/base.rb
index 4e5e1bbb29..47d0ffaf68 100644
--- a/actionmailer/lib/action_mailer/base.rb
+++ b/actionmailer/lib/action_mailer/base.rb
@@ -330,14 +330,7 @@ module ActionMailer #:nodoc:
ActiveSupport::Notifications.instrument("action_mailer.deliver") do |payload|
self.set_payload_for_mail(payload, mail)
- if mail.perform_deliveries
- begin
- mail.deliver!
- rescue Exception => e
- raise e if mail.raise_delivery_errors
- end
- Mail.deliveries << mail
- end
+ yield # Let Mail do the delivery actions
end
end
diff --git a/actionmailer/lib/action_mailer/delivery_methods.rb b/actionmailer/lib/action_mailer/delivery_methods.rb
index 7a6b410932..34bfe6000a 100644
--- a/actionmailer/lib/action_mailer/delivery_methods.rb
+++ b/actionmailer/lib/action_mailer/delivery_methods.rb
@@ -40,8 +40,8 @@ module ActionMailer
end
module ClassMethods
- # Provides a list of emails that have been delivered by Mail
- delegate :deliveries, :deliveries=, :to => Mail
+ # Provides a list of emails that have been delivered by Mail::TestMailer
+ delegate :deliveries, :deliveries=, :to => Mail::TestMailer
# Adds a new delivery method through the given class using the given symbol
# as alias and the default options supplied:
diff --git a/actionmailer/test/base_test.rb b/actionmailer/test/base_test.rb
index 81e1df3911..0705f22df8 100644
--- a/actionmailer/test/base_test.rb
+++ b/actionmailer/test/base_test.rb
@@ -363,6 +363,13 @@ class BaseTest < ActiveSupport::TestCase
BaseMailer.welcome.deliver
assert_equal(1, BaseMailer.deliveries.length)
end
+
+ test "calling deliver, ActionMailer should yield back to mail to let it call :do_delivery on itself" do
+ mail = Mail::Message.new
+ mail.expects(:do_delivery).once
+ BaseMailer.expects(:welcome).returns(mail)
+ BaseMailer.welcome.deliver
+ end
protected
diff --git a/actionmailer/test/delivery_methods_test.rb b/actionmailer/test/delivery_methods_test.rb
index e70e8acd9b..4907ca0903 100644
--- a/actionmailer/test/delivery_methods_test.rb
+++ b/actionmailer/test/delivery_methods_test.rb
@@ -159,12 +159,12 @@ class MailDeliveryTest < ActiveSupport::TestCase
end
end
- test "increments the deliveries collection on bogus deliveries if set to ignore" do
+ test "does not increment the deliveries collection on bogus deliveries" do
DeliveryMailer.delivery_method = BogusDelivery
DeliveryMailer.raise_delivery_errors = false
DeliveryMailer.deliveries.clear
DeliveryMailer.welcome.deliver
- assert_equal(1, DeliveryMailer.deliveries.length)
+ assert_equal(0, DeliveryMailer.deliveries.length)
end
end \ No newline at end of file
diff --git a/actionmailer/test/old_base/mail_service_test.rb b/actionmailer/test/old_base/mail_service_test.rb
index 2e33abf9d6..fb784328bc 100644
--- a/actionmailer/test/old_base/mail_service_test.rb
+++ b/actionmailer/test/old_base/mail_service_test.rb
@@ -387,6 +387,8 @@ class ActionMailerTest < Test::Unit::TestCase
end
def test_signed_up
+ TestMailer.delivery_method = :test
+
Time.stubs(:now => Time.now)
expected = new_mail
@@ -533,6 +535,8 @@ class ActionMailerTest < Test::Unit::TestCase
end
def test_reply_to
+ TestMailer.delivery_method = :test
+
expected = new_mail
expected.to = @recipient
@@ -567,6 +571,8 @@ class ActionMailerTest < Test::Unit::TestCase
end
def test_iso_charset
+ TestMailer.delivery_method = :test
+
expected = new_mail( "iso-8859-1" )
expected.to = @recipient
expected.subject = encode "testing isø charsets", "iso-8859-1"
@@ -601,6 +607,7 @@ class ActionMailerTest < Test::Unit::TestCase
end
def test_unencoded_subject
+ TestMailer.delivery_method = :test
expected = new_mail
expected.to = @recipient
expected.subject = "testing unencoded subject"
@@ -1029,6 +1036,7 @@ EOF
end
def test_with_mail_object_deliver
+ TestMailer.delivery_method = :test
mail = TestMailer.headers_with_nonalpha_chars(@recipient)
assert_nothing_raised { mail.deliver }
assert_equal 1, TestMailer.deliveries.length
diff --git a/actionmailer/test/old_base/url_test.rb b/actionmailer/test/old_base/url_test.rb
index 10b6a36efd..5affb47997 100644
--- a/actionmailer/test/old_base/url_test.rb
+++ b/actionmailer/test/old_base/url_test.rb
@@ -54,6 +54,8 @@ class ActionMailerUrlTest < Test::Unit::TestCase
end
def test_signed_up_with_url
+ TestMailer.delivery_method = :test
+
ActionController::Routing::Routes.draw do |map|
map.connect ':controller/:action/:id'
map.welcome 'welcome', :controller=>"foo", :action=>"bar"