diff options
author | Carlos Tadeu Panato Junior <ctadeu@gmail.com> | 2017-04-20 17:14:15 +0200 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2017-04-20 11:14:15 -0400 |
commit | f758f9ff3a617dd5939e1e7851fdbe10d03cd5a8 (patch) | |
tree | 5ad09ea76c124bcdb096d3f1329410b01a0dbd3a /api4/emoji_test.go | |
parent | 55bbf15fc7a83d3cda1fe5bc037823cbbc4fc023 (diff) | |
download | chat-f758f9ff3a617dd5939e1e7851fdbe10d03cd5a8.tar.gz chat-f758f9ff3a617dd5939e1e7851fdbe10d03cd5a8.tar.bz2 chat-f758f9ff3a617dd5939e1e7851fdbe10d03cd5a8.zip |
[APIV4] GET /emoji/{emoji_id}/image for apiV4 (#6141)
* implement GET /emoji/{emoji_id}/image for apiV4
* update per request
Diffstat (limited to 'api4/emoji_test.go')
-rw-r--r-- | api4/emoji_test.go | 122 |
1 files changed, 121 insertions, 1 deletions
diff --git a/api4/emoji_test.go b/api4/emoji_test.go index 23188a3d2..84d808e6d 100644 --- a/api4/emoji_test.go +++ b/api4/emoji_test.go @@ -4,6 +4,9 @@ package api4 import ( + "bytes" + "image" + _ "image/gif" "testing" "github.com/mattermost/platform/model" @@ -199,7 +202,6 @@ func TestGetEmojiList(t *testing.T) { t.Fatalf("should not get a deleted emoji %v", emojis[0].Id) } } - } func TestDeleteEmoji(t *testing.T) { @@ -296,5 +298,123 @@ func TestGetEmoji(t *testing.T) { _, resp = Client.GetEmoji(model.NewId()) CheckInternalErrorStatus(t, resp) +} + +func TestGetEmojiImage(t *testing.T) { + th := Setup().InitBasic() + defer TearDown() + Client := th.Client + + EnableCustomEmoji := *utils.Cfg.ServiceSettings.EnableCustomEmoji + DriverName := utils.Cfg.FileSettings.DriverName + defer func() { + *utils.Cfg.ServiceSettings.EnableCustomEmoji = EnableCustomEmoji + utils.Cfg.FileSettings.DriverName = DriverName + }() + *utils.Cfg.ServiceSettings.EnableCustomEmoji = true + + emoji1 := &model.Emoji{ + CreatorId: th.BasicUser.Id, + Name: model.NewId(), + } + + emoji1, resp := Client.CreateEmoji(emoji1, utils.CreateTestGif(t, 10, 10), "image.gif") + CheckNoError(t, resp) + + *utils.Cfg.ServiceSettings.EnableCustomEmoji = false + + _, resp = Client.GetEmojiImage(emoji1.Id) + CheckNotImplementedStatus(t, resp) + CheckErrorMessage(t, resp, "api.emoji.disabled.app_error") + + utils.Cfg.FileSettings.DriverName = "" + *utils.Cfg.ServiceSettings.EnableCustomEmoji = true + + _, resp = Client.GetEmojiImage(emoji1.Id) + CheckNotImplementedStatus(t, resp) + CheckErrorMessage(t, resp, "api.emoji.storage.app_error") + utils.Cfg.FileSettings.DriverName = DriverName + + emojiImage, resp := Client.GetEmojiImage(emoji1.Id) + CheckNoError(t, resp) + if len(emojiImage) <= 0 { + t.Fatal("should return the image") + } + _, imageType, err := image.DecodeConfig(bytes.NewReader(emojiImage)) + if err != nil { + t.Fatalf("unable to identify received image: %v", err.Error()) + } else if imageType != "gif" { + t.Fatal("should've received gif data") + } + + emoji2 := &model.Emoji{ + CreatorId: th.BasicUser.Id, + Name: model.NewId(), + } + + emoji2, resp = Client.CreateEmoji(emoji2, utils.CreateTestAnimatedGif(t, 10, 10, 10), "image.gif") + CheckNoError(t, resp) + + emojiImage, resp = Client.GetEmojiImage(emoji2.Id) + CheckNoError(t, resp) + if len(emojiImage) <= 0 { + t.Fatal("should return the image") + } + _, imageType, err = image.DecodeConfig(bytes.NewReader(emojiImage)) + if err != nil { + t.Fatalf("unable to identify received image: %v", err.Error()) + } else if imageType != "gif" { + t.Fatal("should've received gif data") + } + + emoji3 := &model.Emoji{ + CreatorId: th.BasicUser.Id, + Name: model.NewId(), + } + emoji3, resp = Client.CreateEmoji(emoji3, utils.CreateTestJpeg(t, 10, 10), "image.jpg") + CheckNoError(t, resp) + + emojiImage, resp = Client.GetEmojiImage(emoji3.Id) + CheckNoError(t, resp) + if len(emojiImage) <= 0 { + t.Fatal("should return the image") + } + _, imageType, err = image.DecodeConfig(bytes.NewReader(emojiImage)) + if err != nil { + t.Fatalf("unable to identify received image: %v", err.Error()) + } else if imageType != "jpeg" { + t.Fatal("should've received gif data") + } + + emoji4 := &model.Emoji{ + CreatorId: th.BasicUser.Id, + Name: model.NewId(), + } + emoji4, resp = Client.CreateEmoji(emoji4, utils.CreateTestPng(t, 10, 10), "image.png") + CheckNoError(t, resp) + + emojiImage, resp = Client.GetEmojiImage(emoji4.Id) + CheckNoError(t, resp) + if len(emojiImage) <= 0 { + t.Fatal("should return the image") + } + _, imageType, err = image.DecodeConfig(bytes.NewReader(emojiImage)) + if err != nil { + t.Fatalf("unable to identify received image: %v", err.Error()) + } else if imageType != "png" { + t.Fatal("should've received gif data") + } + + _, resp = Client.DeleteEmoji(emoji4.Id) + CheckNoError(t, resp) + + _, resp = Client.GetEmojiImage(emoji4.Id) + CheckNotFoundStatus(t, resp) + + _, resp = Client.GetEmojiImage(model.NewId()) + CheckInternalErrorStatus(t, resp) + + _, resp = Client.GetEmojiImage("") + CheckBadRequestStatus(t, resp) } |