diff --git a/modules/base/tool.go b/modules/base/tool.go index 987e65198..ff072f857 100644 --- a/modules/base/tool.go +++ b/modules/base/tool.go @@ -202,21 +202,18 @@ func HashEmail(email string) string { // AvatarLink returns relative avatar link to the site domain by given email, // which includes app sub-url as prefix. However, it is possible // to return full URL if user enables Gravatar-like service. -func AvatarLink(email string) (url string) { +func AvatarLink(email string) string { if setting.EnableFederatedAvatar && setting.LibravatarService != nil { - var err error - url, err = setting.LibravatarService.FromEmail(email) - if err != nil { - log.Error(1, "LibravatarService.FromEmail: %v", err) - } - } - if len(url) == 0 && !setting.DisableGravatar { - url = setting.GravatarSource + HashEmail(email) + // TODO: This doesn't check any error. AvatarLink should return (string, error) + url, _ := setting.LibravatarService.FromEmail(email) + return url } - if len(url) == 0 { - url = setting.AppSubUrl + "/img/avatar_default.png" + + if !setting.DisableGravatar { + return setting.GravatarSource + HashEmail(email) } - return url + + return setting.AppSubUrl + "/img/avatar_default.png" } // Seconds-based time units diff --git a/modules/base/tool_test.go b/modules/base/tool_test.go index 90b94a830..bc46a2a88 100644 --- a/modules/base/tool_test.go +++ b/modules/base/tool_test.go @@ -1,8 +1,11 @@ package base import ( - "github.com/stretchr/testify/assert" "testing" + + "github.com/go-gitea/gitea/modules/setting" + "github.com/stretchr/testify/assert" + "strk.kbt.io/projects/go/libravatar" ) func TestEncodeMD5(t *testing.T) { @@ -46,6 +49,25 @@ func TestHashEmail(t *testing.T) { assert.Equal(t, "353cbad9b58e69c96154ad99f92bedc7", HashEmail("gitea@example.com")) } +func TestAvatarLink(t *testing.T) { + setting.EnableFederatedAvatar = false + setting.LibravatarService = nil + setting.DisableGravatar = true + + assert.Equal(t, "/img/avatar_default.png", AvatarLink("")) + + setting.DisableGravatar = false + assert.Equal(t, "353cbad9b58e69c96154ad99f92bedc7", AvatarLink("gitea@example.com")) + + setting.EnableFederatedAvatar = true + assert.Equal(t, "353cbad9b58e69c96154ad99f92bedc7", AvatarLink("gitea@example.com")) + setting.LibravatarService = libravatar.New() + assert.Equal(t, + "http://cdn.libravatar.org/avatar/353cbad9b58e69c96154ad99f92bedc7", + AvatarLink("gitea@example.com"), + ) +} + // TODO: AvatarLink() // TODO: computeTimeDiff() // TODO: TimeSincePro()