Test AvatarLink and refactor with tests passing

This commit is contained in:
Matthias Loibl 2016-11-07 21:13:38 +01:00
parent a5d0b4de5b
commit f81711f40d
No known key found for this signature in database
GPG Key ID: B1C7DF661ABB2C1A
2 changed files with 32 additions and 13 deletions

View File

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

View 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()