Sha256: b178c1b4e4e3fa75c17860553cc83788b2d380c5e0d5f7f6e8a49ec942459ff7

Contents?: true

Size: 1.69 KB

Versions: 2

Compression:

Stored size: 1.69 KB

Contents

module Authlogic
  module Testing # :nodoc:
    # = Test Unit Helpers
    #
    # Provides useful methods for testing in Test::Unit, lets you log records in, etc. Just include this in your test_helper filter:
    #
    #   require "authlogic/testing/test_unit_helpers"
    #
    # Then you will have the methods below to use in your tests.
    module TestUnitHelpers
      private
        def session_class(record) # :nodoc:
          record.class.acts_as_authentic_config[:session_class].constantize
        end
        
        # Sets the session for a record. This way when you execute a request in your test, session values will be present.
        def set_session_for(record)
          session_class = session_class(record)
          @request.session[session_class.session_key] = record.persistence_token
          @request.session["#{session_class.session_key}_id"] = record.id
        end
        
        # Sets the cookie for a record. This way when you execute a request in your test, cookie values will be present.
        def set_cookie_for(record)
          session_class = session_class(record)
          @request.cookies[session_class.cookie_key] = record.persistence_token
        end
        
        # Sets the HTTP_AUTHORIZATION header for basic HTTP auth. This way when you execute a request in your test that is trying to authenticate
        # with HTTP basic auth, the neccessary headers will be present.
        def set_http_auth_for(username, password)
          session_class = session_class(record)
          @request.env['HTTP_AUTHORIZATION'] = @controller.encode_credentials(username, password)
        end
    end
  end
end

Test::Unit::TestCase.send(:include, Authlogic::Testing::TestUnitHelpers)

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
authlogic-1.3.8 lib/authlogic/testing/test_unit_helpers.rb
authlogic-1.3.9 lib/authlogic/testing/test_unit_helpers.rb