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