From 114438919eccebaa8d3d4274fe370c36a63c70a7 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 12 Jul 2018 14:55:22 +0200 Subject: [PATCH] [frontend] Move more tests around for icon route drop --- src/api/app/helpers/webui/user_helper.rb | 5 ++-- src/api/app/models/user.rb | 4 +++ .../spec/helpers/webui/user_helper_spec.rb | 23 +++++++++++++++- src/api/spec/models/user_spec.rb | 26 ------------------- 4 files changed, 28 insertions(+), 30 deletions(-) diff --git a/src/api/app/helpers/webui/user_helper.rb b/src/api/app/helpers/webui/user_helper.rb index 6b9a1f6860d..ac43e2e7051 100644 --- a/src/api/app/helpers/webui/user_helper.rb +++ b/src/api/app/helpers/webui/user_helper.rb @@ -5,8 +5,7 @@ def user_image_tag(user, opt = {}) alt = user.try(:login) if alt.empty? size = opt[:size] || 20 if user && ::Configuration.gravatar - hash = Digest::MD5.hexdigest(user.email.downcase) - url = "http://www.gravatar.com/avatar/#{hash}?s=#{size}&d=wavatar" + url = "http://www.gravatar.com/avatar/#{user.gravatar_hash}?s=#{size}&d=wavatar" else url = 'default_face.png' end @@ -68,7 +67,7 @@ def user_with_realname_and_icon(user, opts = {}) printed_name = "#{realname} (#{user.login})" end - user_icon(user) + ' ' + link_to(printed_name, user_show_path(user)) + user_image_tag(user) + ' ' + link_to(printed_name, user_show_path(user)) end end diff --git a/src/api/app/models/user.rb b/src/api/app/models/user.rb index e4a264e5591..3d9165a3b15 100644 --- a/src/api/app/models/user.rb +++ b/src/api/app/models/user.rb @@ -838,6 +838,10 @@ def mark_login! update_attributes(last_logged_in_at: Time.now, login_failure_count: 0) end + def gravatar_hash + Digest::MD5.hexdigest(email.downcase) + end + private def password_validation diff --git a/src/api/spec/helpers/webui/user_helper_spec.rb b/src/api/spec/helpers/webui/user_helper_spec.rb index b059d791b1e..a6820366e63 100644 --- a/src/api/spec/helpers/webui/user_helper_spec.rb +++ b/src/api/spec/helpers/webui/user_helper_spec.rb @@ -39,13 +39,15 @@ context 'for users that are not logged in' do before do + user.email = 'greatguy@nowhere.fi' + user.save User.current = anonymous_user end it 'does not link to user profiles' do expect(user_and_role(user.login)).to eq( "\"#{CGI.escapeHTML(user.realname)}\"#{CGI.escapeHTML(user.realname)} (#{user.login})" + "src=\"http://www.gravatar.com/avatar/803d88429659fa6549ee1a10ccdfbd47?s=20&d=wavatar\" />#{CGI.escapeHTML(user.realname)} (#{user.login})" ) end end @@ -71,4 +73,23 @@ expect(requester_str(creator.login, nil, 'ana-team')).to include('group', 'ana-team') end end + + describe '#user_image_tag' do + let(:user) { create(:user, realname: 'Digger', email: 'gordo@example.com') } + context 'with gravatar configuration disabled' do + before do + allow(Configuration).to receive(:gravatar).and_return(false) + end + + it 'returns default face' do + expect(user_image_tag(user)).to eq('Digger') + end + end + + context 'with gravatar configuration enabled' do + it 'returns gravatar url' do + expect(user_image_tag(user)).to eq('Digger') + end + end + end end diff --git a/src/api/spec/models/user_spec.rb b/src/api/spec/models/user_spec.rb index adb8197c2b3..d3881537c3c 100644 --- a/src/api/spec/models/user_spec.rb +++ b/src/api/spec/models/user_spec.rb @@ -551,30 +551,4 @@ expect(user.can_create_project?('foo:bar')).to be true end end - - describe '#gravatar_image' do - context 'gravatar configuration disabled' do - before do - allow(Configuration).to receive(:gravatar).and_return(false) - end - - it { expect(user.gravatar_image(0)).to eq(:none) } - end - - context 'gravatar configuration enabled' do - context 'problems loading the image' do - before do - allow(ActiveXML.backend).to receive(:load_external_url).and_raise(ActiveXML::Transport::Error) - end - - it { expect(user.gravatar_image(0)).to eq(:none) } - end - - before do - allow(ActiveXML.backend).to receive(:load_external_url).with(anything).and_return('some_content') - end - - it { expect(user.gravatar_image(0)).to eq('some_content') } - end - end end