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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
# encoding: utf-8
# frozen_string_literal: true
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'
autoload :Mock, 'warden/test/mock'
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
|