]> git.mxchange.org Git - friendica.git/commitdiff
friendica-6667 Installer needs to check fileinfo module
authorPhilipp Holzer <admin@philipp.info>
Sat, 16 Feb 2019 21:13:19 +0000 (22:13 +0100)
committerPhilipp Holzer <admin@philipp.info>
Sat, 16 Feb 2019 21:17:34 +0000 (22:17 +0100)
src/Core/Installer.php
tests/src/Core/InstallerTest.php

index 4a287a885f50e9d5e47988de099608fe567f4e74..fdeb940a2577a1ee7c595fd21dcffd4619f5de22 100644 (file)
@@ -357,6 +357,7 @@ class Installer
         * - mb_string
         * - XML
         * - iconv
+        * - fileinfo
         * - POSIX
         *
         * @return bool false if something required failed
@@ -452,6 +453,13 @@ class Installer
                );
                $returnVal = $returnVal ? $status : false;
 
+               $status = $this->checkFunction('finfo_open',
+                       L10n::t('File Information PHP module'),
+                       L10n::t('Error: File Information PHP module required but not installed.'),
+                       true
+               );
+               $returnVal = $returnVal ? $status : false;
+
                return $returnVal;
        }
 
index f7f8f5c7d494834c2e4734d1a6e6c4768217ef52..c1a003bade6d0ba374ca5b61056112afbf404b3e 100644 (file)
@@ -45,6 +45,8 @@ class InstallerTest extends MockedTest
                $this->mockL10nT('Error: POSIX PHP module required but not installed.', 1);
                $this->mockL10nT('JSON PHP module', 1);
                $this->mockL10nT('Error: JSON PHP module required but not installed.', 1);
+               $this->mockL10nT('File Information PHP module', 1);
+               $this->mockL10nT('Error: File Information PHP module required but not installed.', 1);
        }
 
        private function assertCheckExist($position, $title, $help, $status, $required, $assertionArray)
@@ -192,6 +194,17 @@ class InstallerTest extends MockedTest
                        true,
                        $install->getChecks());
 
+               $this->mockFunctionL10TCalls();
+               $this->setFunctions(['finfo_open' => false]);
+               $install = new Installer();
+               $this->assertFalse($install->checkFunctions());
+               $this->assertCheckExist(10,
+                       'File Information PHP module',
+                       'Error: File Information PHP module required but not installed.',
+                       false,
+                       true,
+                       $install->getChecks());
+
                $this->mockFunctionL10TCalls();
                $this->setFunctions([
                        'curl_init' => true,
@@ -200,7 +213,8 @@ class InstallerTest extends MockedTest
                        'mb_strlen' => true,
                        'iconv_strlen' => true,
                        'posix_kill' => true,
-                       'json_encode' => true
+                       'json_encode' => true,
+                       'finfo_open' => true,
                ]);
                $install = new Installer();
                $this->assertTrue($install->checkFunctions());