<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>activesupport/lib/active_support/testing/setup_and_teardown.rb</filename>
    </added>
    <added>
      <filename>activesupport/test/core_ext/load_error_test.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -8,11 +8,13 @@ module ActionMailer
         &quot;test case definition&quot;
     end
   end
-  # New Test Super class for forward compatibility.
-  # To override
+
   class TestCase &lt; ActiveSupport::TestCase
     include ActionMailer::Quoting
 
+    setup :initialize_test_deliveries
+    setup :set_expected_mail
+
     class &lt;&lt; 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 &quot;text&quot;, &quot;plain&quot;, { &quot;charset&quot; =&gt; 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 &quot;text&quot;, &quot;plain&quot;, { &quot;charset&quot; =&gt; charset }
+        @expected.mime_version = '1.0'
       end
-    end
 
     private
       def charset</diff>
      <filename>actionmailer/lib/action_mailer/test_case.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,6 @@ class TestHelperMailer &lt; ActionMailer::Base
 end
 
 class TestHelperMailerTest &lt; 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 &lt; ActionMailer::TestCase
 end
 
 class AnotherTestHelperMailerTest &lt; ActionMailer::TestCase
-
   tests TestHelperMailer
 
   def setup
-    # Should not override ActionMailer setup methods
     @test_var = &quot;a value&quot;
   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</diff>
      <filename>actionmailer/test/test_helper_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,16 @@ module ActionController
   end
 
   class TestCase &lt; ActiveSupport::TestCase
+    module RaiseActionExceptions
+      def rescue_action(e)
+        raise e
+      end
+    end
+
+    setup :setup_controller_request_and_response
+
     @@controller_class = nil
+
     class &lt;&lt; self
       def tests(controller_class)
         self.controller_class = controller_class
@@ -25,7 +34,7 @@ module ActionController
         if current_controller_class = read_inheritable_attribute(:controller_class)
           current_controller_class
         else
-          self.controller_class= determine_default_controller_class(name)
+          self.controller_class = determine_default_controller_class(name)
         end
       end
 
@@ -36,31 +45,14 @@ module ActionController
       end
 
       def prepare_controller_class(new_class)
-        new_class.class_eval do
-          def rescue_action(e)
-            raise e
-          end
-        end
+        new_class.send :include, RaiseActionExceptions
       end
     end
 
-    def setup_with_controller
+    def setup_controller_request_and_response
       @controller = self.class.controller_class.new
       @request    = TestRequest.new
       @response   = TestResponse.new
     end
-    alias_method :setup, :setup_with_controller
-
-    def self.method_added(method)
-      if method.to_s == 'setup'
-        unless method_defined?(:setup_without_controller)
-          alias_method :setup_without_controller, :setup
-          define_method(:setup) do
-            setup_with_controller
-            setup_without_controller
-          end
-        end
-      end
-    end
  end
 end</diff>
      <filename>actionpack/lib/action_controller/test_case.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require 'action_controller/assertions'
+require 'action_controller/test_case'
 
 module ActionController #:nodoc:
   class Base</diff>
      <filename>actionpack/lib/action_controller/test_process.rb</filename>
    </modified>
    <modified>
      <diff>@@ -84,7 +84,7 @@ class ActiveRecordTestConnector
   end
 end
 
-class ActiveRecordTestCase &lt; Test::Unit::TestCase
+class ActiveRecordTestCase &lt; ActiveSupport::TestCase
   # Set our fixture path
   if ActiveRecordTestConnector.able_to_connect
     self.fixture_path = &quot;#{File.dirname(__FILE__)}/fixtures/&quot;</diff>
      <filename>actionpack/test/active_record_unit.rb</filename>
    </modified>
    <modified>
      <diff>@@ -613,18 +613,9 @@ class InferringClassNameTest &lt; Test::Unit::TestCase
     end
 end
 
-class ContentControllerTest &lt; ActionController::TestCase
-  def setup
-    # Should not override ActionController setup methods
-  end
-
-  def test_should_still_setup_controller
-    assert_kind_of(ContentController, @controller)
-  end
-end
-
 class CrazyNameTest &lt; ActionController::TestCase
   tests ContentController
+
   def test_controller_class_can_be_set_manually_not_just_inferred
     assert_equal ContentController, self.class.controller_class
   end</diff>
      <filename>actionpack/test/controller/test_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,14 @@
 require 'erb'
 require 'yaml'
 require 'csv'
+require 'active_support/test_case'
 
-module YAML #:nodoc:
-  class Omap #:nodoc:
-    def keys;   map { |k, v| k } end
-    def values; map { |k, v| v } end
+if RUBY_VERSION &lt; '1.9'
+  module YAML #:nodoc:
+    class Omap #:nodoc:
+      def keys;   map { |k, v| k } end
+      def values; map { |k, v| v } end
+    end
   end
 end
 
@@ -29,7 +32,7 @@ end
 # in a non-verbose, human-readable format. It ships with Ruby 1.8.1+.
 #
 # Unlike single-file fixtures, YAML fixtures are stored in a single file per model, which are placed in the directory appointed
-# by &lt;tt&gt;Test::Unit::TestCase.fixture_path=(path)&lt;/tt&gt; (this is automatically configured for Rails, so you can just
+# by &lt;tt&gt;ActiveSupport::TestCase.fixture_path=(path)&lt;/tt&gt; (this is automatically configured for Rails, so you can just
 # put your files in &lt;your-rails-app&gt;/test/fixtures/). The fixture file ends with the .yml file extension (Rails example:
 # &quot;&lt;your-rails-app&gt;/test/fixtures/web_sites.yml&quot;). The format of a YAML fixture file looks like this:
 #
@@ -89,7 +92,7 @@ end
 #
 # This type of fixture was the original format for Active Record that has since been deprecated in favor of the YAML and CSV formats.
 # Fixtures for this format are created by placing text files in a sub-directory (with the name of the model) to the directory
-# appointed by &lt;tt&gt;Test::Unit::TestCase.fixture_path=(path)&lt;/tt&gt; (this is automatically configured for Rails, so you can just
+# appointed by &lt;tt&gt;ActiveSupport::TestCase.fixture_path=(path)&lt;/tt&gt; (this is automatically configured for Rails, so you can just
 # put your files in &lt;your-rails-app&gt;/test/fixtures/&lt;your-model-name&gt;/ -- like &lt;your-rails-app&gt;/test/fixtures/web_sites/ for the WebSite
 # model).
 #
@@ -115,7 +118,7 @@ end
 #
 #   require 'web_site'
 #
-#   class WebSiteTest &lt; Test::Unit::TestCase
+#   class WebSiteTest &lt; ActiveSupport::TestCase
 #     def test_web_site_count
 #       assert_equal 2, WebSite.count
 #     end
@@ -125,7 +128,7 @@ end
 # easiest way to add fixtures to the database:
 #
 #   ...
-#   class WebSiteTest &lt; Test::Unit::TestCase
+#   class WebSiteTest &lt; ActiveSupport::TestCase
 #     fixtures :web_sites # add more by separating the symbols with commas
 #   ...
 #
@@ -191,7 +194,7 @@ end
 # TestCases can use begin+rollback to isolate their changes to the database instead of having to delete+insert for every test case.
 # They can also turn off auto-instantiation of fixture data since the feature is costly and often unused.
 #
-#   class FooTest &lt; Test::Unit::TestCase
+#   class FooTest &lt; ActiveSupport::TestCase
 #     self.use_transactional_fixtures = true
 #     self.use_instantiated_fixtures = false
 #   
@@ -842,6 +845,9 @@ end
 module Test #:nodoc:
   module Unit #:nodoc:
     class TestCase #:nodoc:
+      setup :setup_fixtures
+      teardown :teardown_fixtures
+
       superclass_delegating_accessor :fixture_path
       superclass_delegating_accessor :fixture_table_names
       superclass_delegating_accessor :fixture_class_names
@@ -857,68 +863,70 @@ module Test #:nodoc:
       @@already_loaded_fixtures = {}
       self.fixture_class_names = {}
 
-      def self.set_fixture_class(class_names = {})
-        self.fixture_class_names = self.fixture_class_names.merge(class_names)
-      end
-
-      def self.fixtures(*table_names)
-        if table_names.first == :all
-          table_names = Dir[&quot;#{fixture_path}/*.yml&quot;] + Dir[&quot;#{fixture_path}/*.csv&quot;]
-          table_names.map! { |f| File.basename(f).split('.')[0..-2].join('.') }
-        else
-          table_names = table_names.flatten.map { |n| n.to_s }
+      class &lt;&lt; self
+        def set_fixture_class(class_names = {})
+          self.fixture_class_names = self.fixture_class_names.merge(class_names)
         end
 
-        self.fixture_table_names |= table_names
-        require_fixture_classes(table_names)
-        setup_fixture_accessors(table_names)
-      end
+        def fixtures(*table_names)
+          if table_names.first == :all
+            table_names = Dir[&quot;#{fixture_path}/*.yml&quot;] + Dir[&quot;#{fixture_path}/*.csv&quot;]
+            table_names.map! { |f| File.basename(f).split('.')[0..-2].join('.') }
+          else
+            table_names = table_names.flatten.map { |n| n.to_s }
+          end
 
-      def self.require_fixture_classes(table_names = nil)
-        (table_names || fixture_table_names).each do |table_name|
-          file_name = table_name.to_s
-          file_name = file_name.singularize if ActiveRecord::Base.pluralize_table_names
-          begin
-            require_dependency file_name
-          rescue LoadError
-            # Let's hope the developer has included it himself
+          self.fixture_table_names |= table_names
+          require_fixture_classes(table_names)
+          setup_fixture_accessors(table_names)
+        end
+
+        def require_fixture_classes(table_names = nil)
+          (table_names || fixture_table_names).each do |table_name|
+            file_name = table_name.to_s
+            file_name = file_name.singularize if ActiveRecord::Base.pluralize_table_names
+            begin
+              require_dependency file_name
+            rescue LoadError
+              # Let's hope the developer has included it himself
+            end
           end
         end
-      end
 
-      def self.setup_fixture_accessors(table_names = nil)
-        table_names = [table_names] if table_names &amp;&amp; !table_names.respond_to?(:each)
-        (table_names || fixture_table_names).each do |table_name|
-          table_name = table_name.to_s.tr('.', '_')
+        def setup_fixture_accessors(table_names = nil)
+          table_names = [table_names] if table_names &amp;&amp; !table_names.respond_to?(:each)
+          (table_names || fixture_table_names).each do |table_name|
+            table_name = table_name.to_s.tr('.', '_')
 
-          define_method(table_name) do |*fixtures|
-            force_reload = fixtures.pop if fixtures.last == true || fixtures.last == :reload
+            define_method(table_name) do |*fixtures|
+              force_reload = fixtures.pop if fixtures.last == true || fixtures.last == :reload
 
-            @fixture_cache[table_name] ||= {}
+              @fixture_cache[table_name] ||= {}
 
-            instances = fixtures.map do |fixture|
-              @fixture_cache[table_name].delete(fixture) if force_reload
+              instances = fixtures.map do |fixture|
+                @fixture_cache[table_name].delete(fixture) if force_reload
 
-              if @loaded_fixtures[table_name][fixture.to_s]
-                @fixture_cache[table_name][fixture] ||= @loaded_fixtures[table_name][fixture.to_s].find
-              else
-                raise StandardError, &quot;No fixture with name '#{fixture}' found for table '#{table_name}'&quot;
+                if @loaded_fixtures[table_name][fixture.to_s]
+                  @fixture_cache[table_name][fixture] ||= @loaded_fixtures[table_name][fixture.to_s].find
+                else
+                  raise StandardError, &quot;No fixture with name '#{fixture}' found for table '#{table_name}'&quot;
+                end
               end
-            end
 
-            instances.size == 1 ? instances.first : instances
+              instances.size == 1 ? instances.first : instances
+            end
           end
         end
-      end
 
-      def self.uses_transaction(*methods)
-        @uses_transaction = [] unless defined?(@uses_transaction)
-        @uses_transaction.concat methods.map(&amp;:to_s)
-      end
+        def uses_transaction(*methods)
+          @uses_transaction = [] unless defined?(@uses_transaction)
+          @uses_transaction.concat methods.map(&amp;:to_s)
+        end
 
-      def self.uses_transaction?(method)
-        @uses_transaction = [] unless defined?(@uses_transaction)
-        @uses_transaction.include?(method.to_s)
+        def uses_transaction?(method)
+          @uses_transaction = [] unless defined?(@uses_transaction)
+          @uses_transaction.include?(method.to_s)
+        end
       end
 
       def use_transactional_fixtures?
@@ -926,8 +934,8 @@ module Test #:nodoc:
           !self.class.uses_transaction?(method_name)
       end
 
-      def setup_with_fixtures
-        return unless defined?(ActiveRecord::Base) &amp;&amp; !ActiveRecord::Base.configurations.blank?
+      def setup_fixtures
+        return unless defined?(ActiveRecord) &amp;&amp; !ActiveRecord::Base.configurations.blank?
 
         if pre_loaded_fixtures &amp;&amp; !use_transactional_fixtures
           raise RuntimeError, 'pre_loaded_fixtures requires use_transactional_fixtures'
@@ -955,10 +963,9 @@ module Test #:nodoc:
         # Instantiate fixtures for every test if requested.
         instantiate_fixtures if use_instantiated_fixtures
       end
-      alias_method :setup, :setup_with_fixtures
 
-      def teardown_with_fixtures
-        return unless defined?(ActiveRecord::Base) &amp;&amp; !ActiveRecord::Base.configurations.blank?
+      def teardown_fixtures
+        return unless defined?(ActiveRecord) &amp;&amp; !ActiveRecord::Base.configurations.blank?
 
         unless use_transactional_fixtures?
           Fixtures.reset_cache
@@ -971,28 +978,6 @@ module Test #:nodoc:
         end
         ActiveRecord::Base.verify_active_connections!
       end
-      alias_method :teardown, :teardown_with_fixtures
-
-      def self.method_added(method)
-        case method.to_s
-        when 'setup'
-          unless method_defined?(:setup_without_fixtures)
-            alias_method :setup_without_fixtures, :setup
-            define_method(:setup) do
-              setup_with_fixtures
-              setup_without_fixtures
-            end
-          end
-        when 'teardown'
-          unless method_defined?(:teardown_without_fixtures)
-            alias_method :teardown_without_fixtures, :teardown
-            define_method(:teardown) do
-              teardown_without_fixtures
-              teardown_with_fixtures
-            end
-          end
-        end
-      end
 
       private
         def load_fixtures</diff>
      <filename>activerecord/lib/active_record/fixtures.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 # The filename begins with &quot;aaa&quot; to ensure this is the first test.
 require 'abstract_unit'
 
-class AAACreateTablesTest &lt; Test::Unit::TestCase
+class AAACreateTablesTest &lt; ActiveSupport::TestCase
   self.use_transactional_fixtures = false
 
   def setup</diff>
      <filename>activerecord/test/aaa_create_tables_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,7 +13,7 @@ ActiveSupport::Deprecation.debug = true
 
 QUOTED_TYPE = ActiveRecord::Base.connection.quote_column_name('type') unless Object.const_defined?(:QUOTED_TYPE)
 
-class Test::Unit::TestCase #:nodoc:
+class ActiveSupport::TestCase #:nodoc:
   self.fixture_path = File.dirname(__FILE__) + &quot;/fixtures/&quot;
   self.use_instantiated_fixtures = false
   self.use_transactional_fixtures = (ENV['AR_NO_TX_FIXTURES'] != &quot;yes&quot;)</diff>
      <filename>activerecord/test/abstract_unit.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require 'abstract_unit'
 
-class ActiveSchemaTest &lt; Test::Unit::TestCase
+class ActiveSchemaTest &lt; ActiveSupport::TestCase
   def setup
     ActiveRecord::ConnectionAdapters::MysqlAdapter.class_eval do
       alias_method :execute_without_stub, :execute</diff>
      <filename>activerecord/test/active_schema_test_mysql.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require 'abstract_unit'
 
-class AdapterTest &lt; Test::Unit::TestCase
+class AdapterTest &lt; ActiveSupport::TestCase
   def setup
     @connection = ActiveRecord::Base.connection
   end</diff>
      <filename>activerecord/test/adapter_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ require 'fixtures/default'
 require 'fixtures/post'
 require 'fixtures/task'
 
-class SqlServerAdapterTest &lt; Test::Unit::TestCase
+class SqlServerAdapterTest &lt; ActiveSupport::TestCase
   class TableWithRealColumn &lt; ActiveRecord::Base; end
 
   fixtures :posts, :tasks</diff>
      <filename>activerecord/test/adapter_test_sqlserver.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 require 'abstract_unit'
 require 'fixtures/customer'
 
-class AggregationsTest &lt; Test::Unit::TestCase
+class AggregationsTest &lt; ActiveSupport::TestCase
   fixtures :customers
 
   def test_find_single_value_object
@@ -109,7 +109,7 @@ class AggregationsTest &lt; Test::Unit::TestCase
   end
 end
 
-class OverridingAggregationsTest &lt; Test::Unit::TestCase
+class OverridingAggregationsTest &lt; ActiveSupport::TestCase
   class Name; end
   class DifferentName; end
 </diff>
      <filename>activerecord/test/aggregations_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ require &quot;#{File.dirname(__FILE__)}/../lib/active_record/schema&quot;
 
 if ActiveRecord::Base.connection.supports_migrations? 
 
-  class ActiveRecordSchemaTest &lt; Test::Unit::TestCase
+  class ActiveRecordSchemaTest &lt; ActiveSupport::TestCase
     self.use_transactional_fixtures = false
 
     def setup</diff>
      <filename>activerecord/test/ar_schema_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 require 'abstract_unit'
 require 'fixtures/company'
 
-class AssociationInheritanceReloadTest &lt; Test::Unit::TestCase
+class AssociationInheritanceReloadTest &lt; ActiveSupport::TestCase
   fixtures :companies
 
   def test_set_attributes</diff>
      <filename>activerecord/test/association_inheritance_reload.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ require 'fixtures/category'
 require 'fixtures/project'
 require 'fixtures/developer'
 
-class AssociationCallbacksTest &lt; Test::Unit::TestCase
+class AssociationCallbacksTest &lt; ActiveSupport::TestCase
   fixtures :posts, :authors, :projects, :developers
 
   def setup</diff>
      <filename>activerecord/test/associations/callbacks_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@ require 'fixtures/company'
 require 'fixtures/topic'
 require 'fixtures/reply'
 
-class CascadedEagerLoadingTest &lt; Test::Unit::TestCase
+class CascadedEagerLoadingTest &lt; ActiveSupport::TestCase
   fixtures :authors, :mixins, :companies, :posts, :topics
 
   def test_eager_association_loading_with_cascaded_two_levels
@@ -95,7 +95,7 @@ end
 
 require 'fixtures/vertex'
 require 'fixtures/edge'
-class CascadedEagerLoadingTest &lt; Test::Unit::TestCase
+class CascadedEagerLoadingTest &lt; ActiveSupport::TestCase
   fixtures :edges, :vertices
 
   def test_eager_association_loading_with_recursive_cascading_four_levels_has_many_through</diff>
      <filename>activerecord/test/associations/cascaded_eager_loading_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -39,7 +39,7 @@ class Compress &lt; ActiveRecord::Base
 end
 
 
-class EagerSingularizationTest &lt; Test::Unit::TestCase
+class EagerSingularizationTest &lt; ActiveSupport::TestCase
 
   def setup
     if ActiveRecord::Base.connection.supports_migrations?</diff>
      <filename>activerecord/test/associations/eager_singularization_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@ require 'fixtures/company'
 require 'fixtures/person'
 require 'fixtures/reader'
 
-class EagerAssociationTest &lt; Test::Unit::TestCase
+class EagerAssociationTest &lt; ActiveSupport::TestCase
   fixtures :posts, :comments, :authors, :categories, :categories_posts,
             :companies, :accounts, :tags, :people, :readers
 </diff>
      <filename>activerecord/test/associations/eager_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ require 'fixtures/comment'
 require 'fixtures/project'
 require 'fixtures/developer'
 
-class AssociationsExtensionsTest &lt; Test::Unit::TestCase
+class AssociationsExtensionsTest &lt; ActiveSupport::TestCase
   fixtures :projects, :developers, :developers_projects, :comments, :posts
 
   def test_extension_on_has_many</diff>
      <filename>activerecord/test/associations/extension_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@ require 'fixtures/author'
 require 'fixtures/category'
 require 'fixtures/categorization'
 
-class InnerJoinAssociationTest &lt; Test::Unit::TestCase
+class InnerJoinAssociationTest &lt; ActiveSupport::TestCase
   fixtures :authors, :posts, :comments, :categories, :categories_posts, :categorizations
 
   def test_construct_finder_sql_creates_inner_joins</diff>
      <filename>activerecord/test/associations/inner_join_association_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,7 @@ require 'fixtures/edge'
 require 'fixtures/book'
 require 'fixtures/citation'
 
-class AssociationsJoinModelTest &lt; Test::Unit::TestCase
+class AssociationsJoinModelTest &lt; ActiveSupport::TestCase
   self.use_transactional_fixtures = false
   fixtures :posts, :authors, :categories, :categorizations, :comments, :tags, :taggings, :author_favorites, :vertices, :items, :books
 </diff>
      <filename>activerecord/test/associations/join_model_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -17,7 +17,7 @@ require 'fixtures/tagging'
 require 'fixtures/person'
 require 'fixtures/reader'
 
-class AssociationsTest &lt; Test::Unit::TestCase
+class AssociationsTest &lt; ActiveSupport::TestCase
   fixtures :accounts, :companies, :developers, :projects, :developers_projects,
            :computers
 
@@ -73,7 +73,7 @@ class AssociationsTest &lt; Test::Unit::TestCase
   end
 end
  
-class AssociationProxyTest &lt; Test::Unit::TestCase
+class AssociationProxyTest &lt; ActiveSupport::TestCase
   fixtures :authors, :posts, :categorizations, :categories, :developers, :projects, :developers_projects
   
   def test_proxy_accessors
@@ -166,7 +166,7 @@ class AssociationProxyTest &lt; Test::Unit::TestCase
   end
 end
 
-class HasOneAssociationsTest &lt; Test::Unit::TestCase
+class HasOneAssociationsTest &lt; ActiveSupport::TestCase
   fixtures :accounts, :companies, :developers, :projects, :developers_projects
 
   def setup
@@ -463,7 +463,7 @@ class HasOneAssociationsTest &lt; Test::Unit::TestCase
 end
 
 
-class HasManyAssociationsTest &lt; Test::Unit::TestCase
+class HasManyAssociationsTest &lt; ActiveSupport::TestCase
   fixtures :accounts, :companies, :developers, :projects,
            :developers_projects, :topics, :authors, :comments
 
@@ -1196,7 +1196,7 @@ class HasManyAssociationsTest &lt; Test::Unit::TestCase
 
 end
 
-class BelongsToAssociationsTest &lt; Test::Unit::TestCase
+class BelongsToAssociationsTest &lt; ActiveSupport::TestCase
   fixtures :accounts, :companies, :developers, :projects, :topics,
            :developers_projects, :computers, :authors, :posts, :tags, :taggings
 
@@ -1572,7 +1572,7 @@ class DeveloperForProjectWithAfterCreateHook &lt; ActiveRecord::Base
 end
 
 
-class HasAndBelongsToManyAssociationsTest &lt; Test::Unit::TestCase
+class HasAndBelongsToManyAssociationsTest &lt; ActiveSupport::TestCase
   fixtures :accounts, :companies, :categories, :posts, :categories_posts, :developers, :projects, :developers_projects
 
   def test_has_and_belongs_to_many
@@ -2112,7 +2112,7 @@ class HasAndBelongsToManyAssociationsTest &lt; Test::Unit::TestCase
 end
 
 
-class OverridingAssociationsTest &lt; Test::Unit::TestCase
+class OverridingAssociationsTest &lt; ActiveSupport::TestCase
   class Person &lt; ActiveRecord::Base; end
   class DifferentPerson &lt; ActiveRecord::Base; end
 </diff>
      <filename>activerecord/test/associations_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 require 'abstract_unit'
 require 'fixtures/topic'
 
-class AttributeMethodsTest &lt; Test::Unit::TestCase
+class AttributeMethodsTest &lt; ActiveSupport::TestCase
   fixtures :topics
   def setup
     @old_suffixes = ActiveRecord::Base.send(:attribute_method_suffixes).dup</diff>
      <filename>activerecord/test/attribute_methods_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -70,7 +70,7 @@ class TopicWithProtectedContentAndAccessibleAuthorName &lt; ActiveRecord::Base
   attr_protected  :content
 end
 
-class BasicsTest &lt; Test::Unit::TestCase
+class BasicsTest &lt; ActiveSupport::TestCase
   fixtures :topics, :companies, :developers, :projects, :computers, :accounts, :minimalistics
 
   def test_table_exists</diff>
      <filename>activerecord/test/base_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,7 @@ require 'abstract_unit'
 unless current_adapter?(:SQLServerAdapter, :SybaseAdapter, :DB2Adapter, :FirebirdAdapter)
   require 'fixtures/binary'
 
-  class BinaryTest &lt; Test::Unit::TestCase
+  class BinaryTest &lt; ActiveSupport::TestCase
     FIXTURES = %w(flowers.jpg example.log)
 
     def test_load_save</diff>
      <filename>activerecord/test/binary_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@ class NumericData &lt; ActiveRecord::Base
   self.table_name = 'numeric_data'
 end
 
-class CalculationsTest &lt; Test::Unit::TestCase
+class CalculationsTest &lt; ActiveSupport::TestCase
   fixtures :companies, :accounts, :topics
 
   def test_should_sum_field</diff>
      <filename>activerecord/test/calculations_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -126,7 +126,7 @@ class CallbackCancellationDeveloper &lt; ActiveRecord::Base
   end
 end
 
-class CallbacksTest &lt; Test::Unit::TestCase
+class CallbacksTest &lt; ActiveSupport::TestCase
   fixtures :developers
 
   def test_initialize</diff>
      <filename>activerecord/test/callbacks_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -19,7 +19,7 @@ class D &lt; B
 end
 
 
-class ClassInheritableAttributesTest &lt; Test::Unit::TestCase
+class ClassInheritableAttributesTest &lt; ActiveSupport::TestCase
   def test_first_level
     assert_equal [ :one, :two ], B.read_inheritable_attribute(&quot;first&quot;)
     assert_equal [ :three ], C.read_inheritable_attribute(&quot;first&quot;)</diff>
      <filename>activerecord/test/class_inheritable_attributes_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 require 'abstract_unit'
 require 'fixtures/topic'
 
-class TestColumnAlias &lt; Test::Unit::TestCase
+class TestColumnAlias &lt; ActiveSupport::TestCase
   fixtures :topics
 
   QUERY = if 'Oracle' == ActiveRecord::Base.connection.adapter_name</diff>
      <filename>activerecord/test/column_alias_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require &quot;#{File.dirname(__FILE__)}/abstract_unit&quot;
 
-class FirebirdConnectionTest &lt; Test::Unit::TestCase
+class FirebirdConnectionTest &lt; ActiveSupport::TestCase
   def test_charset_properly_set
     fb_conn = ActiveRecord::Base.connection.instance_variable_get(:@connection)
     assert_equal 'UTF8', fb_conn.database.character_set</diff>
      <filename>activerecord/test/connection_test_firebird.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require &quot;#{File.dirname(__FILE__)}/abstract_unit&quot;
 
-class MysqlConnectionTest &lt; Test::Unit::TestCase
+class MysqlConnectionTest &lt; ActiveSupport::TestCase
   def setup
     @connection = ActiveRecord::Base.connection
   end</diff>
      <filename>activerecord/test/connection_test_mysql.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require 'abstract_unit'
 
-class CopyTableTest &lt; Test::Unit::TestCase
+class CopyTableTest &lt; ActiveSupport::TestCase
   fixtures :companies, :comments
   
   def setup</diff>
      <filename>activerecord/test/copy_table_test_sqlite.rb</filename>
    </modified>
    <modified>
      <diff>@@ -21,7 +21,7 @@ end
 class PostgresqlOid &lt; ActiveRecord::Base
 end
 
-class PostgresqlDataTypeTest &lt; Test::Unit::TestCase
+class PostgresqlDataTypeTest &lt; ActiveSupport::TestCase
   self.use_transactional_fixtures = false
 
   def setup</diff>
      <filename>activerecord/test/datatype_test_postgresql.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@ require 'abstract_unit'
 require 'fixtures/topic'
 require 'fixtures/task'
 
-class DateTimeTest &lt; Test::Unit::TestCase
+class DateTimeTest &lt; ActiveSupport::TestCase
   def test_saves_both_date_and_time
     time_values = [1807, 2, 10, 15, 30, 45]
     now = DateTime.civil(*time_values)</diff>
      <filename>activerecord/test/date_time_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 require 'abstract_unit'
 require 'fixtures/default'
 
-class DefaultTest &lt; Test::Unit::TestCase
+class DefaultTest &lt; ActiveSupport::TestCase
   def test_default_timestamp
     default = Default.new
     assert_instance_of(Time, default.default_timestamp)</diff>
      <filename>activerecord/test/default_test_firebird.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@ require 'abstract_unit'
 require 'fixtures/default'
 require 'fixtures/entrant'
 
-class DefaultTest &lt; Test::Unit::TestCase
+class DefaultTest &lt; ActiveSupport::TestCase
   def test_nil_defaults_for_not_null_columns
     column_defaults =
       if current_adapter?(:MysqlAdapter)</diff>
      <filename>activerecord/test/defaults_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 require 'abstract_unit'
 require 'fixtures/entrant'
 
-class DeprecatedFinderTest &lt; Test::Unit::TestCase
+class DeprecatedFinderTest &lt; ActiveSupport::TestCase
   fixtures :entrants
 
   def test_deprecated_find_all_was_removed</diff>
      <filename>activerecord/test/deprecated_finder_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@ require 'fixtures/entrant'
 require 'fixtures/developer'
 require 'fixtures/post'
 
-class FinderTest &lt; Test::Unit::TestCase
+class FinderTest &lt; ActiveSupport::TestCase
   fixtures :companies, :topics, :entrants, :developers, :developers_projects, :posts, :comments, :accounts, :authors
 
   def test_find</diff>
      <filename>activerecord/test/finder_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -16,7 +16,7 @@ require 'fixtures/treasure'
 require 'fixtures/matey'
 require 'fixtures/ship'
 
-class FixturesTest &lt; Test::Unit::TestCase
+class FixturesTest &lt; ActiveSupport::TestCase
   self.use_instantiated_fixtures = true
   self.use_transactional_fixtures = false
 
@@ -204,7 +204,7 @@ class FixturesTest &lt; Test::Unit::TestCase
 end
 
 if Account.connection.respond_to?(:reset_pk_sequence!)
-  class FixturesResetPkSequenceTest &lt; Test::Unit::TestCase
+  class FixturesResetPkSequenceTest &lt; ActiveSupport::TestCase
     fixtures :accounts
     fixtures :companies
 
@@ -250,7 +250,7 @@ if Account.connection.respond_to?(:reset_pk_sequence!)
   end
 end
 
-class FixturesWithoutInstantiationTest &lt; Test::Unit::TestCase
+class FixturesWithoutInstantiationTest &lt; ActiveSupport::TestCase
   self.use_instantiated_fixtures = false
   fixtures :topics, :developers, :accounts
 
@@ -285,7 +285,7 @@ class FixturesWithoutInstantiationTest &lt; Test::Unit::TestCase
   end
 end
 
-class FixturesWithoutInstanceInstantiationTest &lt; Test::Unit::TestCase
+class FixturesWithoutInstanceInstantiationTest &lt; ActiveSupport::TestCase
   self.use_instantiated_fixtures = true
   self.use_instantiated_fixtures = :no_instances
 
@@ -299,7 +299,7 @@ class FixturesWithoutInstanceInstantiationTest &lt; Test::Unit::TestCase
   end
 end
 
-class TransactionalFixturesTest &lt; Test::Unit::TestCase
+class TransactionalFixturesTest &lt; ActiveSupport::TestCase
   self.use_instantiated_fixtures = true
   self.use_transactional_fixtures = true
 
@@ -315,7 +315,7 @@ class TransactionalFixturesTest &lt; Test::Unit::TestCase
   end
 end
 
-class MultipleFixturesTest &lt; Test::Unit::TestCase
+class MultipleFixturesTest &lt; ActiveSupport::TestCase
   fixtures :topics
   fixtures :developers, :accounts
 
@@ -324,7 +324,7 @@ class MultipleFixturesTest &lt; Test::Unit::TestCase
   end
 end
 
-class SetupTest &lt; Test::Unit::TestCase
+class SetupTest &lt; ActiveSupport::TestCase
   # fixtures :topics
   
   def setup
@@ -348,7 +348,7 @@ class SetupSubclassTest &lt; SetupTest
 end
 
 
-class OverlappingFixturesTest &lt; Test::Unit::TestCase
+class OverlappingFixturesTest &lt; ActiveSupport::TestCase
   fixtures :topics, :developers
   fixtures :developers, :accounts
 
@@ -357,7 +357,7 @@ class OverlappingFixturesTest &lt; Test::Unit::TestCase
   end
 end
 
-class ForeignKeyFixturesTest &lt; Test::Unit::TestCase
+class ForeignKeyFixturesTest &lt; ActiveSupport::TestCase
   fixtures :fk_test_has_pk, :fk_test_has_fk
 
   # if foreign keys are implemented and fixtures
@@ -373,7 +373,7 @@ class ForeignKeyFixturesTest &lt; Test::Unit::TestCase
   end
 end
 
-class SetTableNameFixturesTest &lt; Test::Unit::TestCase
+class SetTableNameFixturesTest &lt; ActiveSupport::TestCase
   set_fixture_class :funny_jokes =&gt; 'Joke'
   fixtures :funny_jokes
 
@@ -382,7 +382,7 @@ class SetTableNameFixturesTest &lt; Test::Unit::TestCase
   end
 end
 
-class CustomConnectionFixturesTest &lt; Test::Unit::TestCase
+class CustomConnectionFixturesTest &lt; ActiveSupport::TestCase
   set_fixture_class :courses =&gt; Course
   fixtures :courses
 
@@ -392,7 +392,7 @@ class CustomConnectionFixturesTest &lt; Test::Unit::TestCase
   end
 end
 
-class InvalidTableNameFixturesTest &lt; Test::Unit::TestCase
+class InvalidTableNameFixturesTest &lt; ActiveSupport::TestCase
   fixtures :funny_jokes
 
   def test_raises_error
@@ -402,7 +402,7 @@ class InvalidTableNameFixturesTest &lt; Test::Unit::TestCase
   end
 end
 
-class CheckEscapedYamlFixturesTest &lt; Test::Unit::TestCase
+class CheckEscapedYamlFixturesTest &lt; ActiveSupport::TestCase
   set_fixture_class :funny_jokes =&gt; 'Joke'
   fixtures :funny_jokes
 
@@ -412,7 +412,7 @@ class CheckEscapedYamlFixturesTest &lt; Test::Unit::TestCase
 end
 
 class DevelopersProject; end
-class ManyToManyFixturesWithClassDefined &lt; Test::Unit::TestCase
+class ManyToManyFixturesWithClassDefined &lt; ActiveSupport::TestCase
   fixtures :developers_projects
 
   def test_this_should_run_cleanly
@@ -420,22 +420,22 @@ class ManyToManyFixturesWithClassDefined &lt; Test::Unit::TestCase
   end
 end
 
-class FixturesBrokenRollbackTest &lt; Test::Unit::TestCase
+class FixturesBrokenRollbackTest &lt; ActiveSupport::TestCase
   def blank_setup; end
-  alias_method :ar_setup_with_fixtures, :setup_with_fixtures
-  alias_method :setup_with_fixtures, :blank_setup
+  alias_method :ar_setup_fixtures, :setup_fixtures
+  alias_method :setup_fixtures, :blank_setup
   alias_method :setup, :blank_setup
 
   def blank_teardown; end
-  alias_method :ar_teardown_with_fixtures, :teardown_with_fixtures
-  alias_method :teardown_with_fixtures, :blank_teardown
+  alias_method :ar_teardown_fixtures, :teardown_fixtures
+  alias_method :teardown_fixtures, :blank_teardown
   alias_method :teardown, :blank_teardown
 
   def test_no_rollback_in_teardown_unless_transaction_active
     assert_equal 0, Thread.current['open_transactions']
-    assert_raise(RuntimeError) { ar_setup_with_fixtures }
+    assert_raise(RuntimeError) { ar_setup_fixtures }
     assert_equal 0, Thread.current['open_transactions']
-    assert_nothing_raised { ar_teardown_with_fixtures }
+    assert_nothing_raised { ar_teardown_fixtures }
     assert_equal 0, Thread.current['open_transactions']
   end
 
@@ -445,7 +445,7 @@ class FixturesBrokenRollbackTest &lt; Test::Unit::TestCase
     end
 end
 
-class LoadAllFixturesTest &lt; Test::Unit::TestCase
+class LoadAllFixturesTest &lt; ActiveSupport::TestCase
   self.fixture_path= File.join(File.dirname(__FILE__), '/fixtures/all')
   fixtures :all
 
@@ -454,7 +454,7 @@ class LoadAllFixturesTest &lt; Test::Unit::TestCase
   end
 end
 
-class FasterFixturesTest &lt; Test::Unit::TestCase
+class FasterFixturesTest &lt; ActiveSupport::TestCase
   fixtures :categories, :authors
 
   def load_extra_fixture(name)
@@ -479,7 +479,7 @@ class FasterFixturesTest &lt; Test::Unit::TestCase
   end
 end
 
-class FoxyFixturesTest &lt; Test::Unit::TestCase
+class FoxyFixturesTest &lt; ActiveSupport::TestCase
   fixtures :parrots, :parrots_pirates, :pirates, :treasures, :mateys, :ships, :computers, :developers
 
   def test_identifies_strings</diff>
      <filename>activerecord/test/fixtures_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ require 'fixtures/company'
 require 'fixtures/project'
 require 'fixtures/subscriber'
 
-class InheritanceTest &lt; Test::Unit::TestCase
+class InheritanceTest &lt; ActiveSupport::TestCase
   fixtures :companies, :projects, :subscribers, :accounts
 
   def test_company_descends_from_active_record
@@ -175,7 +175,7 @@ class InheritanceTest &lt; Test::Unit::TestCase
 end
 
 
-class InheritanceComputeTypeTest &lt; Test::Unit::TestCase
+class InheritanceComputeTypeTest &lt; ActiveSupport::TestCase
   fixtures :companies
 
   def setup</diff>
      <filename>activerecord/test/inheritance_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ require 'fixtures/tagging'
 require 'fixtures/tag'
 require 'fixtures/comment'
 
-class JsonSerializationTest &lt; Test::Unit::TestCase
+class JsonSerializationTest &lt; ActiveSupport::TestCase
   def setup
     @contact = Contact.new(
       :name        =&gt; 'Konata Izumi',
@@ -63,7 +63,7 @@ class JsonSerializationTest &lt; Test::Unit::TestCase
   end
 end
 
-class DatabaseConnectedJsonEncodingTest &lt; Test::Unit::TestCase
+class DatabaseConnectedJsonEncodingTest &lt; ActiveSupport::TestCase
   fixtures :authors, :posts, :comments, :tags, :taggings
 
   def setup</diff>
      <filename>activerecord/test/json_serialization_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -64,7 +64,7 @@ class MultiObserver &lt; ActiveRecord::Observer
   end
 end
 
-class LifecycleTest &lt; Test::Unit::TestCase
+class LifecycleTest &lt; ActiveSupport::TestCase
   fixtures :topics, :developers
 
   def test_before_destroy</diff>
      <filename>activerecord/test/lifecycle_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -14,7 +14,7 @@ class ReadonlyFirstNamePerson &lt; Person
   attr_readonly :first_name
 end
 
-class OptimisticLockingTest &lt; Test::Unit::TestCase
+class OptimisticLockingTest &lt; ActiveSupport::TestCase
   fixtures :people, :legacy_things
 
   # need to disable transactional fixtures, because otherwise the sqlite3
@@ -176,7 +176,7 @@ end
 # TODO: The SQL Server, Sybase, and OpenBase adapters currently have no support for pessimistic locking
 
 unless current_adapter?(:SQLServerAdapter, :SybaseAdapter, :OpenBaseAdapter)
-  class PessimisticLockingTest &lt; Test::Unit::TestCase
+  class PessimisticLockingTest &lt; ActiveSupport::TestCase
     self.use_transactional_fixtures = false
     fixtures :people, :readers
 </diff>
      <filename>activerecord/test/locking_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@ require 'fixtures/comment'
 require 'fixtures/post'
 require 'fixtures/category'
 
-class MethodScopingTest &lt; Test::Unit::TestCase
+class MethodScopingTest &lt; ActiveSupport::TestCase
   fixtures :developers, :projects, :comments, :posts
   
   def test_set_conditions
@@ -125,7 +125,7 @@ class MethodScopingTest &lt; Test::Unit::TestCase
   end
 end
 
-class NestedScopingTest &lt; Test::Unit::TestCase
+class NestedScopingTest &lt; ActiveSupport::TestCase
   fixtures :developers, :projects, :comments, :posts
 
   def test_merge_options
@@ -313,7 +313,7 @@ class NestedScopingTest &lt; Test::Unit::TestCase
   end
 end
 
-class HasManyScopingTest&lt; Test::Unit::TestCase
+class HasManyScopingTest&lt; ActiveSupport::TestCase
   fixtures :comments, :posts
   
   def setup
@@ -343,7 +343,7 @@ class HasManyScopingTest&lt; Test::Unit::TestCase
 end
 
 
-class HasAndBelongsToManyScopingTest&lt; Test::Unit::TestCase
+class HasAndBelongsToManyScopingTest&lt; ActiveSupport::TestCase
   fixtures :posts, :categories, :categories_posts
 
   def setup
@@ -373,7 +373,7 @@ end
 # We disabled the scoping for has_one and belongs_to as we can't think of a proper use case
 
 
-class BelongsToScopingTest&lt; Test::Unit::TestCase
+class BelongsToScopingTest&lt; ActiveSupport::TestCase
   fixtures :comments, :posts
 
   def setup
@@ -393,7 +393,7 @@ class BelongsToScopingTest&lt; Test::Unit::TestCase
 end
 
 
-class HasOneScopingTest&lt; Test::Unit::TestCase
+class HasOneScopingTest&lt; ActiveSupport::TestCase
   fixtures :comments, :posts
 
   def setup</diff>
      <filename>activerecord/test/method_scoping_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -22,7 +22,7 @@ if ActiveRecord::Base.connection.supports_migrations?
     end
   end
 
-  class MigrationTest &lt; Test::Unit::TestCase
+  class MigrationTest &lt; ActiveSupport::TestCase
     self.use_transactional_fixtures = false
     
     fixtures :people
@@ -909,7 +909,7 @@ if ActiveRecord::Base.connection.supports_migrations?
   end
 
   uses_mocha 'Sexy migration tests' do
-    class SexyMigrationsTest &lt; Test::Unit::TestCase
+    class SexyMigrationsTest &lt; ActiveSupport::TestCase
       def test_references_column_type_adds_id
         with_new_table do |t|
           t.expects(:column).with('customer_id', :integer, {})</diff>
      <filename>activerecord/test/migration_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 require 'abstract_unit'
 require 'fixtures/course'
 
-class FirebirdMigrationTest &lt; Test::Unit::TestCase
+class FirebirdMigrationTest &lt; ActiveSupport::TestCase
   self.use_transactional_fixtures = false
 
   def setup</diff>
      <filename>activerecord/test/migration_test_firebird.rb</filename>
    </modified>
    <modified>
      <diff>@@ -21,7 +21,7 @@ class Time
 end
 
 
-class TouchTest &lt; Test::Unit::TestCase
+class TouchTest &lt; ActiveSupport::TestCase
   fixtures :mixins
   
   def setup</diff>
      <filename>activerecord/test/mixin_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 require 'abstract_unit'
 require 'fixtures/company_in_module'
 
-class ModulesTest &lt; Test::Unit::TestCase
+class ModulesTest &lt; ActiveSupport::TestCase
   fixtures :accounts, :companies, :projects, :developers
 
   def test_module_spanning_associations</diff>
      <filename>activerecord/test/modules_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ require 'fixtures/entrant'
 # So we can test whether Course.connection survives a reload.
 require_dependency 'fixtures/course'
 
-class MultipleDbTest &lt; Test::Unit::TestCase
+class MultipleDbTest &lt; ActiveSupport::TestCase
   self.use_transactional_fixtures = false
 
   def setup</diff>
      <filename>activerecord/test/multiple_db_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ require 'fixtures/movie'
 require 'fixtures/keyboard'
 require 'fixtures/mixed_case_monkey'
 
-class PrimaryKeysTest &lt; Test::Unit::TestCase
+class PrimaryKeysTest &lt; ActiveSupport::TestCase
   fixtures :topics, :subscribers, :movies, :mixed_case_monkeys
 
   def test_integer_key</diff>
      <filename>activerecord/test/pk_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@ require 'fixtures/task'
 require 'fixtures/course'
 
 
-class QueryCacheTest &lt; Test::Unit::TestCase
+class QueryCacheTest &lt; ActiveSupport::TestCase
   fixtures :tasks, :topics
 
   def test_find_queries
@@ -55,7 +55,7 @@ end
 
 uses_mocha 'QueryCacheExpiryTest' do
 
-class QueryCacheExpiryTest &lt; Test::Unit::TestCase
+class QueryCacheExpiryTest &lt; ActiveSupport::TestCase
   fixtures :tasks
 
   def test_find</diff>
      <filename>activerecord/test/query_cache_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,7 @@ def Comment.foo() find :first end
 def Project.foo() find :first end
 
 
-class ReadOnlyTest &lt; Test::Unit::TestCase
+class ReadOnlyTest &lt; ActiveSupport::TestCase
   fixtures :posts, :comments, :developers, :projects, :developers_projects
 
   def test_cant_save_readonly_record</diff>
      <filename>activerecord/test/readonly_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@ require 'fixtures/company'
 require 'fixtures/company_in_module'
 require 'fixtures/subscriber'
 
-class ReflectionTest &lt; Test::Unit::TestCase
+class ReflectionTest &lt; ActiveSupport::TestCase
   fixtures :topics, :customers, :companies, :subscribers
 
   def setup</diff>
      <filename>activerecord/test/reflection_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -23,7 +23,7 @@ end
 
 # a suite of tests to ensure the ConnectionAdapters#MysqlAdapter can handle tables with
 # reserved word names (ie: group, order, values, etc...)
-class MysqlReservedWordTest &lt; Test::Unit::TestCase
+class MysqlReservedWordTest &lt; ActiveSupport::TestCase
   def setup
     @connection = ActiveRecord::Base.connection
 </diff>
      <filename>activerecord/test/reserved_word_test_mysql.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ require 'abstract_unit'
 class SchemaThing &lt; ActiveRecord::Base
 end
 
-class SchemaAuthorizationTest &lt; Test::Unit::TestCase
+class SchemaAuthorizationTest &lt; ActiveSupport::TestCase
   self.use_transactional_fixtures = false
 
   TABLE_NAME = 'schema_things'</diff>
      <filename>activerecord/test/schema_authorization_test_postgresql.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ require 'stringio'
 
 if ActiveRecord::Base.connection.respond_to?(:tables)
 
-  class SchemaDumperTest &lt; Test::Unit::TestCase
+  class SchemaDumperTest &lt; ActiveSupport::TestCase
     def standard_dump
       stream = StringIO.new
       ActiveRecord::SchemaDumper.ignore_tables = []</diff>
      <filename>activerecord/test/schema_dumper_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 require 'abstract_unit'
 
-class SchemaTest &lt; Test::Unit::TestCase
+class SchemaTest &lt; ActiveSupport::TestCase
   self.use_transactional_fixtures = false
 
   SCHEMA_NAME = 'test_schema'</diff>
      <filename>activerecord/test/schema_test_postgresql.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 require 'abstract_unit'
 require 'fixtures/contact'
 
-class SerializationTest &lt; Test::Unit::TestCase
+class SerializationTest &lt; ActiveSupport::TestCase
   FORMATS = [ :xml, :json ]
   
   def setup</diff>
      <filename>activerecord/test/serialization_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ require 'fixtures/subject'
 # the &quot;subjects&quot; table in Oracle (defined in oci.sql) is just
 # a synonym to the &quot;topics&quot; table
 
-class TestOracleSynonym &lt; Test::Unit::TestCase
+class TestOracleSynonym &lt; ActiveSupport::TestCase
 
   def test_oracle_synonym
     topic = Topic.new</diff>
      <filename>activerecord/test/synonym_test_oracle.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ if ActiveRecord::Base.connection.supports_migrations?
     self.table_name = '[order]'
   end
 
-  class TableNameTest &lt; Test::Unit::TestCase
+  class TableNameTest &lt; ActiveSupport::TestCase
     self.use_transactional_fixtures = false
 
     # Ensures Model.columns works when using SQLServer escape characters.</diff>
      <filename>activerecord/test/table_name_test_sqlserver.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ require 'fixtures/topic'
 require 'fixtures/reply'
 
 unless %w(FrontBase).include? ActiveRecord::Base.connection.adapter_name
-  class ThreadedConnectionsTest &lt; Test::Unit::TestCase
+  class ThreadedConnectionsTest &lt; ActiveSupport::TestCase
     self.use_transactional_fixtures = false
 
     fixtures :topics</diff>
      <filename>activerecord/test/threaded_connections_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ require 'fixtures/topic'
 require 'fixtures/reply'
 require 'fixtures/developer'
 
-class TransactionTest &lt; Test::Unit::TestCase
+class TransactionTest &lt; ActiveSupport::TestCase
   self.use_transactional_fixtures = false
   fixtures :topics, :developers
 </diff>
      <filename>activerecord/test/transactions_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ require 'abstract_unit'
 class TestRecord &lt; ActiveRecord::Base
 end
 
-class TestUnconnectedAdapter &lt; Test::Unit::TestCase
+class TestUnconnectedAdapter &lt; ActiveSupport::TestCase
   self.use_transactional_fixtures = false
 
   def setup</diff>
      <filename>activerecord/test/unconnected_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -53,7 +53,7 @@ end
 class Thaumaturgist &lt; IneptWizard
 end
 
-class ValidationsTest &lt; Test::Unit::TestCase
+class ValidationsTest &lt; ActiveSupport::TestCase
   fixtures :topics, :developers
 
   def setup
@@ -1273,7 +1273,7 @@ class ValidationsTest &lt; Test::Unit::TestCase
 end
 
 
-class ValidatesNumericalityTest &lt; Test::Unit::TestCase
+class ValidatesNumericalityTest &lt; ActiveSupport::TestCase
   NIL = [nil]
   BLANK = [&quot;&quot;, &quot; &quot;, &quot; \t \r \n&quot;]
   BIGDECIMAL_STRINGS = %w(12345678901234567890.1234567890) # 30 significent digits</diff>
      <filename>activerecord/test/validations_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@ require 'fixtures/author'
 require 'fixtures/tagging'
 require 'fixtures/comment'
 
-class XmlSerializationTest &lt; Test::Unit::TestCase
+class XmlSerializationTest &lt; ActiveSupport::TestCase
   def test_should_serialize_default_root
     @xml = Contact.new.to_xml
     assert_match %r{^&lt;contact&gt;},  @xml
@@ -40,7 +40,7 @@ class XmlSerializationTest &lt; Test::Unit::TestCase
   end
 end
 
-class DefaultXmlSerializationTest &lt; Test::Unit::TestCase
+class DefaultXmlSerializationTest &lt; ActiveSupport::TestCase
   def setup
     @xml = Contact.new(:name =&gt; 'aaron stack', :age =&gt; 25, :avatar =&gt; 'binarydata', :created_at =&gt; Time.utc(2006, 8, 1), :awesome =&gt; false, :preferences =&gt; { :gem =&gt; 'ruby' }).to_xml
   end
@@ -72,7 +72,7 @@ class DefaultXmlSerializationTest &lt; Test::Unit::TestCase
   end
 end
 
-class NilXmlSerializationTest &lt; Test::Unit::TestCase
+class NilXmlSerializationTest &lt; ActiveSupport::TestCase
   def setup
     @xml = Contact.new.to_xml(:root =&gt; 'xml_contact')
   end
@@ -118,7 +118,7 @@ class NilXmlSerializationTest &lt; Test::Unit::TestCase
   end
 end
 
-class DatabaseConnectedXmlSerializationTest &lt; Test::Unit::TestCase
+class DatabaseConnectedXmlSerializationTest &lt; ActiveSupport::TestCase
   fixtures :authors, :posts
   # to_xml used to mess with the hash the user provided which
   # caused the builder to be reused.  This meant the document kept</diff>
      <filename>activerecord/test/xml_serialization_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,9 @@
 *SVN*
 
+* Continue evolution toward ActiveSupport::TestCase.  #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]
+
 * Added ActiveSupport::Gzip.decompress/compress(source) as an easy wrapper for Zlib [Tobias Luetke]
 
 * Included MemCache-Client to make the improved ActiveSupport::Cache::MemCacheStore work out of the box [Bob Cottrell, Eric Hodel]</diff>
      <filename>activesupport/CHANGELOG</filename>
    </modified>
    <modified>
      <diff>@@ -49,6 +49,3 @@ require 'active_support/json'
 require 'active_support/multibyte'
 
 require 'active_support/base64'
-
-require 'active_support/testing'
-</diff>
      <filename>activesupport/lib/active_support.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,13 @@
+require 'test/unit/testcase'
+require 'active_support/testing/setup_and_teardown'
+require 'active_support/testing/default'
+
+# TODO: move to core_ext
+class Test::Unit::TestCase #:nodoc:
+  include ActiveSupport::Testing::SetupAndTeardown
+end
+
 module ActiveSupport
   class TestCase &lt; Test::Unit::TestCase
-    include ActiveSupport::Testing::Default
   end
-end
\ No newline at end of file
+end</diff>
      <filename>activesupport/lib/active_support/test_case.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,12 +1,9 @@
 module ActiveSupport
   module Testing
-    module Default
-      def run(*args)
-        #method_name appears to be a symbol on 1.8.4 and a string on 1.8.6
-        return if @method_name.to_s == &quot;default_test&quot;
-        super
+    module Default #:nodoc:
+      # Placeholder so test/unit ignores test cases without any tests.
+      def default_test
       end
     end
   end
 end
-</diff>
      <filename>activesupport/lib/active_support/testing/default.rb</filename>
    </modified>
    <modified>
      <diff>@@ -72,3 +72,49 @@ end
 
 class AlsoDoingNothingTest &lt; ActiveSupport::TestCase
 end
+
+# Setup and teardown callbacks.
+class SetupAndTeardownTest &lt; Test::Unit::TestCase
+  setup :reset_callback_record, :foo
+  teardown :foo, :sentinel, :foo
+
+  def test_inherited_setup_callbacks
+    assert_equal [:reset_callback_record, :foo], self.class.setup_callback_chain
+    assert_equal [:foo], @called_back
+    assert_equal [:foo, :sentinel, :foo], self.class.teardown_callback_chain
+  end
+
+  protected
+    def reset_callback_record
+      @called_back = []
+    end
+
+    def foo
+      @called_back &lt;&lt; :foo
+    end
+
+    def sentinel
+      assert_equal [:foo, :foo], @called_back
+    end
+end
+
+
+class SubclassSetupAndTeardownTest &lt; SetupAndTeardownTest
+  setup :bar
+  teardown :bar
+
+  def test_inherited_setup_callbacks
+    assert_equal [:reset_callback_record, :foo, :bar], self.class.setup_callback_chain
+    assert_equal [:foo, :bar], @called_back
+    assert_equal [:foo, :sentinel, :foo, :bar], self.class.teardown_callback_chain
+  end
+
+  protected
+    def bar
+      @called_back &lt;&lt; :bar
+    end
+
+    def sentinel
+      assert_equal [:foo, :bar, :bar, :foo], @called_back
+    end
+end</diff>
      <filename>activesupport/test/test_test.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>activesupport/lib/active_support/testing.rb</filename>
    </removed>
    <removed>
      <filename>activesupport/test/core_ext/load_error_tests.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>fe66397adfb5a8057db78afcabd4d7eb0f13a783</id>
    </parent>
  </parents>
  <author>
    <name>Jeremy Kemper</name>
    <email>jeremy@bitsweat.net</email>
  </author>
  <url>http://github.com/rails/rails/commit/139b92495fa7697cdd619c549d4c7b263562b761</url>
  <id>139b92495fa7697cdd619c549d4c7b263562b761</id>
  <committed-date>2008-01-05T05:34:15-08:00</committed-date>
  <authored-date>2008-01-05T05:34:15-08:00</authored-date>
  <message>* 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</message>
  <tree>20589f9f23d3b19697fed12bb1bf5ce48ef595af</tree>
  <committer>
    <name>Jeremy Kemper</name>
    <email>jeremy@bitsweat.net</email>
  </committer>
</commit>
