Mm-20223 Add webp emoji support (#20283)

* Added webp package into app/emoji.go , also added a test

* fixed import order inside emoji.go

* Ran go mod tidy

* Conversion to png for Webp emojis that must be resized is implemented

* Deleted unused import

* Added reading mechanism for webp instead of creating

* fileutils and filepath are used while reading a webp file during test

* Deleted readtestwebp function and put it in emoji_test as requested

* Added webp image upload test inside api4/file_test.go

* Expect image is changed from false to true

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
Barış
2022-06-21 07:38:02 +03:00
коммит произвёл GitHub
родитель 2b8d63b606
Коммит ccab5be6c4
4 изменённых файлов: 27 добавлений и 0 удалений

Просмотреть файл

@@ -7,6 +7,7 @@ import (
"bytes"
"image"
_ "image/gif"
"io/ioutil"
"os"
"path/filepath"
"testing"
@@ -92,6 +93,20 @@ func TestCreateEmoji(t *testing.T) {
require.Equal(t, newEmoji.Name, emoji.Name, "create with wrong name")
checkEmojiFile(newEmoji.Id, "gif")
// try to create a valid webp emoji
emoji = &model.Emoji{
CreatorId: th.BasicUser.Id,
Name: model.NewId(),
}
path, _ := fileutils.FindDir("tests")
bytes, err := ioutil.ReadFile(filepath.Join(path, "testwebp.webp"))
require.NoError(t, err)
newEmoji, _, err = client.CreateEmoji(emoji, bytes, "image.webp")
require.NoError(t, err)
require.Equal(t, newEmoji.Name, emoji.Name, "create with wrong name")
checkEmojiFile(newEmoji.Id, "png") // emoji must be converted from webp to png
// try to create a valid jpeg emoji
emoji = &model.Emoji{
CreatorId: th.BasicUser.Id,

Просмотреть файл

@@ -453,6 +453,17 @@ func TestUploadFiles(t *testing.T) {
expectedImageMiniPreview: []bool{false},
expectedCreatorId: th.BasicUser.Id,
},
// Webp image test
{
title: "Webp image",
names: []string{"testwebp.webp"},
expectImage: true,
expectedImageWidths: []int{128},
expectedImageHeights: []int{256},
expectedImageHasPreview: []bool{true},
expectedCreatorId: th.BasicUser.Id,
expectedImageMiniPreview: []bool{true},
},
// Error cases
{
title: "Error channel_id does not exist",

Просмотреть файл

@@ -21,6 +21,7 @@ import (
"path"
"github.com/disintegration/imaging"
_ "golang.org/x/image/webp"
"github.com/mattermost/mattermost-server/v6/model"
"github.com/mattermost/mattermost-server/v6/shared/mlog"

Двоичные данные
tests/testwebp.webp Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.0 KiB