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