]> git.mxchange.org Git - friendica.git/blobdiff - tests/src/Core/InstallerTest.php
Merge pull request #6580 from MrPetovan/bug/6575-escaped-field-input-attributes
[friendica.git] / tests / src / Core / InstallerTest.php
index a4ee20b8ce22df4d5a6e52bbba1e7435fa0c40af..f7f8f5c7d494834c2e4734d1a6e6c4768217ef52 100644 (file)
@@ -3,24 +3,50 @@
 // this is in the same namespace as Install for mocking 'function_exists'
 namespace Friendica\Core;
 
+use Friendica\Test\MockedTest;
+use Friendica\Test\Util\L10nMockTrait;
 use Friendica\Test\Util\VFSTrait;
-use PHPUnit\Framework\TestCase;
 
 /**
  * @runTestsInSeparateProcesses
  * @preserveGlobalState disabled
  */
-class InstallerTest extends TestCase
+class InstallerTest extends MockedTest
 {
        use VFSTrait;
+       use L10nMockTrait;
 
        public function setUp()
        {
-               parent::setUp(); // TODO: Change the autogenerated stub
+               parent::setUp();
 
                $this->setUpVfsDir();
        }
 
+       /**
+        * Mocking the L10n::t() calls for the function checks
+        */
+       private function mockFunctionL10TCalls()
+       {
+               $this->mockL10nT('Apache mod_rewrite module', 1);
+               $this->mockL10nT('PDO or MySQLi PHP module', 1);
+               $this->mockL10nT('libCurl PHP module', 1);
+               $this->mockL10nT('Error: libCURL PHP module required but not installed.', 1);
+               $this->mockL10nT('XML PHP module', 1);
+               $this->mockL10nT('GD graphics PHP module', 1);
+               $this->mockL10nT('Error: GD graphics PHP module with JPEG support required but not installed.', 1);
+               $this->mockL10nT('OpenSSL PHP module', 1);
+               $this->mockL10nT('Error: openssl PHP module required but not installed.', 1);
+               $this->mockL10nT('mb_string PHP module', 1);
+               $this->mockL10nT('Error: mb_string PHP module required but not installed.', 1);
+               $this->mockL10nT('iconv PHP module', 1);
+               $this->mockL10nT('Error: iconv PHP module required but not installed.', 1);
+               $this->mockL10nT('POSIX PHP module', 1);
+               $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);
+       }
+
        private function assertCheckExist($position, $title, $help, $status, $required, $assertionArray)
        {
                $this->assertArraySubset([$position => [
@@ -73,6 +99,8 @@ class InstallerTest extends TestCase
         */
        public function testCheckKeys()
        {
+               $this->mockL10nT();
+
                $this->setFunctions(['openssl_pkey_new' => false]);
                $install = new Installer();
                $this->assertFalse($install->checkKeys());
@@ -87,73 +115,92 @@ class InstallerTest extends TestCase
         */
        public function testCheckFunctions()
        {
-               $this->setFunctions(['curl_init' => false]);
+               $this->mockFunctionL10TCalls();
+               $this->setFunctions(['curl_init' => false, 'imagecreatefromjpeg' => true]);
                $install = new Installer();
                $this->assertFalse($install->checkFunctions());
                $this->assertCheckExist(3,
-                       L10n::t('libCurl PHP module'),
-                       L10n::t('Error: libCURL PHP module required but not installed.'),
+                       'libCurl PHP module',
+                       'Error: libCURL PHP module required but not installed.',
                        false,
                        true,
                        $install->getChecks());
 
+               $this->mockFunctionL10TCalls();
                $this->setFunctions(['imagecreatefromjpeg' => false]);
                $install = new Installer();
                $this->assertFalse($install->checkFunctions());
                $this->assertCheckExist(4,
-                       L10n::t('GD graphics PHP module'),
-                       L10n::t('Error: GD graphics PHP module with JPEG support required but not installed.'),
+                       'GD graphics PHP module',
+                       'Error: GD graphics PHP module with JPEG support required but not installed.',
                        false,
                        true,
                        $install->getChecks());
 
+               $this->mockFunctionL10TCalls();
                $this->setFunctions(['openssl_public_encrypt' => false]);
                $install = new Installer();
                $this->assertFalse($install->checkFunctions());
                $this->assertCheckExist(5,
-                       L10n::t('OpenSSL PHP module'),
-                       L10n::t('Error: openssl PHP module required but not installed.'),
+                       'OpenSSL PHP module',
+                       'Error: openssl PHP module required but not installed.',
                        false,
                        true,
                        $install->getChecks());
 
+               $this->mockFunctionL10TCalls();
                $this->setFunctions(['mb_strlen' => false]);
                $install = new Installer();
                $this->assertFalse($install->checkFunctions());
                $this->assertCheckExist(6,
-                       L10n::t('mb_string PHP module'),
-                       L10n::t('Error: mb_string PHP module required but not installed.'),
+                       'mb_string PHP module',
+                       'Error: mb_string PHP module required but not installed.',
                        false,
                        true,
                        $install->getChecks());
 
+               $this->mockFunctionL10TCalls();
                $this->setFunctions(['iconv_strlen' => false]);
                $install = new Installer();
                $this->assertFalse($install->checkFunctions());
                $this->assertCheckExist(7,
-                       L10n::t('iconv PHP module'),
-                       L10n::t('Error: iconv PHP module required but not installed.'),
+                       'iconv PHP module',
+                       'Error: iconv PHP module required but not installed.',
                        false,
                        true,
                        $install->getChecks());
 
+               $this->mockFunctionL10TCalls();
                $this->setFunctions(['posix_kill' => false]);
                $install = new Installer();
                $this->assertFalse($install->checkFunctions());
                $this->assertCheckExist(8,
-                       L10n::t('POSIX PHP module'),
-                       L10n::t('Error: POSIX PHP module required but not installed.'),
+                       'POSIX PHP module',
+                       'Error: POSIX PHP module required but not installed.',
+                       false,
+                       true,
+                       $install->getChecks());
+
+               $this->mockFunctionL10TCalls();
+               $this->setFunctions(['json_encode' => false]);
+               $install = new Installer();
+               $this->assertFalse($install->checkFunctions());
+               $this->assertCheckExist(9,
+                       'JSON PHP module',
+                       'Error: JSON PHP module required but not installed.',
                        false,
                        true,
                        $install->getChecks());
 
+               $this->mockFunctionL10TCalls();
                $this->setFunctions([
                        'curl_init' => true,
                        'imagecreatefromjpeg' => true,
                        'openssl_public_encrypt' => true,
                        'mb_strlen' => true,
                        'iconv_strlen' => true,
-                       'posix_kill' => true
+                       'posix_kill' => true,
+                       'json_encode' => true
                ]);
                $install = new Installer();
                $this->assertTrue($install->checkFunctions());
@@ -164,14 +211,16 @@ class InstallerTest extends TestCase
         */
        public function testCheckLocalIni()
        {
-               $this->assertTrue($this->root->hasChild('config/local.ini.php'));
+               $this->mockL10nT();
+
+               $this->assertTrue($this->root->hasChild('config/local.config.php'));
 
                $install = new Installer();
                $this->assertTrue($install->checkLocalIni());
 
-               $this->delConfigFile('local.ini.php');
+               $this->delConfigFile('local.config.php');
 
-               $this->assertFalse($this->root->hasChild('config/local.ini.php'));
+               $this->assertFalse($this->root->hasChild('config/local.config.php'));
 
                $install = new Installer();
                $this->assertTrue($install->checkLocalIni());
@@ -182,6 +231,8 @@ class InstallerTest extends TestCase
         */
        public function testCheckHtAccessFail()
        {
+               $this->mockL10nT();
+
                // Mocking the CURL Response
                $curlResult = \Mockery::mock('Friendica\Network\CurlResult');
                $curlResult
@@ -208,9 +259,6 @@ class InstallerTest extends TestCase
                // Mocking that we can use CURL
                $this->setFunctions(['curl_init' => true]);
 
-               // needed because of "normalise_link"
-               require_once __DIR__ . '/../../../include/text.php';
-
                $install = new Installer();
 
                $this->assertFalse($install->checkHtAccess('https://test'));
@@ -222,6 +270,8 @@ class InstallerTest extends TestCase
         */
        public function testCheckHtAccessWork()
        {
+               $this->mockL10nT();
+
                // Mocking the failed CURL Response
                $curlResultF = \Mockery::mock('Friendica\Network\CurlResult');
                $curlResultF
@@ -261,6 +311,8 @@ class InstallerTest extends TestCase
         */
        public function testImagick()
        {
+               $this->mockL10nT();
+
                $imageMock = \Mockery::mock('alias:Friendica\Object\Image');
                $imageMock
                        ->shouldReceive('supportedTypes')
@@ -286,6 +338,8 @@ class InstallerTest extends TestCase
         */
        public function testImagickNotFound()
        {
+               $this->mockL10nT();
+
                $imageMock = \Mockery::mock('alias:Friendica\Object\Image');
                $imageMock
                        ->shouldReceive('supportedTypes')
@@ -308,13 +362,14 @@ class InstallerTest extends TestCase
        public function testImagickNotInstalled()
        {
                $this->setClasses(['Imagick' => false]);
+               $this->mockL10nT('ImageMagick PHP extension is not installed');
 
                $install = new Installer();
 
                // even there is no supported type, Imagick should return true (because it is not required)
                $this->assertTrue($install->checkImagick());
                $this->assertCheckExist(0,
-                       L10n::t('ImageMagick PHP extension is not installed'),
+                       'ImageMagick PHP extension is not installed',
                        '',
                        false,
                        false,