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

93 lines
3.0 KiB
Go

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package pic
import (
//"log"
"log"
"path/filepath"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestNewPicture(t *testing.T) {
// для тестирования базу данных не учитываем
p := NewPicture("альбом")
assert.Equal(t, p.Album, "альбом", "должны быть одинаковыми")
}
func TestBaseName(t *testing.T) {
base := baseName("c:\\Проверка файла с каталогом\\test.jpg")
assert.Equal(t, base, "test", "должны быть одинаковыми")
base = baseName("/каталог файла/test.jpg")
assert.Equal(t, base, "test", "должны быть одинаковыми")
base = baseName("/test.jpg")
assert.Equal(t, base, "test", "должны быть одинаковыми")
base = baseName("test.jpg")
assert.Equal(t, base, "test", "должны быть одинаковыми")
base = baseName("test.jpg")
assert.NotEqual(t, base, "неверное имя", "должны быть разными")
}
func TestCmdFfmpeg(t *testing.T) {
// правильный файл
cmd, out, err := cmdFfmpeg("testdir\\test.gif")
log.Printf("cmd: %s\n", cmd)
assert.Nil(t, err)
assert.Equal(t, out, "testdir\\test-2x.webp", "должны быть одинаковыми")
assert.Contains(t, cmd, "ffmpeg", "команда должна сформироваться")
// не верный файл
cmd, out, err = cmdFfmpeg("test.jpg")
assert.Error(t, err, "должна быть ошибка")
assert.Equal(t, out, "", "должен быть пустой строкой")
assert.Equal(t, cmd, "", "должен быть пустой строкой")
}
func TestGetSize(t *testing.T) {
out := `
Stream #0:0: Video: webp <какой-то текст> 1200x1980 <еще какой-то текст>
`
w, h := getSize(out)
assert.Equal(t, w, "1200", "должны быть 1200")
assert.Equal(t, h, "1980", "должны быть 1980")
}
func TestConvertFile(t *testing.T) {
// предварительно скопируем тестовый файл во временный каталог
tmpgif := "test.gif"
require.FileExists(t, tmpgif)
// создадим временный каталог
tmpdir := t.TempDir()
filename := filepath.Join(tmpdir, tmpgif)
// скопируем исходный файл в этот каталог
err := copyFile(tmpgif, filename)
require.NoError(t, err)
require.FileExists(t, filename)
// собственно конвертация
webp, err := convertFile(filename)
assert.NoError(t, err)
require.FileExists(t, webp.filename)
// скопируем обратно, что бы посмотреть, что получилось
// err = copyFile(webp.filename, "d:/projects/pic/test.webp")
// assert.NoError(t, err)
}
func TestConvert(t *testing.T) {
// проверяем, что после конвертации файлы удаляются
tmpgif := "test.gif"
require.FileExists(t, tmpgif)
err := Convert(tmpgif)
assert.NoError(t, err)
}