2016-02-15 07:14:55 +03:00
// 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.
2016-02-15 07:14:55 +03:00
package avatar
2014-03-23 08:24:09 +04:00
import (
2019-05-25 14:46:14 +03:00
"io/ioutil"
2014-03-23 08:24:09 +04:00
"testing"
2014-03-23 14:13:23 +04:00
2019-05-25 14:46:14 +03:00
"code.gitea.io/gitea/modules/setting"
2017-02-08 09:29:07 +03:00
"github.com/stretchr/testify/assert"
2014-03-23 08:24:09 +04:00
)
2016-02-15 07:14:55 +03:00
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
}
2019-05-25 14:46:14 +03:00
func Test_PrepareWithPNG ( t * testing . T ) {
2020-10-14 16:07:51 +03:00
setting . Avatar . MaxWidth = 4096
setting . Avatar . MaxHeight = 4096
2019-05-25 14:46:14 +03:00
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 ) {
2020-10-14 16:07:51 +03:00
setting . Avatar . MaxWidth = 4096
setting . Avatar . MaxHeight = 4096
2019-05-25 14:46:14 +03:00
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 ) {
2020-10-14 16:07:51 +03:00
setting . Avatar . MaxWidth = 5
setting . Avatar . MaxHeight = 5
2019-05-25 14:46:14 +03:00
_ , err := Prepare ( [ ] byte { } )
assert . EqualError ( t , err , "DecodeConfig: image: unknown format" )
}
func Test_PrepareWithInvalidImageSize ( t * testing . T ) {
2020-10-14 16:07:51 +03:00
setting . Avatar . MaxWidth = 5
setting . Avatar . MaxHeight = 5
2019-05-25 14:46:14 +03:00
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" )
}