test_helper.rb 2.68 KB
Newer Older
Jean-Philippe Lang's avatar
Jean-Philippe Lang committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
# redMine - project management software
# Copyright (C) 2006  Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

ENV["RAILS_ENV"] ||= "test"
Jean-Philippe Lang's avatar
Jean-Philippe Lang committed
19 20
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
require 'test_help'
21
require File.expand_path(File.dirname(__FILE__) + '/helper_testcase')
Jean-Philippe Lang's avatar
Jean-Philippe Lang committed
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

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

  # Add more helper methods to be used by all tests here...
Jean-Philippe Lang's avatar
Jean-Philippe Lang committed
46 47 48
  
  def log_user(login, password)
    get "/account/login"
Jean-Philippe Lang's avatar
Jean-Philippe Lang committed
49
    assert_equal nil, session[:user_id]
Jean-Philippe Lang's avatar
Jean-Philippe Lang committed
50 51 52
    assert_response :success
    assert_template "account/login"
    post "/account/login", :login => login, :password => password
53
    assert_redirected_to "my/page"
Jean-Philippe Lang's avatar
Jean-Philippe Lang committed
54
    assert_equal login, User.find(session[:user_id]).login
Jean-Philippe Lang's avatar
Jean-Philippe Lang committed
55
  end
Jean-Philippe Lang's avatar
Jean-Philippe Lang committed
56
end
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73


# ActionController::TestUploadedFile bug
# see http://dev.rubyonrails.org/ticket/4635
class String
  def original_filename
    "testfile.txt"
  end
  
  def content_type
    "text/plain"
  end
  
  def read
    self.to_s
  end
end