timshadel / webistrano forked from gitmirror/webistrano

My fork of the Webistrano SVN source mirror.

Marcus Lamer (author)
Sun Oct 12 08:28:44 -0700 2008
timshadel (committer)
Sat Jan 24 12:54:55 -0800 2009
webistrano / lib / authenticated_test_helper.rb
100644 26 lines (22 sloc) 1.05 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
module AuthenticatedTestHelper
  # Sets the current user in the session from the user fixtures.
  def login_as(user)
    @request.session[:user] = user ? users(user).id : nil
  end
 
  def authorize_as(user)
    @request.env["HTTP_AUTHORIZATION"] = user ? "Basic #{Base64.encode64("#{users(user).login}:test")}" : nil
  end
 
  # taken from edge rails / rails 2.0. Only needed on Rails 1.2.3
  def assert_difference(expressions, difference = 1, message = nil, &block)
    expression_evaluations = [expressions].flatten.collect{|expression| lambda { eval(expression, block.binding) } }
    
    original_values = expression_evaluations.inject([]) { |memo, expression| memo << expression.call }
    yield
    expression_evaluations.each_with_index do |expression, i|
      assert_equal original_values[i] + difference, expression.call, message
    end
  end
 
  # taken from edge rails / rails 2.0. Only needed on Rails 1.2.3
  def assert_no_difference(expressions, message = nil, &block)
    assert_difference expressions, 0, message, &block
  end
end