aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailer
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2008-01-05 13:34:15 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2008-01-05 13:34:15 +0000
commit139b92495fa7697cdd619c549d4c7b263562b761 (patch)
tree20589f9f23d3b19697fed12bb1bf5ce48ef595af /actionmailer
parentfe66397adfb5a8057db78afcabd4d7eb0f13a783 (diff)
downloadrails-139b92495fa7697cdd619c549d4c7b263562b761.tar.gz
rails-139b92495fa7697cdd619c549d4c7b263562b761.tar.bz2
rails-139b92495fa7697cdd619c549d4c7b263562b761.zip
* Continue evolution toward ActiveSupport::TestCase and friends. #10679 [Josh Peek]
* TestCase: introduce declared setup and teardown callbacks. Pass a list of methods and an optional block to call before setup or after teardown. Setup callbacks are run in the order declared; teardown callbacks are run in reverse. [Jeremy Kemper] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8570 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionmailer')
-rw-r--r--actionmailer/lib/action_mailer/test_case.rb36
-rw-r--r--actionmailer/test/test_helper_test.rb10
2 files changed, 16 insertions, 30 deletions
diff --git a/actionmailer/lib/action_mailer/test_case.rb b/actionmailer/lib/action_mailer/test_case.rb
index 7829baa799..d474afe3a2 100644
--- a/actionmailer/lib/action_mailer/test_case.rb
+++ b/actionmailer/lib/action_mailer/test_case.rb
@@ -8,11 +8,13 @@ module ActionMailer
"test case definition"
end
end
- # New Test Super class for forward compatibility.
- # To override
+
class TestCase < ActiveSupport::TestCase
include ActionMailer::Quoting
+ setup :initialize_test_deliveries
+ setup :set_expected_mail
+
class << self
def tests(mailer)
write_inheritable_attribute(:mailer_class, mailer)
@@ -33,28 +35,18 @@ module ActionMailer
end
end
- def setup_with_mailer
- ActionMailer::Base.delivery_method = :test
- ActionMailer::Base.perform_deliveries = true
- ActionMailer::Base.deliveries = []
-
- @expected = TMail::Mail.new
- @expected.set_content_type "text", "plain", { "charset" => charset }
- @expected.mime_version = '1.0'
- end
- alias_method :setup, :setup_with_mailer
+ protected
+ def initialize_test_deliveries
+ ActionMailer::Base.delivery_method = :test
+ ActionMailer::Base.perform_deliveries = true
+ ActionMailer::Base.deliveries = []
+ end
- def self.method_added(method)
- if method.to_s == 'setup'
- unless method_defined?(:setup_without_mailer)
- alias_method :setup_without_mailer, :setup
- define_method(:setup) do
- setup_with_mailer
- setup_without_mailer
- end
- end
+ def set_expected_mail
+ @expected = TMail::Mail.new
+ @expected.set_content_type "text", "plain", { "charset" => charset }
+ @expected.mime_version = '1.0'
end
- end
private
def charset
diff --git a/actionmailer/test/test_helper_test.rb b/actionmailer/test/test_helper_test.rb
index ab14bcc561..f8913e548c 100644
--- a/actionmailer/test/test_helper_test.rb
+++ b/actionmailer/test/test_helper_test.rb
@@ -9,7 +9,6 @@ class TestHelperMailer < ActionMailer::Base
end
class TestHelperMailerTest < ActionMailer::TestCase
-
def test_setup_sets_right_action_mailer_options
assert_equal :test, ActionMailer::Base.delivery_method
assert ActionMailer::Base.perform_deliveries
@@ -117,19 +116,14 @@ class TestHelperMailerTest < ActionMailer::TestCase
end
class AnotherTestHelperMailerTest < ActionMailer::TestCase
-
tests TestHelperMailer
def setup
- # Should not override ActionMailer setup methods
@test_var = "a value"
end
- def test_should_still_setup_mailer
+ def test_setup_shouldnt_conflict_with_mailer_setup
assert @expected.is_a?(TMail::Mail)
- end
-
- def test_should_run_overridden_setup_method
- assert @test_var
+ assert_equal 'a value', @test_var
end
end