aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailer/test/delivery_method_test.rb
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2010-01-19 15:34:58 +0100
committerJosé Valim <jose.valim@gmail.com>2010-01-19 15:34:58 +0100
commite10f51b6b7b6260824cc86085be49cae216cf06c (patch)
tree58fbb3c36679fe1145f033abb8641b8a3448bbcf /actionmailer/test/delivery_method_test.rb
parentf32e3aff5f1e63f00bb0c5a5b5a9bbdf278443f9 (diff)
downloadrails-e10f51b6b7b6260824cc86085be49cae216cf06c.tar.gz
rails-e10f51b6b7b6260824cc86085be49cae216cf06c.tar.bz2
rails-e10f51b6b7b6260824cc86085be49cae216cf06c.zip
Refactor delivery methods.
Diffstat (limited to 'actionmailer/test/delivery_method_test.rb')
-rw-r--r--actionmailer/test/delivery_method_test.rb115
1 files changed, 24 insertions, 91 deletions
diff --git a/actionmailer/test/delivery_method_test.rb b/actionmailer/test/delivery_method_test.rb
index fb43086423..1e7408d6d6 100644
--- a/actionmailer/test/delivery_method_test.rb
+++ b/actionmailer/test/delivery_method_test.rb
@@ -1,41 +1,14 @@
require 'abstract_unit'
require 'mail'
-class DefaultDeliveryMethodMailer < ActionMailer::Base
+class MyCustomDelivery
end
-class NonDefaultDeliveryMethodMailer < ActionMailer::Base
- self.delivery_method = :sendmail
-end
-
-class FileDeliveryMethodMailer < ActionMailer::Base
- self.delivery_method = :file
-end
-
-class CustomDeliveryMethod
-
- def initialize(values)
- @custom_deliveries = []
- end
-
- attr_accessor :custom_deliveries
-
- attr_accessor :settings
-
- def deliver!(mail)
- self.custom_deliveries << mail
- end
-end
-
-class CustomerDeliveryMailer < ActionMailer::Base
- self.delivery_method = CustomDeliveryMethod
-end
-
-class ActionMailerBase_delivery_method_Test < Test::Unit::TestCase
+class DefaultsDeliveryMethodsTest < ActionMailer::TestCase
def setup
set_delivery_method :smtp
end
-
+
def teardown
restore_delivery_method
end
@@ -54,87 +27,47 @@ class ActionMailerBase_delivery_method_Test < Test::Unit::TestCase
:enable_starttls_auto => true }
assert_equal settings, ActionMailer::Base.smtp_settings
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
- 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
- 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
- assert_equal :sendmail, NonDefaultDeliveryMethodMailer.delivery_method
+ def test_should_have_default_file_delivery_method_settings
+ settings = {:location => "#{Dir.tmpdir}/mails"}
+ assert_equal settings, ActionMailer::Base.file_settings
end
def test_should_have_default_sendmail_delivery_method_settings
settings = {:location => '/usr/sbin/sendmail',
:arguments => '-i -t'}
- assert_equal settings, NonDefaultDeliveryMethodMailer.sendmail_settings
+ assert_equal settings, ActionMailer::Base.sendmail_settings
end
end
-class FileDeliveryMethodMailer_delivery_method_Test < Test::Unit::TestCase
+class CustomDeliveryMethodsTest < ActionMailer::TestCase
def setup
- set_delivery_method :smtp
+ ActionMailer::Base.add_delivery_method :custom, MyCustomDelivery
end
def teardown
- restore_delivery_method
- end
-
- def test_should_be_the_set_delivery_method
- assert_equal :file, FileDeliveryMethodMailer.delivery_method
- end
-
- def test_should_have_default_file_delivery_method_settings
- settings = {:location => "#{Dir.tmpdir}/mails"}
- assert_equal settings, FileDeliveryMethodMailer.file_settings
+ ActionMailer::Base.delivery_methods.delete(:custom)
+ ActionMailer::Base.delivery_settings.delete(:custom)
end
-end
-class CustomDeliveryMethodMailer_delivery_method_Test < Test::Unit::TestCase
- def setup
- set_delivery_method :smtp
+ def test_allow_to_add_a_custom_delivery_method
+ ActionMailer::Base.delivery_method = :custom
+ assert_equal :custom, ActionMailer::Base.delivery_method
end
- def teardown
- restore_delivery_method
+ def test_allow_to_customize_custom_settings
+ ActionMailer::Base.custom_settings = { :foo => :bar }
+ assert_equal Hash[:foo => :bar], ActionMailer::Base.custom_settings
end
- def test_should_be_the_set_delivery_method
- assert_equal CustomDeliveryMethod, CustomerDeliveryMailer.delivery_method
+ def test_respond_to_custom_method_settings
+ assert_respond_to ActionMailer::Base, :custom_settings
+ assert_respond_to ActionMailer::Base, :custom_settings=
end
- def test_should_have_default_custom_delivery_method_settings
- settings = {}
- assert_equal settings, CustomerDeliveryMailer.custom_settings
+ def test_should_not_respond_for_invalid_method_settings
+ assert_raise NoMethodError do
+ ActionMailer::Base.another_settings
+ end
end
end