From 1018ead619fc48fb15d9b48216f37872711b5af3 Mon Sep 17 00:00:00 2001 From: Angela Chang <32560445+ejachang@users.noreply.github.com> Date: Thu, 21 Feb 2019 00:06:59 -0800 Subject: [PATCH] [MM-8421] Fix tiff preview - backend (#10170) --- api4/file.go | 1 + api4/file_test.go | 18 +++++++++++++++--- model/file.go | 4 ++-- tests/test.tiff | Bin 0 -> 26234 bytes tests/test_expected_preview.tiff | Bin 0 -> 24435 bytes tests/test_expected_thumb.tiff | Bin 0 -> 3602 bytes 6 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 tests/test.tiff create mode 100644 tests/test_expected_preview.tiff create mode 100644 tests/test_expected_thumb.tiff diff --git a/api4/file.go b/api4/file.go index 1a50aff76c..5fe92b49e3 100644 --- a/api4/file.go +++ b/api4/file.go @@ -42,6 +42,7 @@ var MEDIA_CONTENT_TYPES = [...]string{ "image/png", "image/bmp", "image/gif", + "image/tiff", "video/avi", "video/mpeg", "video/mp4", diff --git a/api4/file_test.go b/api4/file_test.go index 00b78b39c5..bba7dd8ee3 100644 --- a/api4/file_test.go +++ b/api4/file_test.go @@ -346,14 +346,14 @@ func TestUploadFiles(t *testing.T) { // Upload a bunch of files, mixed images and non-images { title: "Happy", - names: []string{"test.png", "testgif.gif", "testplugin.tar.gz", "test-search.md"}, + names: []string{"test.png", "testgif.gif", "testplugin.tar.gz", "test-search.md", "test.tiff"}, expectedCreatorId: th.BasicUser.Id, }, // Upload a bunch of files, with clientIds { title: "Happy client_ids", - names: []string{"test.png", "testgif.gif", "testplugin.tar.gz", "test-search.md"}, - clientIds: []string{"1", "2", "3", "4"}, + names: []string{"test.png", "testgif.gif", "testplugin.tar.gz", "test-search.md", "test.tiff"}, + clientIds: []string{"1", "2", "3", "4", "5"}, expectedCreatorId: th.BasicUser.Id, }, // Upload a bunch of images. testgif.gif is an animated GIF, @@ -478,6 +478,18 @@ func TestUploadFiles(t *testing.T) { expectedImageHasPreview: []bool{true}, expectedCreatorId: th.BasicUser.Id, }, + // TIFF preview test + { + title: "Happy image thumbnail/preview 9", + names: []string{"test.tiff"}, + expectedImageThumbnailNames: []string{"test_expected_thumb.tiff"}, + expectedImagePreviewNames: []string{"test_expected_preview.tiff"}, + expectImage: true, + expectedImageWidths: []int{701}, + expectedImageHeights: []int{701}, + expectedImageHasPreview: []bool{true}, + expectedCreatorId: th.BasicUser.Id, + }, { title: "Happy admin", client: th.SystemAdminClient, diff --git a/model/file.go b/model/file.go index c7ffbf0b9b..e3ee032689 100644 --- a/model/file.go +++ b/model/file.go @@ -13,8 +13,8 @@ const ( ) var ( - IMAGE_EXTENSIONS = [5]string{".jpg", ".jpeg", ".gif", ".bmp", ".png"} - IMAGE_MIME_TYPES = map[string]string{".jpg": "image/jpeg", ".jpeg": "image/jpeg", ".gif": "image/gif", ".bmp": "image/bmp", ".png": "image/png", ".tiff": "image/tiff"} + IMAGE_EXTENSIONS = [7]string{".jpg", ".jpeg", ".gif", ".bmp", ".png", ".tiff", "tif"} + IMAGE_MIME_TYPES = map[string]string{".jpg": "image/jpeg", ".jpeg": "image/jpeg", ".gif": "image/gif", ".bmp": "image/bmp", ".png": "image/png", ".tiff": "image/tiff", ".tif": "image/tif"} ) type FileUploadResponse struct { diff --git a/tests/test.tiff b/tests/test.tiff new file mode 100644 index 0000000000000000000000000000000000000000..7e8c5fdaab4fc05fff31cd71b19e169a7d480a59 GIT binary patch literal 26234 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 Td)^O`AI(3FevWPUZEXA(XEh}J literal 0 HcmV?d00001 diff --git a/tests/test_expected_preview.tiff b/tests/test_expected_preview.tiff new file mode 100644 index 0000000000000000000000000000000000000000..6972917a42a6b43fc04054c08b475e7f1678c475 GIT binary patch literal 24435 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 literal 0 HcmV?d00001 diff --git a/tests/test_expected_thumb.tiff b/tests/test_expected_thumb.tiff new file mode 100644 index 0000000000000000000000000000000000000000..36d4ab758b02c77b00de6b134b6f9c50ca9703e6 GIT binary patch literal 3602 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 literal 0 HcmV?d00001