parent
408733a974
commit
8e2fc1a8f6
@ -0,0 +1,25 @@
|
||||
package thumbmock
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/cloudreve/Cloudreve/v3/pkg/thumb"
|
||||
"github.com/stretchr/testify/mock"
|
||||
"io"
|
||||
)
|
||||
|
||||
type GeneratorMock struct {
|
||||
mock.Mock
|
||||
}
|
||||
|
||||
func (g GeneratorMock) Generate(ctx context.Context, file io.Reader, src string, name string, options map[string]string) (*thumb.Result, error) {
|
||||
res := g.Called(ctx, file, src, name, options)
|
||||
return res.Get(0).(*thumb.Result), res.Error(1)
|
||||
}
|
||||
|
||||
func (g GeneratorMock) Priority() int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (g GeneratorMock) EnableFlag() string {
|
||||
return "thumb_vips_enabled"
|
||||
}
|
@ -1,146 +0,0 @@
|
||||
package thumb
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"image"
|
||||
"image/jpeg"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/cloudreve/Cloudreve/v3/pkg/cache"
|
||||
"github.com/cloudreve/Cloudreve/v3/pkg/util"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func CreateTestImage() *os.File {
|
||||
file, err := os.Create("TestNewThumbFromFile.jpeg")
|
||||
alpha := image.NewAlpha(image.Rect(0, 0, 500, 200))
|
||||
jpeg.Encode(file, alpha, nil)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
_, _ = file.Seek(0, 0)
|
||||
return file
|
||||
}
|
||||
|
||||
func TestNewThumbFromFile(t *testing.T) {
|
||||
asserts := assert.New(t)
|
||||
file := CreateTestImage()
|
||||
defer file.Close()
|
||||
|
||||
// 无扩展名时
|
||||
{
|
||||
thumb, err := NewThumbFromFile(file, "123")
|
||||
asserts.Error(err)
|
||||
asserts.Nil(thumb)
|
||||
}
|
||||
|
||||
{
|
||||
thumb, err := NewThumbFromFile(file, "123.jpg")
|
||||
asserts.NoError(err)
|
||||
asserts.NotNil(thumb)
|
||||
}
|
||||
{
|
||||
thumb, err := NewThumbFromFile(file, "123.jpeg")
|
||||
asserts.Error(err)
|
||||
asserts.Nil(thumb)
|
||||
}
|
||||
{
|
||||
thumb, err := NewThumbFromFile(file, "123.png")
|
||||
asserts.Error(err)
|
||||
asserts.Nil(thumb)
|
||||
}
|
||||
{
|
||||
thumb, err := NewThumbFromFile(file, "123.gif")
|
||||
asserts.Error(err)
|
||||
asserts.Nil(thumb)
|
||||
}
|
||||
{
|
||||
thumb, err := NewThumbFromFile(file, "123.3211")
|
||||
asserts.Error(err)
|
||||
asserts.Nil(thumb)
|
||||
}
|
||||
}
|
||||
|
||||
func TestThumb_GetSize(t *testing.T) {
|
||||
asserts := assert.New(t)
|
||||
file := CreateTestImage()
|
||||
defer file.Close()
|
||||
thumb, err := NewThumbFromFile(file, "123.jpg")
|
||||
asserts.NoError(err)
|
||||
|
||||
w, h := thumb.GetSize()
|
||||
asserts.Equal(500, w)
|
||||
asserts.Equal(200, h)
|
||||
}
|
||||
|
||||
func TestThumb_GetThumb(t *testing.T) {
|
||||
asserts := assert.New(t)
|
||||
file := CreateTestImage()
|
||||
defer file.Close()
|
||||
thumb, err := NewThumbFromFile(file, "123.jpg")
|
||||
asserts.NoError(err)
|
||||
|
||||
asserts.NotPanics(func() {
|
||||
thumb.GetThumb(10, 10)
|
||||
})
|
||||
}
|
||||
|
||||
func TestThumb_Thumbnail(t *testing.T) {
|
||||
asserts := assert.New(t)
|
||||
{
|
||||
img := image.NewRGBA(image.Rect(0, 0, 500, 200))
|
||||
thumb := Thumbnail(100, 100, img)
|
||||
asserts.Equal(thumb.Bounds(), image.Rect(0, 0, 100, 40))
|
||||
}
|
||||
{
|
||||
img := image.NewRGBA(image.Rect(0, 0, 200, 200))
|
||||
thumb := Thumbnail(100, 100, img)
|
||||
asserts.Equal(thumb.Bounds(), image.Rect(0, 0, 100, 100))
|
||||
}
|
||||
{
|
||||
img := image.NewRGBA(image.Rect(0, 0, 500, 500))
|
||||
thumb := Thumbnail(100, 100, img)
|
||||
asserts.Equal(thumb.Bounds(), image.Rect(0, 0, 100, 100))
|
||||
}
|
||||
{
|
||||
img := image.NewRGBA(image.Rect(0, 0, 200, 500))
|
||||
thumb := Thumbnail(100, 100, img)
|
||||
asserts.Equal(thumb.Bounds(), image.Rect(0, 0, 40, 100))
|
||||
}
|
||||
}
|
||||
|
||||
func TestThumb_Save(t *testing.T) {
|
||||
asserts := assert.New(t)
|
||||
file := CreateTestImage()
|
||||
defer file.Close()
|
||||
thumb, err := NewThumbFromFile(file, "123.jpg")
|
||||
asserts.NoError(err)
|
||||
|
||||
err = thumb.Save("/:noteexist/")
|
||||
asserts.Error(err)
|
||||
|
||||
err = thumb.Save("TestThumb_Save.png")
|
||||
asserts.NoError(err)
|
||||
asserts.True(util.Exists("TestThumb_Save.png"))
|
||||
|
||||
}
|
||||
|
||||
func TestThumb_CreateAvatar(t *testing.T) {
|
||||
asserts := assert.New(t)
|
||||
file := CreateTestImage()
|
||||
defer file.Close()
|
||||
|
||||
thumb, err := NewThumbFromFile(file, "123.jpg")
|
||||
asserts.NoError(err)
|
||||
|
||||
cache.Set("setting_avatar_path", "tests", 0)
|
||||
cache.Set("setting_avatar_size_s", "50", 0)
|
||||
cache.Set("setting_avatar_size_m", "130", 0)
|
||||
cache.Set("setting_avatar_size_l", "200", 0)
|
||||
|
||||
asserts.NoError(thumb.CreateAvatar(1))
|
||||
asserts.True(util.Exists(util.RelativePath("tests/avatar_1_1.png")))
|
||||
asserts.True(util.Exists(util.RelativePath("tests/avatar_1_2.png")))
|
||||
asserts.True(util.Exists(util.RelativePath("tests/avatar_1_0.png")))
|
||||
}
|
Loading…
Reference in new issue