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  }