Module: OmniAuth::Test::StrategyTestCase

Defined in:
lib/omniauth/test/strategy_test_case.rb

Overview

Support for testing OmniAuth strategies.

Examples:

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

Instance Method Summary collapse

Instance Method Details

#appObject



23
24
25
26
27
28
29
30
31
# 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_responseObject



33
34
35
# File 'lib/omniauth/test/strategy_test_case.rb', line 33

def app_response
  nil
end

#sessionObject



37
38
39
# File 'lib/omniauth/test/strategy_test_case.rb', line 37

def session
  last_request.env['rack.session']
end

#strategyObject

Raises:

  • (NotImplementedError)


41
42
43
# File 'lib/omniauth/test/strategy_test_case.rb', line 41

def strategy
  raise NotImplementedError.new('Including specs must define #strategy')
end