1
0
Fork 0
mirror of https://github.com/heartcombo/devise.git synced 2022-11-09 12:18:31 -05:00
heartcombo--devise/test/omniauth/config_test.rb

57 lines
No EOL
1.9 KiB
Ruby

require 'test_helper'
class OmniAuthConfigTest < ActiveSupport::TestCase
class MyStrategy
include OmniAuth::Strategy
end
test 'strategy_name returns provider if no options given' do
config = Devise::OmniAuth::Config.new :facebook, [{}]
assert_equal :facebook, config.strategy_name
end
test 'strategy_name returns provider if no name option are given' do
config = Devise::OmniAuth::Config.new :facebook, [{ :other => :option }]
assert_equal :facebook, config.strategy_name
end
test 'returns name option when have a name' do
config = Devise::OmniAuth::Config.new :facebook, [{ :name => :github }]
assert_equal :github, config.strategy_name
end
test "finds contrib strategies" do
config = Devise::OmniAuth::Config.new :facebook, [{}]
assert_equal OmniAuth::Strategies::Facebook, config.strategy_class
end
test "finds the strategy in OmniAuth's list by name" do
NamedTestStrategy = Class.new
NamedTestStrategy.send :include, OmniAuth::Strategy
NamedTestStrategy.option :name, :the_one
config = Devise::OmniAuth::Config.new :the_one, [{}]
assert_equal NamedTestStrategy, config.strategy_class
end
test "finds the strategy in OmniAuth's list by class name" do
UnNamedTestStrategy = Class.new
UnNamedTestStrategy.send :include, OmniAuth::Strategy
config = Devise::OmniAuth::Config.new :un_named_test_strategy, [{}]
assert_equal UnNamedTestStrategy, config.strategy_class
end
test 'raises an error if strategy cannot be found' do
config = Devise::OmniAuth::Config.new :my_other_strategy, [{}]
assert_raise Devise::OmniAuth::StrategyNotFound do
config.strategy_class
end
end
test 'allows the user to define a custom require path' do
config = Devise::OmniAuth::Config.new :my_strategy, [{:strategy_class => MyStrategy}]
config_class = config.strategy_class
assert_equal MyStrategy, config_class
end
end