Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Jérome Perrin
gitlab-ce
Commits
e4e01dbf
Commit
e4e01dbf
authored
Jun 18, 2015
by
Robert Speicher
Committed by
Dmitriy Zaporozhets
Jun 22, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix Gitlab::OAuth::User spec
parent
1dd42da8
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
48 additions
and
37 deletions
+48
-37
spec/lib/gitlab/o_auth/user_spec.rb
spec/lib/gitlab/o_auth/user_spec.rb
+48
-37
No files found.
spec/lib/gitlab/o_auth/user_spec.rb
View file @
e4e01dbf
...
...
@@ -19,23 +19,34 @@ describe Gitlab::OAuth::User do
let!
(
:existing_user
)
{
create
(
:omniauth_user
,
extern_uid:
'my-uid'
,
provider:
'my-provider'
)
}
it
"finds an existing user based on uid and provider (facebook)"
do
# FIXME (rspeicher): It's unlikely that this test is actually doing anything
# `auth` is never used and removing it entirely doesn't break the test, so
# what's it doing?
auth
=
double
(
info:
double
(
name:
'John'
),
uid:
'my-uid'
,
provider:
'my-provider'
)
expect
(
oauth_user
.
persisted?
).
to
be_truthy
end
it
"returns false if use is not found in database"
do
a
uth_hash
.
stub
(
uid:
'non-existing'
)
a
llow
(
auth_hash
).
to
receive
(
:uid
).
and_return
(
'non-existing'
)
expect
(
oauth_user
.
persisted?
).
to
be_falsey
end
end
describe
:save
do
def
stub_omniauth_config
(
messages
)
allow
(
Gitlab
.
config
.
omniauth
).
to
receive_messages
(
messages
)
end
def
stub_ldap_config
(
messages
)
allow
(
Gitlab
::
LDAP
::
Config
).
to
receive_messages
(
messages
)
end
let
(
:provider
)
{
'twitter'
}
describe
'signup'
do
shared_examples
"to verify compliance with allow_single_sign_on"
do
context
"with allow_single_sign_on enabled"
do
before
{
Gitlab
.
config
.
omniauth
.
stub
allow_single_sign_on:
true
}
before
{
stub_omniauth_config
(
allow_single_sign_on:
true
)
}
it
"creates a user from Omniauth"
do
oauth_user
.
save
...
...
@@ -48,7 +59,7 @@ describe Gitlab::OAuth::User do
end
context
"with allow_single_sign_on disabled (Default)"
do
before
{
Gitlab
.
config
.
omniauth
.
stub
allow_single_sign_on:
false
}
before
{
stub_omniauth_config
(
allow_single_sign_on:
false
)
}
it
"throws an error"
do
expect
{
oauth_user
.
save
}.
to
raise_error
StandardError
end
...
...
@@ -56,36 +67,36 @@ describe Gitlab::OAuth::User do
end
context
"with auto_link_ldap_user disabled (default)"
do
before
{
Gitlab
.
config
.
omniauth
.
stub
auto_link_ldap_user:
false
}
before
{
stub_omniauth_config
(
auto_link_ldap_user:
false
)
}
include_examples
"to verify compliance with allow_single_sign_on"
end
context
"with auto_link_ldap_user enabled"
do
before
{
Gitlab
.
config
.
omniauth
.
stub
auto_link_ldap_user:
true
}
before
{
stub_omniauth_config
(
auto_link_ldap_user:
true
)
}
context
"and no LDAP provider defined"
do
before
{
allow
(
Gitlab
::
LDAP
::
Config
).
to
receive
(
:providers
).
and_return
(
[])
}
before
{
stub_ldap_config
(
providers:
[])
}
include_examples
"to verify compliance with allow_single_sign_on"
end
context
"and at least one LDAP provider is defined"
do
before
{
allow
(
Gitlab
::
LDAP
::
Config
).
to
receive
(
:providers
).
and_return
([
'ldapmain'
]
)
}
before
{
stub_ldap_config
(
providers:
%w(ldapmain)
)
}
context
"and a corresponding LDAP person"
do
before
do
ldap_user
.
stub
(
:uid
)
{
uid
}
ldap_user
.
stub
(
:username
)
{
uid
}
ldap_user
.
stub
(
:email
)
{
[
'johndoe@example.com'
,
'john2@example.com'
]
}
ldap_user
.
stub
(
:dn
)
{
'uid=user1,ou=People,dc=example'
}
allow
(
ldap_user
).
to
receive
(
:uid
)
{
uid
}
allow
(
ldap_user
).
to
receive
(
:username
)
{
uid
}
allow
(
ldap_user
).
to
receive
(
:email
)
{
[
'johndoe@example.com'
,
'john2@example.com'
]
}
allow
(
ldap_user
).
to
receive
(
:dn
)
{
'uid=user1,ou=People,dc=example'
}
allow
(
Gitlab
::
LDAP
::
Person
).
to
receive
(
:find_by_uid
).
and_return
(
ldap_user
)
end
context
"and no account for the LDAP user"
do
it
"creates a user with dual LDAP and omniauth identities"
do
oauth_user
.
save
expect
(
gl_user
).
to
be_valid
expect
(
gl_user
.
username
).
to
eql
uid
expect
(
gl_user
.
email
).
to
eql
'johndoe@example.com'
...
...
@@ -97,12 +108,12 @@ describe Gitlab::OAuth::User do
])
end
end
context
"and LDAP user has an account already"
do
let!
(
:existing_user
)
{
create
(
:omniauth_user
,
email:
'john@example.com'
,
extern_uid:
'uid=user1,ou=People,dc=example'
,
provider:
'ldapmain'
,
username:
'john'
)
}
it
"adds the omniauth identity to the LDAP account"
do
oauth_user
.
save
expect
(
gl_user
).
to
be_valid
expect
(
gl_user
.
username
).
to
eql
'john'
expect
(
gl_user
.
email
).
to
eql
'john@example.com'
...
...
@@ -115,10 +126,10 @@ describe Gitlab::OAuth::User do
end
end
end
context
"and no corresponding LDAP person"
do
before
{
allow
(
Gitlab
::
LDAP
::
Person
).
to
receive
(
:find_by_uid
).
and_return
(
nil
)
}
include_examples
"to verify compliance with allow_single_sign_on"
end
end
...
...
@@ -128,11 +139,11 @@ describe Gitlab::OAuth::User do
describe
'blocking'
do
let
(
:provider
)
{
'twitter'
}
before
{
Gitlab
.
config
.
omniauth
.
stub
allow_single_sign_on:
true
}
before
{
stub_omniauth_config
(
allow_single_sign_on:
true
)
}
context
'signup with omniauth only'
do
context
'dont block on create'
do
before
{
Gitlab
.
config
.
omniauth
.
stub
block_auto_created_users:
false
}
before
{
stub_omniauth_config
(
block_auto_created_users:
false
)
}
it
do
oauth_user
.
save
...
...
@@ -142,7 +153,7 @@ describe Gitlab::OAuth::User do
end
context
'block on create'
do
before
{
Gitlab
.
config
.
omniauth
.
stub
block_auto_created_users:
true
}
before
{
stub_omniauth_config
(
block_auto_created_users:
true
)
}
it
do
oauth_user
.
save
...
...
@@ -154,17 +165,17 @@ describe Gitlab::OAuth::User do
context
'signup with linked omniauth and LDAP account'
do
before
do
Gitlab
.
config
.
omniauth
.
stub
auto_link_ldap_user:
true
ldap_user
.
stub
(
:uid
)
{
uid
}
ldap_user
.
stub
(
:username
)
{
uid
}
ldap_user
.
stub
(
:email
)
{
[
'johndoe@example.com'
,
'john2@example.com'
]
}
ldap_user
.
stub
(
:dn
)
{
'uid=user1,ou=People,dc=example'
}
stub_omniauth_config
(
auto_link_ldap_user:
true
)
allow
(
ldap_user
).
to
receive
(
:uid
)
{
uid
}
allow
(
ldap_user
).
to
receive
(
:username
)
{
uid
}
allow
(
ldap_user
).
to
receive
(
:email
)
{
[
'johndoe@example.com'
,
'john2@example.com'
]
}
allow
(
ldap_user
).
to
receive
(
:dn
)
{
'uid=user1,ou=People,dc=example'
}
allow
(
oauth_user
).
to
receive
(
:ldap_person
).
and_return
(
ldap_user
)
end
context
"and no account for the LDAP user"
do
context
'dont block on create (LDAP)'
do
before
{
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
block_auto_created_users:
false
}
before
{
allow_any_instance_of
(
Gitlab
::
LDAP
::
Config
).
to
receive_messages
(
block_auto_created_users:
false
)
}
it
do
oauth_user
.
save
...
...
@@ -174,7 +185,7 @@ describe Gitlab::OAuth::User do
end
context
'block on create (LDAP)'
do
before
{
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
block_auto_created_users:
true
}
before
{
allow_any_instance_of
(
Gitlab
::
LDAP
::
Config
).
to
receive_messages
(
block_auto_created_users:
true
)
}
it
do
oauth_user
.
save
...
...
@@ -188,7 +199,7 @@ describe Gitlab::OAuth::User do
let!
(
:existing_user
)
{
create
(
:omniauth_user
,
email:
'john@example.com'
,
extern_uid:
'uid=user1,ou=People,dc=example'
,
provider:
'ldapmain'
,
username:
'john'
)
}
context
'dont block on create (LDAP)'
do
before
{
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
block_auto_created_users:
false
}
before
{
allow_any_instance_of
(
Gitlab
::
LDAP
::
Config
).
to
receive_messages
(
block_auto_created_users:
false
)
}
it
do
oauth_user
.
save
...
...
@@ -198,7 +209,7 @@ describe Gitlab::OAuth::User do
end
context
'block on create (LDAP)'
do
before
{
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
block_auto_created_users:
true
}
before
{
allow_any_instance_of
(
Gitlab
::
LDAP
::
Config
).
to
receive_messages
(
block_auto_created_users:
true
)
}
it
do
oauth_user
.
save
...
...
@@ -217,7 +228,7 @@ describe Gitlab::OAuth::User do
end
context
'dont block on create'
do
before
{
Gitlab
.
config
.
omniauth
.
stub
block_auto_created_users:
false
}
before
{
stub_omniauth_config
(
block_auto_created_users:
false
)
}
it
do
oauth_user
.
save
...
...
@@ -227,7 +238,7 @@ describe Gitlab::OAuth::User do
end
context
'block on create'
do
before
{
Gitlab
.
config
.
omniauth
.
stub
block_auto_created_users:
true
}
before
{
stub_omniauth_config
(
block_auto_created_users:
true
)
}
it
do
oauth_user
.
save
...
...
@@ -237,7 +248,7 @@ describe Gitlab::OAuth::User do
end
context
'dont block on create (LDAP)'
do
before
{
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
block_auto_created_users:
false
}
before
{
allow_any_instance_of
(
Gitlab
::
LDAP
::
Config
).
to
receive_messages
(
block_auto_created_users:
false
)
}
it
do
oauth_user
.
save
...
...
@@ -247,7 +258,7 @@ describe Gitlab::OAuth::User do
end
context
'block on create (LDAP)'
do
before
{
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
block_auto_created_users:
true
}
before
{
allow_any_instance_of
(
Gitlab
::
LDAP
::
Config
).
to
receive_messages
(
block_auto_created_users:
true
)
}
it
do
oauth_user
.
save
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment