summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Felder <feld@feld.me>2021-02-16 09:14:40 -0600
committerMark Felder <feld@feld.me>2021-02-16 09:14:40 -0600
commit889341d0d730b8993fa319a9f111c80f2c149b6a (patch)
tree553882c985396e6b538763c549adc8141de41d05
parentb40581c4e8b07748ccf58ca6f3923be542ed8f93 (diff)
Validate we can convert heic to jpeg
-rw-r--r--test/fixtures/image.heicbin0 -> 41465 bytes
-rw-r--r--test/pleroma/upload/filter/heic_to_jpeg_test.exs40
2 files changed, 40 insertions, 0 deletions
diff --git a/test/fixtures/image.heic b/test/fixtures/image.heic
new file mode 100644
index 000000000..efd119a0e
--- /dev/null
+++ b/test/fixtures/image.heic
Binary files differ
diff --git a/test/pleroma/upload/filter/heic_to_jpeg_test.exs b/test/pleroma/upload/filter/heic_to_jpeg_test.exs
new file mode 100644
index 000000000..3a5d0a1c1
--- /dev/null
+++ b/test/pleroma/upload/filter/heic_to_jpeg_test.exs
@@ -0,0 +1,40 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Upload.Filter.HeicToJpegTest do
+ use Pleroma.DataCase, async: true
+ alias Pleroma.Upload.Filter
+
+ test "apply HeicToJpeg filter" do
+ assert Pleroma.Utils.command_available?("mogrify")
+
+ File.cp!(
+ "test/fixtures/image.heic",
+ "test/fixtures/heictmp"
+ )
+
+ upload = %Pleroma.Upload{
+ name: "image.heic",
+ content_type: "image/heic",
+ path: Path.absname("test/fixtures/image.heic"),
+ tempfile: Path.absname("test/fixtures/heictmp")
+ }
+
+ {:ok, :filtered, result} = Filter.HeifToJpeg.filter(upload)
+
+ assert result.content_type == "image/jpeg"
+ assert result.name == "image.jpg"
+ assert String.ends_with?(result.path, "jpg")
+
+ assert {:ok,
+ %Majic.Result{
+ content:
+ "JPEG image data, JFIF standard 1.02, resolution (DPI), density 96x96, segment length 16, progressive, precision 8, 1024x768, components 3",
+ encoding: "binary",
+ mime_type: "image/jpeg"
+ }} == Majic.perform(result.path, pool: Pleroma.MajicPool)
+
+ on_exit(fn -> File.rm!("test/fixtures/heictmp") end)
+ end
+end