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"
|
"bytes"
|
||||||
"image"
|
"image"
|
||||||
_ "image/gif"
|
_ "image/gif"
|
||||||
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
@@ -92,6 +93,20 @@ func TestCreateEmoji(t *testing.T) {
|
|||||||
require.Equal(t, newEmoji.Name, emoji.Name, "create with wrong name")
|
require.Equal(t, newEmoji.Name, emoji.Name, "create with wrong name")
|
||||||
checkEmojiFile(newEmoji.Id, "gif")
|
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
|
// try to create a valid jpeg emoji
|
||||||
emoji = &model.Emoji{
|
emoji = &model.Emoji{
|
||||||
CreatorId: th.BasicUser.Id,
|
CreatorId: th.BasicUser.Id,
|
||||||
|
|||||||
@@ -453,6 +453,17 @@ func TestUploadFiles(t *testing.T) {
|
|||||||
expectedImageMiniPreview: []bool{false},
|
expectedImageMiniPreview: []bool{false},
|
||||||
expectedCreatorId: th.BasicUser.Id,
|
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
|
// Error cases
|
||||||
{
|
{
|
||||||
title: "Error channel_id does not exist",
|
title: "Error channel_id does not exist",
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import (
|
|||||||
"path"
|
"path"
|
||||||
|
|
||||||
"github.com/disintegration/imaging"
|
"github.com/disintegration/imaging"
|
||||||
|
_ "golang.org/x/image/webp"
|
||||||
|
|
||||||
"github.com/mattermost/mattermost-server/v6/model"
|
"github.com/mattermost/mattermost-server/v6/model"
|
||||||
"github.com/mattermost/mattermost-server/v6/shared/mlog"
|
"github.com/mattermost/mattermost-server/v6/shared/mlog"
|
||||||
|
|||||||
Двоичные данные
tests/testwebp.webp
Обычный файл
Двоичные данные
tests/testwebp.webp
Обычный файл
Двоичный файл не отображается.
|
После Ширина: | Высота: | Размер: 2.0 KiB |
Ссылка в новой задаче
Block a user