mirror of
https://github.com/github/rails.git
synced 2026-01-29 00:08:15 -05:00
Allow mailer actions named send by using __send__ internally. Closes #6467.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5505 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
*SVN*
|
||||
|
||||
* Allow mailer actions named send by using __send__ internally. #6467 [iGEL]
|
||||
|
||||
* Add assert_emails and assert_no_emails to test the number of emails delivered. #6479 [Jonathan Viney]
|
||||
# Assert total number of emails delivered:
|
||||
assert_emails 0
|
||||
|
||||
@@ -369,7 +369,7 @@ module ActionMailer #:nodoc:
|
||||
# rendered and a new TMail::Mail object created.
|
||||
def create!(method_name, *parameters) #:nodoc:
|
||||
initialize_defaults(method_name)
|
||||
send(method_name, *parameters)
|
||||
__send__(method_name, *parameters)
|
||||
|
||||
# If an explicit, textual body has not been set, we check assumptions.
|
||||
unless String === @body
|
||||
@@ -428,7 +428,7 @@ module ActionMailer #:nodoc:
|
||||
logger.info "Sent mail:\n #{mail.encoded}" unless logger.nil?
|
||||
|
||||
begin
|
||||
send("perform_delivery_#{delivery_method}", mail) if perform_deliveries
|
||||
__send__("perform_delivery_#{delivery_method}", mail) if perform_deliveries
|
||||
rescue Exception => e # Net::SMTP errors or sendmail pipe errors
|
||||
raise e if raise_delivery_errors
|
||||
end
|
||||
|
||||
@@ -801,3 +801,25 @@ class InheritableTemplateRootTest < Test::Unit::TestCase
|
||||
assert_equal expected, FunkyPathMailer.template_root
|
||||
end
|
||||
end
|
||||
|
||||
class MethodNamingTest < Test::Unit::TestCase
|
||||
class TestMailer < ActionMailer::Base
|
||||
def send
|
||||
body 'foo'
|
||||
end
|
||||
end
|
||||
|
||||
def setup
|
||||
ActionMailer::Base.delivery_method = :test
|
||||
ActionMailer::Base.perform_deliveries = true
|
||||
ActionMailer::Base.deliveries = []
|
||||
end
|
||||
|
||||
def test_send_method
|
||||
assert_nothing_raised do
|
||||
assert_emails 1 do
|
||||
TestMailer.deliver_send
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user