module OmniAuth::Test::StrategyTestCase

Support for testing OmniAuth strategies.

@example Usage

class MyStrategyTest < Test::Unit::TestCase
  include OmniAuth::Test::StrategyTestCase
  def strategy
    # return the parameters to a Rack::Builder map call:
    [MyStrategy.new, :some, :configuration, :options => 'here']
  end
  setup do
    post '/auth/my_strategy/callback', :user => { 'name' => 'Dylan', 'id' => '445' }
  end
end

Public Instance Methods

app() click to toggle source
# File lib/omniauth/test/strategy_test_case.rb, line 23
def app
  strat = self.strategy
  resp = self.app_response
  Rack::Builder.new {
    use OmniAuth::Test::PhonySession
    use *strat
    run lambda {|env| [404, {'Content-Type' => 'text/plain'}, [resp || env.key?('omniauth.auth').to_s]] }
  }.to_app
end
app_response() click to toggle source
# File lib/omniauth/test/strategy_test_case.rb, line 33
def app_response
  nil
end
session() click to toggle source
# File lib/omniauth/test/strategy_test_case.rb, line 37
def session
  last_request.env['rack.session']
end
strategy() click to toggle source
# File lib/omniauth/test/strategy_test_case.rb, line 41
def strategy
  raise NotImplementedError.new('Including specs must define #strategy')
end