unless defined? TEST_ROOT
  ENV["RAILS_ENV"] = "test"
  
  require 'test/unit'
  
  TEST_ROOT = File.expand_path(File.dirname(__FILE__))
  
  unless defined? RADIANT_ROOT
    if env_file = ENV["RADIANT_ENV_FILE"]
      require env_file
    else
      require File.expand_path(TEST_ROOT + "/../config/environment")
    end
  end
  require 'test_help'
  
  class Test::Unit::TestCase
    # Transactional fixtures accelerate your tests by wrapping each test method
    # in a transaction that's rolled back on completion.  This ensures that the
    # test database remains unchanged so your fixtures don't have to be reloaded
    # between every test method.  Fewer database queries means faster tests.
    #
    # Read Mike Clark's excellent walkthrough at
    #   http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting
    #
    # Every Active Record database supports transactions except MyISAM tables
    # in MySQL. Turn off transactional fixtures in this case; however, if you
    # don't care one way or the other, switching from MyISAM to InnoDB tables
    # is recommended.
    self.use_transactional_fixtures = true
    
    # Instantiated fixtures are slow, but give you @david where otherwise you
    # would need people(:david).  If you don't want to migrate your existing
    # test cases which use the @david style and don't mind the speed hit (each
    # instantiated fixtures translates to a database query per test method),
    # then set this back to true.
    self.use_instantiated_fixtures = false
    
    # Make sure instance installs know where fixtures are
    self.fixture_path = ["#{TEST_ROOT}/fixtures"]
    
    class << self
      # Class method for test helpers
      def test_helper(*names)
        names.each do |name|
          name = name.to_s
          name = $1 if name =~ /^(.*?)_test_helper$/i
          name = name.singularize
          first_time = true
          begin
            constant = (name.camelize + 'TestHelper').constantize
            self.class_eval { include constant }
          rescue NameError
            filename = File.expand_path(TEST_ROOT + '/helpers/' + name + '_test_helper.rb')
            require filename if first_time
            first_time = false
            retry
          end
        end
      end    
      alias :test_helpers :test_helper
    end
  end
end
