code.gitea.io/gitea@v1.19.3/modules/avatar/avatar_test.go (about)

     1  // Copyright 2016 The Gogs Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package avatar
     5  
     6  import (
     7  	"os"
     8  	"testing"
     9  
    10  	"code.gitea.io/gitea/modules/setting"
    11  
    12  	"github.com/stretchr/testify/assert"
    13  )
    14  
    15  func Test_RandomImageSize(t *testing.T) {
    16  	_, err := RandomImageSize(0, []byte("gitea@local"))
    17  	assert.Error(t, err)
    18  
    19  	_, err = RandomImageSize(64, []byte("gitea@local"))
    20  	assert.NoError(t, err)
    21  }
    22  
    23  func Test_RandomImage(t *testing.T) {
    24  	_, err := RandomImage([]byte("gitea@local"))
    25  	assert.NoError(t, err)
    26  }
    27  
    28  func Test_PrepareWithPNG(t *testing.T) {
    29  	setting.Avatar.MaxWidth = 4096
    30  	setting.Avatar.MaxHeight = 4096
    31  
    32  	data, err := os.ReadFile("testdata/avatar.png")
    33  	assert.NoError(t, err)
    34  
    35  	imgPtr, err := Prepare(data)
    36  	assert.NoError(t, err)
    37  
    38  	assert.Equal(t, 290, (*imgPtr).Bounds().Max.X)
    39  	assert.Equal(t, 290, (*imgPtr).Bounds().Max.Y)
    40  }
    41  
    42  func Test_PrepareWithJPEG(t *testing.T) {
    43  	setting.Avatar.MaxWidth = 4096
    44  	setting.Avatar.MaxHeight = 4096
    45  
    46  	data, err := os.ReadFile("testdata/avatar.jpeg")
    47  	assert.NoError(t, err)
    48  
    49  	imgPtr, err := Prepare(data)
    50  	assert.NoError(t, err)
    51  
    52  	assert.Equal(t, 290, (*imgPtr).Bounds().Max.X)
    53  	assert.Equal(t, 290, (*imgPtr).Bounds().Max.Y)
    54  }
    55  
    56  func Test_PrepareWithInvalidImage(t *testing.T) {
    57  	setting.Avatar.MaxWidth = 5
    58  	setting.Avatar.MaxHeight = 5
    59  
    60  	_, err := Prepare([]byte{})
    61  	assert.EqualError(t, err, "DecodeConfig: image: unknown format")
    62  }
    63  
    64  func Test_PrepareWithInvalidImageSize(t *testing.T) {
    65  	setting.Avatar.MaxWidth = 5
    66  	setting.Avatar.MaxHeight = 5
    67  
    68  	data, err := os.ReadFile("testdata/avatar.png")
    69  	assert.NoError(t, err)
    70  
    71  	_, err = Prepare(data)
    72  	assert.EqualError(t, err, "Image width is too large: 10 > 5")
    73  }