123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- # encoding: utf-8
- require 'forwardable'
- require 'warden/mixins/common'
- require 'warden/proxy'
- require 'warden/manager'
- require 'warden/errors'
- require 'warden/session_serializer'
- require 'warden/strategies'
- require 'warden/strategies/base'
- module Warden
- class NotAuthenticated < StandardError; end
- module Test
- autoload :WardenHelpers, 'warden/test/warden_helpers'
- autoload :Helpers, 'warden/test/helpers'
- end
- # Provides helper methods to warden for testing.
- #
- # To setup warden in test mode call the +test_mode!+ method on warden
- #
- # @example
- # Warden.test_mode!
- #
- # This will provide a number of methods.
- # Warden.on_next_request(&blk) - captures a block which is yielded the warden proxy on the next request
- # Warden.test_reset! - removes any captured blocks that would have been executed on the next request
- #
- # Warden.test_reset! should be called in after blocks for rspec, or teardown methods for Test::Unit
- def self.test_mode!
- unless Warden::Test::WardenHelpers === Warden
- Warden.extend Warden::Test::WardenHelpers
- Warden::Manager.on_request do |proxy|
- unless proxy.asset_request?
- while blk = Warden._on_next_request.shift
- blk.call(proxy)
- end
- end
- end
- end
- true
- end
- end
|