diff --git a/pkg/utils/avatar.go b/pkg/utils/avatar.go index bb0bb313..620aca0f 100644 --- a/pkg/utils/avatar.go +++ b/pkg/utils/avatar.go @@ -1,11 +1,16 @@ package utils -import "fmt" +import ( + "fmt" + "strings" +) const gravatarUrlFormat = "https://www.gravatar.com/avatar/%s" // GetGravatarUrl returns the Gravatar url according to the specified user email address func GetGravatarUrl(email string) string { + email = strings.TrimSpace(email) + email = strings.ToLower(email) emailMd5 := MD5EncodeToString([]byte(email)) return fmt.Sprintf(gravatarUrlFormat, emailMd5) } diff --git a/pkg/utils/avatar_test.go b/pkg/utils/avatar_test.go new file mode 100644 index 00000000..ef7b52a3 --- /dev/null +++ b/pkg/utils/avatar_test.go @@ -0,0 +1,14 @@ +package utils + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestGetGravatarUrl(t *testing.T) { + // Reference: https://en.gravatar.com/site/implement/hash/ + expectedValue := "https://www.gravatar.com/avatar/0bc83cb571cd1c50ba6f3e8a78ef1346" + actualValue := GetGravatarUrl("MyEmailAddress@example.com") + assert.Equal(t, expectedValue, actualValue) +}