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>
Этот коммит содержится в:
@@ -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
Обычный файл
Двоичные данные
tests/testwebp.webp
Обычный файл
Двоичный файл не отображается.
|
После Ширина: | Высота: | Размер: 2.0 KiB |
Ссылка в новой задаче
Block a user