You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

avatar_test.go 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // Copyright 2020 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package avatars_test
  4. import (
  5. "testing"
  6. avatars_model "code.gitea.io/gitea/models/avatars"
  7. "code.gitea.io/gitea/models/db"
  8. system_model "code.gitea.io/gitea/models/system"
  9. "code.gitea.io/gitea/modules/setting"
  10. "github.com/stretchr/testify/assert"
  11. )
  12. const gravatarSource = "https://secure.gravatar.com/avatar/"
  13. func disableGravatar(t *testing.T) {
  14. err := system_model.SetSettingNoVersion(db.DefaultContext, system_model.KeyPictureEnableFederatedAvatar, "false")
  15. assert.NoError(t, err)
  16. err = system_model.SetSettingNoVersion(db.DefaultContext, system_model.KeyPictureDisableGravatar, "true")
  17. assert.NoError(t, err)
  18. system_model.LibravatarService = nil
  19. }
  20. func enableGravatar(t *testing.T) {
  21. err := system_model.SetSettingNoVersion(db.DefaultContext, system_model.KeyPictureDisableGravatar, "false")
  22. assert.NoError(t, err)
  23. setting.GravatarSource = gravatarSource
  24. err = system_model.Init(db.DefaultContext)
  25. assert.NoError(t, err)
  26. }
  27. func TestHashEmail(t *testing.T) {
  28. assert.Equal(t,
  29. "d41d8cd98f00b204e9800998ecf8427e",
  30. avatars_model.HashEmail(""),
  31. )
  32. assert.Equal(t,
  33. "353cbad9b58e69c96154ad99f92bedc7",
  34. avatars_model.HashEmail("gitea@example.com"),
  35. )
  36. }
  37. func TestSizedAvatarLink(t *testing.T) {
  38. setting.AppSubURL = "/testsuburl"
  39. disableGravatar(t)
  40. assert.Equal(t, "/testsuburl/assets/img/avatar_default.png",
  41. avatars_model.GenerateEmailAvatarFastLink(db.DefaultContext, "gitea@example.com", 100))
  42. enableGravatar(t)
  43. assert.Equal(t,
  44. "https://secure.gravatar.com/avatar/353cbad9b58e69c96154ad99f92bedc7?d=identicon&s=100",
  45. avatars_model.GenerateEmailAvatarFastLink(db.DefaultContext, "gitea@example.com", 100),
  46. )
  47. }