1
0
Fork 0
mirror of https://github.com/omniauth/omniauth.git synced 2022-11-09 12:31:49 -05:00
omniauth--omniauth/spec/omniauth_spec.rb

181 lines
5.6 KiB
Ruby
Raw Normal View History

2013-02-25 19:05:37 -05:00
require 'helper'
2011-09-03 14:08:07 -04:00
describe OmniAuth do
2014-01-15 23:00:46 -05:00
describe '.strategies' do
it 'increases when a new strategy is made' do
expect do
class ExampleStrategy
include OmniAuth::Strategy
end
2014-01-15 23:00:46 -05:00
end.to change(OmniAuth.strategies, :size).by(1)
expect(OmniAuth.strategies.last).to eq(ExampleStrategy)
2011-09-03 14:08:07 -04:00
end
end
2014-01-15 23:00:46 -05:00
context 'configuration' do
describe '.defaults' do
it 'is a hash of default configuration' do
expect(OmniAuth::Configuration.defaults).to be_kind_of(Hash)
end
end
2014-01-15 23:00:46 -05:00
it 'is callable from .configure' do
2011-09-03 14:08:07 -04:00
OmniAuth.configure do |c|
expect(c).to be_kind_of(OmniAuth::Configuration)
2011-09-03 14:08:07 -04:00
end
end
before do
@old_path_prefix = OmniAuth.config.path_prefix
@old_on_failure = OmniAuth.config.on_failure
@old_before_callback_phase = OmniAuth.config.before_callback_phase
@old_before_options_phase = OmniAuth.config.before_options_phase
@old_before_request_phase = OmniAuth.config.before_request_phase
@old_request_validation_phase = OmniAuth.config.request_validation_phase
2011-09-03 14:08:07 -04:00
end
after do
OmniAuth.configure do |config|
config.path_prefix = @old_path_prefix
config.on_failure = @old_on_failure
config.before_callback_phase = @old_before_callback_phase
config.before_options_phase = @old_before_options_phase
config.before_request_phase = @old_before_request_phase
config.request_validation_phase = @old_request_validation_phase
2011-09-03 14:08:07 -04:00
end
end
2014-01-15 23:00:46 -05:00
it 'is able to set the path' do
2011-09-03 14:08:07 -04:00
OmniAuth.configure do |config|
config.path_prefix = '/awesome'
end
expect(OmniAuth.config.path_prefix).to eq('/awesome')
2011-09-03 14:08:07 -04:00
end
2014-01-15 23:00:46 -05:00
it 'is able to set the on_failure rack app' do
2011-09-03 14:08:07 -04:00
OmniAuth.configure do |config|
config.on_failure do
'yoyo'
end
end
expect(OmniAuth.config.on_failure.call).to eq('yoyo')
2011-09-03 14:08:07 -04:00
end
2014-01-15 23:00:46 -05:00
it 'is able to set hook on option_call' do
OmniAuth.configure do |config|
config.before_options_phase do
'yoyo'
end
end
expect(OmniAuth.config.before_options_phase.call).to eq('yoyo')
end
2014-01-15 23:00:46 -05:00
it 'is able to set hook on request_call' do
OmniAuth.configure do |config|
config.before_request_phase do
'heyhey'
end
end
expect(OmniAuth.config.before_request_phase.call).to eq('heyhey')
end
2014-01-15 23:00:46 -05:00
it 'is able to set hook on callback_call' do
OmniAuth.configure do |config|
config.before_callback_phase do
'heyhey'
end
end
expect(OmniAuth.config.before_callback_phase.call).to eq('heyhey')
end
it 'is able to set request_validation_phase' do
OmniAuth.configure do |config|
config.request_validation_phase do
'validated'
end
end
expect(OmniAuth.config.request_validation_phase.call).to eq('validated')
end
2014-01-15 23:00:46 -05:00
describe 'mock auth' do
before do
2015-11-10 23:14:34 -05:00
@auth_hash = {:uid => '12345', :info => {:name => 'Joe', :email => 'joe@example.com'}}
2017-01-17 11:50:31 -05:00
@original_auth_hash = @auth_hash.dup
2015-11-10 23:07:57 -05:00
OmniAuth.config.add_mock(:facebook, @auth_hash)
end
2014-01-16 00:04:44 -05:00
it 'default is AuthHash' do
OmniAuth.configure do |config|
expect(config.mock_auth[:default]).to be_kind_of(OmniAuth::AuthHash)
end
end
2014-01-16 00:04:44 -05:00
it 'facebook is AuthHash' do
OmniAuth.configure do |config|
expect(config.mock_auth[:facebook]).to be_kind_of(OmniAuth::AuthHash)
end
end
2014-01-15 23:00:46 -05:00
it 'sets facebook attributes' do
OmniAuth.configure do |config|
expect(config.mock_auth[:facebook].uid).to eq('12345')
expect(config.mock_auth[:facebook].info.name).to eq('Joe')
expect(config.mock_auth[:facebook].info.email).to eq('joe@example.com')
end
end
2015-11-10 23:07:57 -05:00
it 'does not mutate given auth hash' do
2015-11-10 23:14:34 -05:00
OmniAuth.configure do
2015-11-10 23:07:57 -05:00
expect(@auth_hash).to eq @original_auth_hash
end
end
end
2011-09-03 14:08:07 -04:00
end
2014-01-15 23:00:46 -05:00
describe '.logger' do
it 'calls through to the configured logger' do
allow(OmniAuth).to receive(:config).and_return(double(:logger => 'foo'))
expect(OmniAuth.logger).to eq('foo')
2012-04-12 16:50:13 -04:00
end
end
2014-01-15 23:00:46 -05:00
describe '::Utils' do
2020-03-02 15:09:14 -05:00
describe 'form_css' do
it 'returns a style tag with the configured form_css' do
allow(OmniAuth).to receive(:config).and_return(double(:form_css => 'css.css'))
expect(OmniAuth::Utils.form_css).to eq "<style type='text/css'>css.css</style>"
end
end
2014-01-15 23:00:46 -05:00
describe '.deep_merge' do
it 'combines hashes' do
2014-12-25 16:29:22 -05:00
expect(OmniAuth::Utils.deep_merge({'abc' => {'def' => 123}}, 'abc' => {'foo' => 'bar'})).to eq('abc' => {'def' => 123, 'foo' => 'bar'})
2011-09-03 14:08:07 -04:00
end
end
2014-01-15 23:00:46 -05:00
describe '.camelize' do
it 'works on normal cases' do
2011-09-03 14:08:07 -04:00
{
'some_word' => 'SomeWord',
'AnotherWord' => 'AnotherWord',
'one' => 'One',
'three_words_now' => 'ThreeWordsNow'
2014-01-15 23:00:46 -05:00
}.each_pair { |k, v| expect(OmniAuth::Utils.camelize(k)).to eq(v) }
2011-09-03 14:08:07 -04:00
end
2014-01-15 23:00:46 -05:00
it 'works in special cases that have been added' do
OmniAuth.config.add_camelization('oauth', 'OAuth')
expect(OmniAuth::Utils.camelize(:oauth)).to eq('OAuth')
2011-09-03 14:08:07 -04:00
end
it 'doesn\'t uppercase the first letter when passed false' do
expect(OmniAuth::Utils.camelize('apple_jack', false)).to eq('appleJack')
end
it 'replaces / with ::' do
expect(OmniAuth::Utils.camelize('apple_jack/cereal')).to eq('AppleJack::Cereal')
expect(OmniAuth::Utils.camelize('apple_jack/cereal', false)).to eq('appleJack::Cereal')
end
2011-09-03 14:08:07 -04:00
end
end
end