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.
102 lines
1.9 KiB
102 lines
1.9 KiB
5 years ago
|
package thumb
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"github.com/HFO4/cloudreve/pkg/util"
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
"image"
|
||
|
"image/jpeg"
|
||
|
"os"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
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_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"))
|
||
|
|
||
|
}
|