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 }