You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

avatar_test.go 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. // Copyright 2016 The Gogs Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package avatar
  5. import (
  6. "os"
  7. "testing"
  8. "code.gitea.io/gitea/modules/setting"
  9. "github.com/stretchr/testify/assert"
  10. )
  11. func Test_RandomImageSize(t *testing.T) {
  12. _, err := RandomImageSize(0, []byte("gitea@local"))
  13. assert.Error(t, err)
  14. _, err = RandomImageSize(64, []byte("gitea@local"))
  15. assert.NoError(t, err)
  16. }
  17. func Test_RandomImage(t *testing.T) {
  18. _, err := RandomImage([]byte("gitea@local"))
  19. assert.NoError(t, err)
  20. }
  21. func Test_PrepareWithPNG(t *testing.T) {
  22. setting.Avatar.MaxWidth = 4096
  23. setting.Avatar.MaxHeight = 4096
  24. data, err := os.ReadFile("testdata/avatar.png")
  25. assert.NoError(t, err)
  26. imgPtr, err := Prepare(data)
  27. assert.NoError(t, err)
  28. assert.Equal(t, 290, (*imgPtr).Bounds().Max.X)
  29. assert.Equal(t, 290, (*imgPtr).Bounds().Max.Y)
  30. }
  31. func Test_PrepareWithJPEG(t *testing.T) {
  32. setting.Avatar.MaxWidth = 4096
  33. setting.Avatar.MaxHeight = 4096
  34. data, err := os.ReadFile("testdata/avatar.jpeg")
  35. assert.NoError(t, err)
  36. imgPtr, err := Prepare(data)
  37. assert.NoError(t, err)
  38. assert.Equal(t, 290, (*imgPtr).Bounds().Max.X)
  39. assert.Equal(t, 290, (*imgPtr).Bounds().Max.Y)
  40. }
  41. func Test_PrepareWithInvalidImage(t *testing.T) {
  42. setting.Avatar.MaxWidth = 5
  43. setting.Avatar.MaxHeight = 5
  44. _, err := Prepare([]byte{})
  45. assert.EqualError(t, err, "DecodeConfig: image: unknown format")
  46. }
  47. func Test_PrepareWithInvalidImageSize(t *testing.T) {
  48. setting.Avatar.MaxWidth = 5
  49. setting.Avatar.MaxHeight = 5
  50. data, err := os.ReadFile("testdata/avatar.png")
  51. assert.NoError(t, err)
  52. _, err = Prepare(data)
  53. assert.EqualError(t, err, "Image width is too large: 10 > 5")
  54. }