Commit e3a419aa authored by Valery Sizov's avatar Valery Sizov

Kerberos: specs

parent 8a799319
......@@ -17,4 +17,16 @@ describe OauthHelper do
helper.additional_providers.should == []
end
end
describe "kerberos_enabled?" do
it 'returns true' do
allow(helper).to receive(:enabled_oauth_providers) { [:twitter, :github, :kerberos] }
helper.kerberos_enabled?.should be_true
end
it 'returns false' do
allow(helper).to receive(:enabled_oauth_providers) { [:twitter, :ldapmain] }
helper.kerberos_enabled?.should be_false
end
end
end
\ No newline at end of file
......@@ -35,6 +35,17 @@ describe Gitlab::Auth do
expect( gl_auth.find(username, password) ).to_not eql user
end
context "with kerberos" do
before { Devise.stub(omniauth_providers: [:kerberos]) }
it "finds user" do
Gitlab::Kerberos::Authentication.stub(valid?: true)
Gitlab::Kerberos::Authentication.stub(email: user.email)
expect( gl_auth.find(username, password) ).to eql user
end
end
context "with ldap enabled" do
before { Gitlab::LDAP::Config.stub(enabled?: true) }
......
require 'spec_helper'
describe Gitlab::Kerberos::Authentication do
let(:klass) { Gitlab::Kerberos::Authentication }
let(:user) { create(:user) }
let(:login) { 'john' }
let(:password) { 'password' }
describe :login do
before do
Devise.stub(omniauth_providers: [:kerberos])
end
it "finds the user if authentication is successful" do
kerberos_login = user.email.sub(/@.*/, '')
kerberos_realm = user.email.sub(/.*@/, '')
::Krb5Auth::Krb5.any_instance.stub(get_init_creds_password: true)
::Krb5Auth::Krb5.any_instance.stub(get_default_realm: kerberos_realm)
expect(klass.login(kerberos_login, password)).to be_true
end
it "returns false if there is no such user in kerberos" do
kerberos_login = "some-login"
kerberos_realm = user.email.sub(/.*@/, '')
::Krb5Auth::Krb5.any_instance.stub(get_init_creds_password: true)
::Krb5Auth::Krb5.any_instance.stub(get_default_realm: kerberos_realm)
expect(klass.login(kerberos_login, password)).to be_false
end
it "returns false if kerberos user is valid but system has wrong realm" do
kerberos_login = user.email.sub(/@.*/, '')
kerberos_realm = "some-realm.com"
::Krb5Auth::Krb5.any_instance.stub(get_init_creds_password: true)
::Krb5Auth::Krb5.any_instance.stub(get_default_realm: kerberos_realm)
expect(klass.login(kerberos_login, password)).to be_false
end
end
end
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment