150 lines
4.2 KiB
Ruby
150 lines
4.2 KiB
Ruby
require 'spec_helper_integration'
|
|
|
|
describe Doorkeeper do
|
|
describe "#authenticate" do
|
|
let(:request) { double }
|
|
|
|
it "calls OAuth::Token#authenticate" do
|
|
token_strategies = Doorkeeper.configuration.access_token_methods
|
|
|
|
expect(Doorkeeper::OAuth::Token).to receive(:authenticate).
|
|
with(request, *token_strategies)
|
|
|
|
Doorkeeper.authenticate(request)
|
|
end
|
|
|
|
it "accepts custom token strategies" do
|
|
token_strategies = [:first_way, :second_way]
|
|
|
|
expect(Doorkeeper::OAuth::Token).to receive(:authenticate).
|
|
with(request, *token_strategies)
|
|
|
|
Doorkeeper.authenticate(request, token_strategies)
|
|
end
|
|
end
|
|
|
|
describe "#configured?" do
|
|
after do
|
|
Doorkeeper.remove_instance_variable(:@config)
|
|
end
|
|
|
|
context "@config is set" do
|
|
it "returns true" do
|
|
Doorkeeper.instance_variable_set(:@config, "hi")
|
|
|
|
expect(Doorkeeper.configured?).to eq(true)
|
|
end
|
|
end
|
|
|
|
context "@config is not set" do
|
|
it "returns false" do
|
|
Doorkeeper.instance_variable_set(:@config, nil)
|
|
|
|
expect(Doorkeeper.configured?).to eq(false)
|
|
end
|
|
end
|
|
|
|
it "is deprecated" do
|
|
expect(ActiveSupport::Deprecation).to receive(:warn).
|
|
with("Method `Doorkeeper#configured?` has been deprecated without replacement.")
|
|
|
|
Doorkeeper.configured?
|
|
end
|
|
end
|
|
|
|
describe "#database_installed?" do
|
|
before do
|
|
["AccessToken", "AccessGrant", "Application"].each do |klass|
|
|
@original_classes ||= {}
|
|
@original_classes[klass] = Doorkeeper.const_get(klass)
|
|
Doorkeeper.send(:remove_const, klass)
|
|
end
|
|
end
|
|
|
|
after do
|
|
["AccessToken", "AccessGrant", "Application"].each do |klass|
|
|
Doorkeeper.send(:remove_const, klass)
|
|
Doorkeeper.const_set(klass, @original_classes[klass])
|
|
end
|
|
end
|
|
|
|
context "all tables exist" do
|
|
before do
|
|
klass = double table_exists?: true
|
|
|
|
Doorkeeper.const_set(:AccessToken, klass)
|
|
Doorkeeper.const_set(:AccessGrant, klass)
|
|
Doorkeeper.const_set(:Application, klass)
|
|
end
|
|
|
|
it "returns true" do
|
|
expect(Doorkeeper.database_installed?).to eq(true)
|
|
end
|
|
|
|
it "is deprecated" do
|
|
expect(ActiveSupport::Deprecation).to receive(:warn).
|
|
with("Method `Doorkeeper#database_installed?` has been deprecated without replacement.")
|
|
|
|
Doorkeeper.database_installed?
|
|
end
|
|
end
|
|
|
|
context "all tables do not exist" do
|
|
before do
|
|
klass = double table_exists?: false
|
|
|
|
Doorkeeper.const_set(:AccessToken, klass)
|
|
Doorkeeper.const_set(:AccessGrant, klass)
|
|
Doorkeeper.const_set(:Application, klass)
|
|
end
|
|
|
|
it "returns false" do
|
|
expect(Doorkeeper.database_installed?).to eq(false)
|
|
end
|
|
|
|
it "is deprecated" do
|
|
expect(ActiveSupport::Deprecation).to receive(:warn).
|
|
with("Method `Doorkeeper#database_installed?` has been deprecated without replacement.")
|
|
|
|
Doorkeeper.database_installed?
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "#installed?" do
|
|
context "methods return true" do
|
|
before do
|
|
allow(Doorkeeper).to receive(:configured?).and_return(true).once
|
|
allow(Doorkeeper).to receive(:database_installed?).and_return(true).once
|
|
end
|
|
|
|
it "returns true" do
|
|
expect(Doorkeeper.installed?).to eq(true)
|
|
end
|
|
end
|
|
|
|
context "methods return false" do
|
|
before do
|
|
allow(Doorkeeper).to receive(:configured?).and_return(false).once
|
|
allow(Doorkeeper).to receive(:database_installed?).and_return(false).once
|
|
end
|
|
|
|
it "returns false" do
|
|
expect(Doorkeeper.installed?).to eq(false)
|
|
end
|
|
end
|
|
|
|
it "is deprecated" do
|
|
expect(ActiveSupport::Deprecation).to receive(:warn).
|
|
with("Method `Doorkeeper#configured?` has been deprecated without replacement.")
|
|
|
|
expect(ActiveSupport::Deprecation).to receive(:warn).
|
|
with("Method `Doorkeeper#database_installed?` has been deprecated without replacement.")
|
|
|
|
expect(ActiveSupport::Deprecation).to receive(:warn).
|
|
with("Method `Doorkeeper#installed?` has been deprecated without replacement.")
|
|
|
|
Doorkeeper.installed?
|
|
end
|
|
end
|
|
end
|