From 5a996b5f879c83f0911ba33af542fdd844929b79 Mon Sep 17 00:00:00 2001
From: Sebastian Steinmetz <me@sebastiansteinmetz.ch>
Date: Fri, 17 Aug 2018 18:34:51 +0200
Subject: [PATCH] Address comments from @rullzer:  - implement isAvailable  -
 run tests only if ImageMagick with HEIC support is available in the   
 environment

Signed-off-by: Sebastian Steinmetz <me@sebastiansteinmetz.ch>
---
 lib/private/Preview/HEIC.php   |  8 ++++++++
 tests/lib/Preview/HEICTest.php | 18 ++++++++++++------
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/lib/private/Preview/HEIC.php b/lib/private/Preview/HEIC.php
index 9057596847c..151326129bc 100644
--- a/lib/private/Preview/HEIC.php
+++ b/lib/private/Preview/HEIC.php
@@ -29,4 +29,12 @@ class HEIC extends Bitmap {
 	public function getMimeType() {
 		return '/image\/hei(f|c)/';
 	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public function isAvailable(\OCP\Files\FileInfo $file) {
+		return in_array("HEIC", \Imagick::queryFonts("HEI*") );
+	}
+
 }
diff --git a/tests/lib/Preview/HEICTest.php b/tests/lib/Preview/HEICTest.php
index 324d0683953..63b9038d35d 100644
--- a/tests/lib/Preview/HEICTest.php
+++ b/tests/lib/Preview/HEICTest.php
@@ -31,12 +31,18 @@ namespace Test\Preview;
 class HEICTest extends Provider {
 
 	public function setUp() {
-		parent::setUp();
+		if ( !in_array("HEIC", \Imagick::queryFormats("HEI*")) ) {
+			$this->markTestSkipped('ImageMagick is not HEIC aware. Skipping tests');
+		} else {
+			parent::setUp();
+
+			$fileName = 'testimage.heic';
+			$this->imgPath = $this->prepareTestFile($fileName, \OC::$SERVERROOT . '/tests/data/' . $fileName);
+			$this->width = 1680;
+			$this->height = 1050;
+			$this->provider = new \OC\Preview\HEIC;
+		}
 
-		$fileName = 'testimage.heic';
-		$this->imgPath = $this->prepareTestFile($fileName, \OC::$SERVERROOT . '/tests/data/' . $fileName);
-		$this->width = 1680;
-		$this->height = 1050;
-		$this->provider = new \OC\Preview\HEIC;
 	}
+
 }
\ No newline at end of file
-- 
GitLab