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)
-		}
+		// TODO: This doesn't check any error. AvatarLink should return (string, error)
+		url, _ := setting.LibravatarService.FromEmail(email)
+		return url
 	}
-	if len(url) == 0 && !setting.DisableGravatar {
-		url = setting.GravatarSource + HashEmail(email)
+
+	if !setting.DisableGravatar {
+		return setting.GravatarSource + HashEmail(email)
 	}
-	if len(url) == 0 {
-		url = setting.AppSubUrl + "/img/avatar_default.png"
-	}
-	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()