ENV["RAILS_ENV"] = "test" require File.expand_path(File.dirname(__FILE__) + "/../config/environment") require 'test_help' class Test::Unit::TestCase FIXTURES_PATH = File.dirname(__FILE__) + '/fixtures' CHARSET = "utf-8" include ActionMailer::Quoting # 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 # Add more helper methods to be used by all tests here... # def Xteardown self.class.fixture_table_names.reverse.each do |table_name| klass_name = Inflector.classify(table_name.to_s) if Object.const_defined?(klass_name) klass = Object.const_get(klass_name) klass.connection.delete("DELETE FROM #{table_name}", 'Fixture Delete') else flunk("Cannot find class for table '#{table_name}' to delete fixtures") end end end # # A simple convenience method, its name makes it obvious isn't it ;) # def login controller = @controller @controller = AccountController.new post :login, :person => { :name => "my_bob", :email => "manu@noos.fr" }, :user => { :password => "my_bob" } assert_not_nil session[:person] assert_not_nil session[:user] @controller = controller end def read_fixture(action) IO.readlines("#{FIXTURES_PATH}/mail/#{action}") end def encode(subject) quoted_printable(subject, CHARSET) end end