describe Gitlab::Auth do
let(:gl_auth) { Gitlab::Auth.new }
- before do
- Gitlab.config.stub(omniauth: {})
-
- @info = mock(
- uid: '12djsak321',
- name: 'John',
- email: 'john@mail.com'
- )
- end
-
- describe :find_for_ldap_auth do
+ describe :find do
before do
- @auth = mock(
- uid: '12djsak321',
- info: @info,
- provider: 'ldap'
+ @user = create(
+ :user,
+ username: 'john',
+ password: '888777',
+ password_confirmation: '888777'
)
end
- it "should find by uid & provider" do
- User.should_receive :find_by_extern_uid_and_provider
- gl_auth.find_for_ldap_auth(@auth)
- end
-
- it "should update credentials by email if missing uid" do
- user = double('User')
- User.stub find_by_extern_uid_and_provider: nil
- User.stub find_by_email: user
- user.should_receive :update_attributes
- gl_auth.find_for_ldap_auth(@auth)
- end
-
-
- it "should create from auth if user does not exist"do
- User.stub find_by_extern_uid_and_provider: nil
- User.stub find_by_email: nil
- gl_auth.should_receive :create_from_omniauth
- gl_auth.find_for_ldap_auth(@auth)
- end
- end
-
- describe :find_or_new_for_omniauth do
- before do
- @auth = mock(
- info: @info,
- provider: 'twitter',
- uid: '12djsak321',
- )
+ it "should find user by valid login/password" do
+ gl_auth.find('john', '888777').should == @user
end
- it "should find user"do
- User.should_receive :find_by_provider_and_extern_uid
- gl_auth.should_not_receive :create_from_omniauth
- gl_auth.find_or_new_for_omniauth(@auth)
+ it "should not find user with invalid password" do
+ gl_auth.find('john', 'invalid').should_not == @user
end
- it "should not create user"do
- User.stub find_by_provider_and_extern_uid: nil
- gl_auth.should_not_receive :create_from_omniauth
- gl_auth.find_or_new_for_omniauth(@auth)
- end
-
- it "should create user if single_sing_on"do
- Gitlab.config.omniauth['allow_single_sign_on'] = true
- User.stub find_by_provider_and_extern_uid: nil
- gl_auth.should_receive :create_from_omniauth
- gl_auth.find_or_new_for_omniauth(@auth)
- end
- end
-
- describe :create_from_omniauth do
- it "should create user from LDAP" do
- @auth = mock(info: @info, provider: 'ldap')
- user = gl_auth.create_from_omniauth(@auth, true)
-
- user.should be_valid
- user.extern_uid.should == @info.uid
- user.provider.should == 'ldap'
- end
-
- it "should create user from Omniauth" do
- @auth = mock(info: @info, provider: 'twitter')
- user = gl_auth.create_from_omniauth(@auth, false)
-
- user.should be_valid
- user.extern_uid.should == @info.uid
- user.provider.should == 'twitter'
- end
-
- it "should apply defaults to user" do
- @auth = mock(info: @info, provider: 'ldap')
- user = gl_auth.create_from_omniauth(@auth, true)
-
- user.should be_valid
- user.projects_limit.should == Gitlab.config.gitlab.default_projects_limit
- user.can_create_group.should == Gitlab.config.gitlab.default_can_create_group
+ it "should not find user with invalid login and password" do
+ gl_auth.find('jon', 'invalid').should_not == @user
end
end
end
--- /dev/null
+require 'spec_helper'
+
+describe Gitlab::OAuth::User do
+ let(:gl_auth) { Gitlab::OAuth::User }
+
+ before do
+ Gitlab.config.stub(omniauth: {})
+
+ @info = mock(
+ uid: '12djsak321',
+ name: 'John',
+ email: 'john@mail.com'
+ )
+ end
+
+ describe :create do
+ it "should create user from LDAP" do
+ @auth = mock(info: @info, provider: 'ldap')
+ user = gl_auth.create(@auth)
+
+ user.should be_valid
+ user.extern_uid.should == @info.uid
+ user.provider.should == 'ldap'
+ end
+
+ it "should create user from Omniauth" do
+ @auth = mock(info: @info, provider: 'twitter')
+ user = gl_auth.create(@auth)
+
+ user.should be_valid
+ user.extern_uid.should == @info.uid
+ user.provider.should == 'twitter'
+ end
+
+ it "should apply defaults to user" do
+ @auth = mock(info: @info, provider: 'ldap')
+ user = gl_auth.create(@auth)
+
+ user.should be_valid
+ user.projects_limit.should == Gitlab.config.gitlab.default_projects_limit
+ user.can_create_group.should == Gitlab.config.gitlab.default_can_create_group
+ end
+ end
+end