2008-01-05 13:32:22 +00:00
|
|
|
require 'abstract_unit'
|
2010-01-16 11:10:11 +00:00
|
|
|
require 'mail'
|
2007-11-07 16:05:17 +00:00
|
|
|
|
|
|
|
class DefaultDeliveryMethodMailer < ActionMailer::Base
|
|
|
|
end
|
|
|
|
|
|
|
|
class NonDefaultDeliveryMethodMailer < ActionMailer::Base
|
|
|
|
self.delivery_method = :sendmail
|
|
|
|
end
|
|
|
|
|
2009-08-08 03:56:54 +00:00
|
|
|
class FileDeliveryMethodMailer < ActionMailer::Base
|
|
|
|
self.delivery_method = :file
|
|
|
|
end
|
|
|
|
|
2009-10-28 09:17:59 +00:00
|
|
|
class CustomDeliveryMethod
|
2010-01-16 11:10:11 +00:00
|
|
|
|
|
|
|
def initialize(values)
|
|
|
|
@custom_deliveries = []
|
2009-10-28 09:17:59 +00:00
|
|
|
end
|
|
|
|
|
2010-01-16 11:10:11 +00:00
|
|
|
attr_accessor :custom_deliveries
|
|
|
|
|
|
|
|
attr_accessor :settings
|
|
|
|
|
|
|
|
def deliver!(mail)
|
2009-10-28 09:17:59 +00:00
|
|
|
self.custom_deliveries << mail
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
class CustomerDeliveryMailer < ActionMailer::Base
|
2010-01-16 11:10:11 +00:00
|
|
|
self.delivery_method = CustomDeliveryMethod
|
2009-10-28 09:17:59 +00:00
|
|
|
end
|
|
|
|
|
2007-11-07 16:05:17 +00:00
|
|
|
class ActionMailerBase_delivery_method_Test < Test::Unit::TestCase
|
|
|
|
def setup
|
|
|
|
set_delivery_method :smtp
|
|
|
|
end
|
|
|
|
|
|
|
|
def teardown
|
|
|
|
restore_delivery_method
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_should_be_the_default_smtp
|
2010-01-16 11:10:11 +00:00
|
|
|
assert_equal :smtp, ActionMailer::Base.delivery_method
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_should_have_default_smtp_delivery_method_settings
|
|
|
|
settings = { :address => "localhost",
|
|
|
|
:port => 25,
|
|
|
|
:domain => 'localhost.localdomain',
|
|
|
|
:user_name => nil,
|
|
|
|
:password => nil,
|
|
|
|
:authentication => nil,
|
|
|
|
:enable_starttls_auto => true }
|
|
|
|
assert_equal settings, ActionMailer::Base.smtp_settings
|
2007-11-07 16:05:17 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
class DefaultDeliveryMethodMailer_delivery_method_Test < Test::Unit::TestCase
|
|
|
|
def setup
|
|
|
|
set_delivery_method :smtp
|
|
|
|
end
|
|
|
|
|
|
|
|
def teardown
|
|
|
|
restore_delivery_method
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_should_be_the_default_smtp
|
2010-01-16 11:10:11 +00:00
|
|
|
assert_equal :smtp, DefaultDeliveryMethodMailer.delivery_method
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_should_have_default_smtp_delivery_method_settings
|
|
|
|
settings = { :address => "localhost",
|
|
|
|
:port => 25,
|
|
|
|
:domain => 'localhost.localdomain',
|
|
|
|
:user_name => nil,
|
|
|
|
:password => nil,
|
|
|
|
:authentication => nil,
|
|
|
|
:enable_starttls_auto => true }
|
|
|
|
assert_equal settings, DefaultDeliveryMethodMailer.smtp_settings
|
2007-11-07 16:05:17 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
class NonDefaultDeliveryMethodMailer_delivery_method_Test < Test::Unit::TestCase
|
|
|
|
def setup
|
|
|
|
set_delivery_method :smtp
|
|
|
|
end
|
|
|
|
|
|
|
|
def teardown
|
|
|
|
restore_delivery_method
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_should_be_the_set_delivery_method
|
2010-01-16 11:10:11 +00:00
|
|
|
assert_equal :sendmail, NonDefaultDeliveryMethodMailer.delivery_method
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_should_have_default_sendmail_delivery_method_settings
|
|
|
|
settings = {:location => '/usr/sbin/sendmail',
|
|
|
|
:arguments => '-i -t'}
|
|
|
|
assert_equal settings, NonDefaultDeliveryMethodMailer.sendmail_settings
|
2007-11-07 16:05:17 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2009-08-08 03:56:54 +00:00
|
|
|
class FileDeliveryMethodMailer_delivery_method_Test < Test::Unit::TestCase
|
|
|
|
def setup
|
|
|
|
set_delivery_method :smtp
|
|
|
|
end
|
|
|
|
|
|
|
|
def teardown
|
|
|
|
restore_delivery_method
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_should_be_the_set_delivery_method
|
2010-01-16 11:10:11 +00:00
|
|
|
assert_equal :file, FileDeliveryMethodMailer.delivery_method
|
2009-08-08 03:56:54 +00:00
|
|
|
end
|
|
|
|
|
2010-01-16 11:10:11 +00:00
|
|
|
def test_should_have_default_file_delivery_method_settings
|
|
|
|
settings = {:location => "#{Dir.tmpdir}/mails"}
|
|
|
|
assert_equal settings, FileDeliveryMethodMailer.file_settings
|
2009-08-08 03:56:54 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2009-10-28 09:17:59 +00:00
|
|
|
class CustomDeliveryMethodMailer_delivery_method_Test < Test::Unit::TestCase
|
|
|
|
def setup
|
|
|
|
set_delivery_method :smtp
|
|
|
|
end
|
|
|
|
|
|
|
|
def teardown
|
|
|
|
restore_delivery_method
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_should_be_the_set_delivery_method
|
2010-01-16 11:10:11 +00:00
|
|
|
assert_equal CustomDeliveryMethod, CustomerDeliveryMailer.delivery_method
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_should_have_default_custom_delivery_method_settings
|
|
|
|
settings = {}
|
|
|
|
assert_equal settings, CustomerDeliveryMailer.custom_settings
|
2009-10-28 09:17:59 +00:00
|
|
|
end
|
|
|
|
end
|