forgejo/modules/avatar/avatar_test.go

69 lines
1.6 KiB
Go
Raw Normal View History

// Copyright 2016 The Gogs Authors. All rights reserved.
2014-03-23 14:13:23 +04:00
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package avatar
import (
"io/ioutil"
"testing"
2014-03-23 14:13:23 +04:00
"code.gitea.io/gitea/modules/setting"
2017-02-08 09:29:07 +03:00
"github.com/stretchr/testify/assert"
)
func Test_RandomImage(t *testing.T) {
2017-02-08 09:29:07 +03:00
_, err := RandomImage([]byte("gogs@local"))
assert.NoError(t, err)
2014-03-24 17:16:00 +04:00
2017-02-08 09:29:07 +03:00
_, err = RandomImageSize(0, []byte("gogs@local"))
assert.Error(t, err)
2014-03-24 17:16:00 +04:00
}
func Test_PrepareWithPNG(t *testing.T) {
setting.AvatarMaxWidth = 4096
setting.AvatarMaxHeight = 4096
data, err := ioutil.ReadFile("testdata/avatar.png")
assert.NoError(t, err)
imgPtr, err := Prepare(data)
assert.NoError(t, err)
assert.Equal(t, 290, (*imgPtr).Bounds().Max.X)
assert.Equal(t, 290, (*imgPtr).Bounds().Max.Y)
}
func Test_PrepareWithJPEG(t *testing.T) {
setting.AvatarMaxWidth = 4096
setting.AvatarMaxHeight = 4096
data, err := ioutil.ReadFile("testdata/avatar.jpeg")
assert.NoError(t, err)
imgPtr, err := Prepare(data)
assert.NoError(t, err)
assert.Equal(t, 290, (*imgPtr).Bounds().Max.X)
assert.Equal(t, 290, (*imgPtr).Bounds().Max.Y)
}
func Test_PrepareWithInvalidImage(t *testing.T) {
setting.AvatarMaxWidth = 5
setting.AvatarMaxHeight = 5
_, err := Prepare([]byte{})
assert.EqualError(t, err, "DecodeConfig: image: unknown format")
}
func Test_PrepareWithInvalidImageSize(t *testing.T) {
setting.AvatarMaxWidth = 5
setting.AvatarMaxHeight = 5
data, err := ioutil.ReadFile("testdata/avatar.png")
assert.NoError(t, err)
_, err = Prepare(data)
assert.EqualError(t, err, "Image width is too large: 10 > 5")
}