summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/gitlab/oauth/user.rb1
-rw-r--r--spec/lib/gitlab/oauth/user_spec.rb12
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/gitlab/oauth/user.rb b/lib/gitlab/oauth/user.rb
index 5efd5799f9f..1b04dffc3a8 100644
--- a/lib/gitlab/oauth/user.rb
+++ b/lib/gitlab/oauth/user.rb
@@ -86,6 +86,7 @@ module Gitlab
end
def username
+ return unless auth.info.respond_to?(:nickname)
auth.info.nickname.to_s.force_encoding("utf-8")
end
diff --git a/spec/lib/gitlab/oauth/user_spec.rb b/spec/lib/gitlab/oauth/user_spec.rb
index d6ac0c0896b..7dcc849454b 100644
--- a/spec/lib/gitlab/oauth/user_spec.rb
+++ b/spec/lib/gitlab/oauth/user_spec.rb
@@ -68,5 +68,17 @@ describe Gitlab::OAuth::User do
user = gl_auth.create(auth)
expect(user.email).to_not be_empty
end
+
+ it 'generates a username if non provided (google)' do
+ info = double(
+ uid: 'my-uid',
+ name: 'John',
+ email: 'john@example.com'
+ )
+ auth = double(info: info, provider: 'my-provider')
+
+ user = gl_auth.create(auth)
+ expect(user.username).to eql 'john'
+ end
end
end