gitea源码

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // Copyright 2021 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package repository
  4. import (
  5. "bytes"
  6. "image"
  7. "image/png"
  8. "testing"
  9. repo_model "code.gitea.io/gitea/models/repo"
  10. "code.gitea.io/gitea/models/unittest"
  11. "code.gitea.io/gitea/modules/avatar"
  12. "github.com/stretchr/testify/assert"
  13. )
  14. func TestUploadAvatar(t *testing.T) {
  15. // Generate image
  16. myImage := image.NewRGBA(image.Rect(0, 0, 1, 1))
  17. var buff bytes.Buffer
  18. png.Encode(&buff, myImage)
  19. assert.NoError(t, unittest.PrepareTestDatabase())
  20. repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 10})
  21. err := UploadAvatar(t.Context(), repo, buff.Bytes())
  22. assert.NoError(t, err)
  23. assert.Equal(t, avatar.HashAvatar(10, buff.Bytes()), repo.Avatar)
  24. }
  25. func TestUploadBigAvatar(t *testing.T) {
  26. // Generate BIG image
  27. myImage := image.NewRGBA(image.Rect(0, 0, 5000, 1))
  28. var buff bytes.Buffer
  29. png.Encode(&buff, myImage)
  30. assert.NoError(t, unittest.PrepareTestDatabase())
  31. repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 10})
  32. err := UploadAvatar(t.Context(), repo, buff.Bytes())
  33. assert.Error(t, err)
  34. }
  35. func TestDeleteAvatar(t *testing.T) {
  36. // Generate image
  37. myImage := image.NewRGBA(image.Rect(0, 0, 1, 1))
  38. var buff bytes.Buffer
  39. png.Encode(&buff, myImage)
  40. assert.NoError(t, unittest.PrepareTestDatabase())
  41. repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 10})
  42. err := UploadAvatar(t.Context(), repo, buff.Bytes())
  43. assert.NoError(t, err)
  44. err = DeleteAvatar(t.Context(), repo)
  45. assert.NoError(t, err)
  46. assert.Empty(t, repo.Avatar)
  47. }
  48. func TestGenerateAvatar(t *testing.T) {
  49. templateRepo := &repo_model.Repository{ID: 10, Avatar: "a"}
  50. generateRepo := &repo_model.Repository{ID: 11}
  51. _ = generateAvatar(t.Context(), templateRepo, generateRepo)
  52. assert.NotEmpty(t, generateRepo.Avatar)
  53. assert.NotEqual(t, templateRepo.Avatar, generateRepo.Avatar)
  54. }