]> source.dussan.org Git - gitea.git/commitdiff
Test AvatarLink and refactor with tests passing
authorMatthias Loibl <mail@matthiasloibl.com>
Mon, 7 Nov 2016 20:13:38 +0000 (21:13 +0100)
committerMatthias Loibl <mail@matthiasloibl.com>
Mon, 7 Nov 2016 22:31:39 +0000 (23:31 +0100)
modules/base/tool.go
modules/base/tool_test.go

index 987e651985316c5f7cc1140bfc47f46cea6c3df9..ff072f857f33575a7dca7ccc570fc9beeba02ba3 100644 (file)
@@ -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
index 90b94a830880c5718d02951034bb1307efc604e5..bc46a2a8835dd4f8bfcf6b0f7d555df69741b3b1 100644 (file)
@@ -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()