unless defined? TEST_ROOT ENV["RAILS_ENV"] = "test" require 'test/unit' TEST_ROOT = File.expand_path(File.dirname(__FILE__)) if env_file = ENV["RADIANT_ENV_FILE"] require env_file else require TEST_ROOT + "/../config/environment" 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"] # Session key stringification fix for Rails 1.2.2 %w( get post put delete head ).each do |method| class_eval <<-EOV, __FILE__, __LINE__ def #{method}(action, parameters = nil, session = nil, flash = nil) @request.env['REQUEST_METHOD'] = "#{method.upcase}" if defined?(@request) session = session.stringify_keys if session.kind_of? Hash process(action, parameters, session, flash) end EOV end 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