2011-09-22 19:49:22 -04:00
|
|
|
require 'spec_helper'
|
2011-09-03 14:08:07 -04:00
|
|
|
|
|
|
|
describe OmniAuth do
|
2012-10-10 04:32:55 -04:00
|
|
|
describe ".strategies" do
|
|
|
|
it "increases when a new strategy is made" do
|
|
|
|
expect{
|
|
|
|
class ExampleStrategy
|
|
|
|
include OmniAuth::Strategy
|
|
|
|
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
|
|
|
|
|
2012-10-10 04:32:55 -04:00
|
|
|
context "configuration" do
|
|
|
|
describe ".defaults" do
|
|
|
|
it "is a hash of default configuration" do
|
|
|
|
expect(OmniAuth::Configuration.defaults).to be_kind_of(Hash)
|
2011-09-26 12:44:17 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2012-10-10 04:32:55 -04:00
|
|
|
it "is callable from .configure" do
|
2011-09-03 14:08:07 -04:00
|
|
|
OmniAuth.configure do |c|
|
2012-10-10 04:32:55 -04:00
|
|
|
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
|
|
|
|
end
|
|
|
|
|
|
|
|
after do
|
|
|
|
OmniAuth.configure do |config|
|
|
|
|
config.path_prefix = @old_path_prefix
|
|
|
|
config.on_failure = @old_on_failure
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2012-10-10 04:32:55 -04: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
|
|
|
|
|
2012-10-10 04:32:55 -04:00
|
|
|
expect(OmniAuth.config.path_prefix).to eq('/awesome')
|
2011-09-03 14:08:07 -04:00
|
|
|
end
|
|
|
|
|
2012-10-10 04:32:55 -04: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
|
|
|
|
|
2012-10-10 04:32:55 -04:00
|
|
|
expect(OmniAuth.config.on_failure.call).to eq('yoyo')
|
2011-09-03 14:08:07 -04:00
|
|
|
end
|
2012-10-10 04:32:55 -04:00
|
|
|
describe "mock auth" do
|
2012-01-05 05:44:51 -05:00
|
|
|
before do
|
|
|
|
OmniAuth.config.add_mock(:facebook, :uid => '12345',:info=>{:name=>'Joe', :email=>'joe@example.com'})
|
|
|
|
end
|
2012-10-10 04:32:55 -04:00
|
|
|
it "default should be AuthHash" do
|
2012-01-05 05:44:51 -05:00
|
|
|
OmniAuth.configure do |config|
|
2012-10-10 04:32:55 -04:00
|
|
|
expect(config.mock_auth[:default]).to be_kind_of(OmniAuth::AuthHash)
|
2012-01-05 05:44:51 -05:00
|
|
|
end
|
|
|
|
end
|
2012-10-10 04:32:55 -04:00
|
|
|
it "facebook should be AuthHash" do
|
2012-01-05 05:44:51 -05:00
|
|
|
OmniAuth.configure do |config|
|
2012-10-10 04:32:55 -04:00
|
|
|
expect(config.mock_auth[:facebook]).to be_kind_of(OmniAuth::AuthHash)
|
|
|
|
end
|
2012-01-05 05:44:51 -05:00
|
|
|
end
|
2012-10-10 04:32:55 -04:00
|
|
|
it "sets facebook attributes" do
|
2012-01-05 05:44:51 -05:00
|
|
|
OmniAuth.configure do |config|
|
2012-10-10 04:32:55 -04:00
|
|
|
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')
|
2012-01-05 05:44:51 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2011-09-03 14:08:07 -04:00
|
|
|
end
|
|
|
|
|
2012-10-10 04:32:55 -04:00
|
|
|
describe ".logger" do
|
|
|
|
it "calls through to the configured logger" do
|
2012-04-12 16:50:13 -04:00
|
|
|
OmniAuth.stub(:config => mock(:logger => "foo"))
|
2012-10-10 04:32:55 -04:00
|
|
|
expect(OmniAuth.logger).to eq("foo")
|
2012-04-12 16:50:13 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2012-10-10 04:32:55 -04:00
|
|
|
describe "::Utils" do
|
|
|
|
describe ".deep_merge" do
|
|
|
|
it "combines hashes" do
|
|
|
|
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
|
|
|
|
|
2012-10-10 04:32:55 -04: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'
|
2012-10-10 04:32:55 -04:00
|
|
|
}.each_pair{ |k,v| expect(OmniAuth::Utils.camelize(k)).to eq(v) }
|
2011-09-03 14:08:07 -04:00
|
|
|
end
|
|
|
|
|
2012-10-10 04:32:55 -04:00
|
|
|
it "works in special cases that have been added" do
|
2011-09-22 19:49:22 -04:00
|
|
|
OmniAuth.config.add_camelization('oauth', 'OAuth')
|
2012-10-10 04:32:55 -04:00
|
|
|
expect(OmniAuth::Utils.camelize(:oauth)).to eq('OAuth')
|
2011-09-03 14:08:07 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|