X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=tests%2Fsrc%2FConsole%2FAutomaticInstallationConsoleTest.php;h=a76ae1c06313e1d62f4b9da6b262deac157f0713;hb=6bf5c344f57d4a9908901697f39f5ac687e2f53f;hp=ab879b31945095be535403f5cfb6a44cc25e0aae;hpb=ab8997f9db910ba70c592bf106a7f5fc41a55b2d;p=friendica.git diff --git a/tests/src/Console/AutomaticInstallationConsoleTest.php b/tests/src/Console/AutomaticInstallationConsoleTest.php index ab879b3194..a76ae1c063 100644 --- a/tests/src/Console/AutomaticInstallationConsoleTest.php +++ b/tests/src/Console/AutomaticInstallationConsoleTest.php @@ -1,30 +1,46 @@ . + * + */ namespace Friendica\Test\src\Console; use Dice\Dice; use Friendica\App; use Friendica\Console\AutomaticInstallation; -use Friendica\Core\Config\Cache\ConfigCache; +use Friendica\Core\Config\ValueObject\Cache; use Friendica\Core\Installer; use Friendica\Core\L10n; use Friendica\Core\Logger; use Friendica\Database\Database; use Friendica\DI; -use Friendica\Test\Util\DBAMockTrait; -use Friendica\Test\Util\DBStructureMockTrait; use Friendica\Test\Util\RendererMockTrait; use Friendica\Test\Util\VFSTrait; -use Friendica\Util\Logger\VoidLogger; +use Mockery; use Mockery\MockInterface; use org\bovigo\vfs\vfsStream; use org\bovigo\vfs\vfsStreamFile; +use Psr\Log\NullLogger; class AutomaticInstallationConsoleTest extends ConsoleTest { use VFSTrait; - use DBAMockTrait; - use DBStructureMockTrait; use RendererMockTrait; /** @@ -37,7 +53,7 @@ class AutomaticInstallationConsoleTest extends ConsoleTest private $assertFileDb; /** - * @var ConfigCache The configuration cache to check after each test + * @var \Friendica\Core\Config\ValueObject\Cache The configuration cache to check after each test */ private $configCache; @@ -56,9 +72,9 @@ class AutomaticInstallationConsoleTest extends ConsoleTest */ private $dice; - public function setUp() + public function setUp() : void { - $this->markTestSkipped('Needs class \'Installer\' as constructing argument for console tests'); + static::markTestSkipped('Needs class \'Installer\' as constructing argument for console tests'); parent::setUp(); @@ -68,9 +84,9 @@ class AutomaticInstallationConsoleTest extends ConsoleTest $this->root->getChild('config') ->removeChild('local.config.php'); } - $this->dice = \Mockery::mock(Dice::class)->makePartial(); + $this->dice = Mockery::mock(Dice::class)->makePartial(); - $l10nMock = \Mockery::mock(L10n::class); + $l10nMock = Mockery::mock(L10n::class); $l10nMock->shouldReceive('t')->andReturnUsing(function ($args) { return $args; }); $this->dice->shouldReceive('create') @@ -79,7 +95,7 @@ class AutomaticInstallationConsoleTest extends ConsoleTest DI::init($this->dice); - $this->configCache = new ConfigCache(); + $this->configCache = new Cache(); $this->configCache->set('system', 'basepath', $this->root->url()); $this->configCache->set('config', 'php_path', trim(shell_exec('which php'))); $this->configCache->set('system', 'theme', 'smarty3'); @@ -101,7 +117,7 @@ class AutomaticInstallationConsoleTest extends ConsoleTest }); $this->mode->shouldReceive('isInstall')->andReturn(true); - Logger::init(new VoidLogger()); + Logger::init(new NullLogger()); } /** @@ -245,7 +261,7 @@ Installation is finished FIN; - $this->assertEquals($finished, $txt); + self::assertEquals($finished, $txt); } private function assertStuckDB($txt) @@ -276,7 +292,7 @@ Could not connect to database.: FIN; - $this->assertEquals($finished, $txt); + self::assertEquals($finished, $txt); } private function assertStuckURL($txt) @@ -300,7 +316,7 @@ The Friendica URL has to be set during CLI installation. FIN; - $this->assertEquals($finished, $txt); + self::assertEquals($finished, $txt); } /** @@ -314,13 +330,13 @@ FIN; public function assertConfigEntry($cat, $key, $assertion = null, $default_value = null) { if (!empty($assertion[$cat][$key])) { - $this->assertEquals($assertion[$cat][$key], $this->configCache->get($cat, $key)); + self::assertEquals($assertion[$cat][$key], $this->configCache->get($cat, $key)); } elseif (!empty($assertion) && !is_array($assertion)) { - $this->assertEquals($assertion, $this->configCache->get($cat, $key)); + self::assertEquals($assertion, $this->configCache->get($cat, $key)); } elseif (!empty($default_value)) { - $this->assertEquals($default_value, $this->configCache->get($cat, $key)); + self::assertEquals($default_value, $this->configCache->get($cat, $key)); } else { - $this->assertEmpty($this->configCache->get($cat, $key), $this->configCache->get($cat, $key)); + self::assertEmpty($this->configCache->get($cat, $key), $this->configCache->get($cat, $key)); } } @@ -339,21 +355,21 @@ FIN; $assertion['database']['hostname'] .= (!empty($assertion['database']['port']) ? ':' . $assertion['database']['port'] : ''); } - $this->assertConfigEntry('database', 'hostname', ($saveDb) ? $assertion : null, (!$saveDb || $defaultDb) ? Installer::DEFAULT_HOST : null); - $this->assertConfigEntry('database', 'username', ($saveDb) ? $assertion : null); - $this->assertConfigEntry('database', 'password', ($saveDb) ? $assertion : null); - $this->assertConfigEntry('database', 'database', ($saveDb) ? $assertion : null); - - $this->assertConfigEntry('config', 'admin_email', $assertion); - $this->assertConfigEntry('config', 'php_path', trim(shell_exec('which php'))); - $this->assertConfigEntry('config', 'hostname', $assertion); - - $this->assertConfigEntry('system', 'default_timezone', $assertion, ($default) ? Installer::DEFAULT_TZ : null); - $this->assertConfigEntry('system', 'language', $assertion, ($default) ? Installer::DEFAULT_LANG : null); - $this->assertConfigEntry('system', 'url', $assertion); - $this->assertConfigEntry('system', 'urlpath', $assertion); - $this->assertConfigEntry('system', 'ssl_policy', $assertion, ($default) ? App\BaseURL::DEFAULT_SSL_SCHEME : null); - $this->assertConfigEntry('system', 'basepath', ($realBasepath) ? $this->root->url() : $assertion); + self::assertConfigEntry('database', 'hostname', ($saveDb) ? $assertion : null, (!$saveDb || $defaultDb) ? Installer::DEFAULT_HOST : null); + self::assertConfigEntry('database', 'username', ($saveDb) ? $assertion : null); + self::assertConfigEntry('database', 'password', ($saveDb) ? $assertion : null); + self::assertConfigEntry('database', 'database', ($saveDb) ? $assertion : null); + + self::assertConfigEntry('config', 'admin_email', $assertion); + self::assertConfigEntry('config', 'php_path', trim(shell_exec('which php'))); + self::assertConfigEntry('config', 'hostname', $assertion); + + self::assertConfigEntry('system', 'default_timezone', $assertion, ($default) ? Installer::DEFAULT_TZ : null); + self::assertConfigEntry('system', 'language', $assertion, ($default) ? Installer::DEFAULT_LANG : null); + self::assertConfigEntry('system', 'url', $assertion); + self::assertConfigEntry('system', 'urlpath', $assertion); + self::assertConfigEntry('system', 'ssl_policy', $assertion, ($default) ? App\BaseURL::DEFAULT_SSL_SCHEME : null); + self::assertConfigEntry('system', 'basepath', ($realBasepath) ? $this->root->url() : $assertion); } /** @@ -366,7 +382,7 @@ FIN; $txt = $this->dumpExecute($console); - $this->assertStuckURL($txt); + self::assertStuckURL($txt); } /** @@ -381,17 +397,17 @@ FIN; $this->mockUpdate([$this->root->url(), false, true, true], null, 1); $this->mockGetMarkupTemplate('local.config.tpl', 'testTemplate', 1); - $this->mockReplaceMacros('testTemplate', \Mockery::any(), '', 1); + $this->mockReplaceMacros('testTemplate', Mockery::any(), '', 1); $console = new AutomaticInstallation($this->consoleArgv); $console->setOption('url', 'http://friendica.local'); $txt = $this->dumpExecute($console); - $this->assertFinished($txt, true, false); - $this->assertTrue($this->root->hasChild('config' . DIRECTORY_SEPARATOR . 'local.config.php')); + self::assertFinished($txt, true, false); + self::assertTrue($this->root->hasChild('config' . DIRECTORY_SEPARATOR . 'local.config.php')); - $this->assertConfig(['config' => ['hostname' => 'friendica.local'], 'system' => ['url' => 'http://friendica.local', 'ssl_policy' => 0, 'urlPath' => '']], false, true, true, true); + self::assertConfig(['config' => ['hostname' => 'friendica.local'], 'system' => ['url' => 'http://friendica.local', 'ssl_policy' => 0, 'urlPath' => '']], false, true, true, true); } /** @@ -427,6 +443,7 @@ return [ 'password' => '{$conf('database', 'password')}', 'database' => '{$conf('database', 'database')}', 'charset' => 'utf8mb4', + 'pdo_emulate_prepares' => false, ], // **************************************************************** @@ -462,12 +479,12 @@ CONF; $txt = $this->dumpExecute($console); - $this->assertFinished($txt, false, true); + self::assertFinished($txt, false, true); - $this->assertTrue($this->root->hasChild('config' . DIRECTORY_SEPARATOR . 'local.config.php')); - $this->assertEquals($config, file_get_contents($this->root->getChild('config' . DIRECTORY_SEPARATOR . 'local.config.php')->url())); + self::assertTrue($this->root->hasChild('config' . DIRECTORY_SEPARATOR . 'local.config.php')); + self::assertEquals($config, file_get_contents($this->root->getChild('config' . DIRECTORY_SEPARATOR . 'local.config.php')->url())); - $this->assertConfig($data, true, false, false); + self::assertConfig($data, true, false, false); } /** @@ -483,29 +500,29 @@ CONF; $this->mockUpdate([$this->root->url(), false, true, true], null, 1); $this->mockGetMarkupTemplate('local.config.tpl', 'testTemplate', 1); - $this->mockReplaceMacros('testTemplate', \Mockery::any(), '', 1); - - $this->assertTrue(putenv('MYSQL_HOST=' . $data['database']['hostname'])); - $this->assertTrue(putenv('MYSQL_PORT=' . $data['database']['port'])); - $this->assertTrue(putenv('MYSQL_DATABASE=' . $data['database']['database'])); - $this->assertTrue(putenv('MYSQL_USERNAME=' . $data['database']['username'])); - $this->assertTrue(putenv('MYSQL_PASSWORD=' . $data['database']['password'])); - - $this->assertTrue(putenv('FRIENDICA_HOSTNAME=' . $data['config']['hostname'])); - $this->assertTrue(putenv('FRIENDICA_BASE_PATH=' . $data['system']['basepath'])); - $this->assertTrue(putenv('FRIENDICA_URL=' . $data['system']['url'])); - $this->assertTrue(putenv('FRIENDICA_PHP_PATH=' . $data['config']['php_path'])); - $this->assertTrue(putenv('FRIENDICA_ADMIN_MAIL=' . $data['config']['admin_email'])); - $this->assertTrue(putenv('FRIENDICA_TZ=' . $data['system']['default_timezone'])); - $this->assertTrue(putenv('FRIENDICA_LANG=' . $data['system']['language'])); + $this->mockReplaceMacros('testTemplate', Mockery::any(), '', 1); + + self::assertTrue(putenv('MYSQL_HOST=' . $data['database']['hostname'])); + self::assertTrue(putenv('MYSQL_PORT=' . $data['database']['port'])); + self::assertTrue(putenv('MYSQL_DATABASE=' . $data['database']['database'])); + self::assertTrue(putenv('MYSQL_USERNAME=' . $data['database']['username'])); + self::assertTrue(putenv('MYSQL_PASSWORD=' . $data['database']['password'])); + + self::assertTrue(putenv('FRIENDICA_HOSTNAME=' . $data['config']['hostname'])); + self::assertTrue(putenv('FRIENDICA_BASE_PATH=' . $data['system']['basepath'])); + self::assertTrue(putenv('FRIENDICA_URL=' . $data['system']['url'])); + self::assertTrue(putenv('FRIENDICA_PHP_PATH=' . $data['config']['php_path'])); + self::assertTrue(putenv('FRIENDICA_ADMIN_MAIL=' . $data['config']['admin_email'])); + self::assertTrue(putenv('FRIENDICA_TZ=' . $data['system']['default_timezone'])); + self::assertTrue(putenv('FRIENDICA_LANG=' . $data['system']['language'])); $console = new AutomaticInstallation($this->consoleArgv); $console->setOption('savedb', true); $txt = $this->dumpExecute($console); - $this->assertFinished($txt, true); - $this->assertConfig($data, true, true, false, true); + self::assertFinished($txt, true); + self::assertConfig($data, true, true, false, true); } /** @@ -521,28 +538,28 @@ CONF; $this->mockUpdate([$this->root->url(), false, true, true], null, 1); $this->mockGetMarkupTemplate('local.config.tpl', 'testTemplate', 1); - $this->mockReplaceMacros('testTemplate', \Mockery::any(), '', 1); - - $this->assertTrue(putenv('MYSQL_HOST=' . $data['database']['hostname'])); - $this->assertTrue(putenv('MYSQL_PORT=' . $data['database']['port'])); - $this->assertTrue(putenv('MYSQL_DATABASE=' . $data['database']['database'])); - $this->assertTrue(putenv('MYSQL_USERNAME=' . $data['database']['username'])); - $this->assertTrue(putenv('MYSQL_PASSWORD=' . $data['database']['password'])); - - $this->assertTrue(putenv('FRIENDICA_HOSTNAME=' . $data['config']['hostname'])); - $this->assertTrue(putenv('FRIENDICA_BASE_PATH=' . $data['system']['basepath'])); - $this->assertTrue(putenv('FRIENDICA_URL=' . $data['system']['url'])); - $this->assertTrue(putenv('FRIENDICA_PHP_PATH=' . $data['config']['php_path'])); - $this->assertTrue(putenv('FRIENDICA_ADMIN_MAIL=' . $data['config']['admin_email'])); - $this->assertTrue(putenv('FRIENDICA_TZ=' . $data['system']['default_timezone'])); - $this->assertTrue(putenv('FRIENDICA_LANG=' . $data['system']['language'])); + $this->mockReplaceMacros('testTemplate', Mockery::any(), '', 1); + + self::assertTrue(putenv('MYSQL_HOST=' . $data['database']['hostname'])); + self::assertTrue(putenv('MYSQL_PORT=' . $data['database']['port'])); + self::assertTrue(putenv('MYSQL_DATABASE=' . $data['database']['database'])); + self::assertTrue(putenv('MYSQL_USERNAME=' . $data['database']['username'])); + self::assertTrue(putenv('MYSQL_PASSWORD=' . $data['database']['password'])); + + self::assertTrue(putenv('FRIENDICA_HOSTNAME=' . $data['config']['hostname'])); + self::assertTrue(putenv('FRIENDICA_BASE_PATH=' . $data['system']['basepath'])); + self::assertTrue(putenv('FRIENDICA_URL=' . $data['system']['url'])); + self::assertTrue(putenv('FRIENDICA_PHP_PATH=' . $data['config']['php_path'])); + self::assertTrue(putenv('FRIENDICA_ADMIN_MAIL=' . $data['config']['admin_email'])); + self::assertTrue(putenv('FRIENDICA_TZ=' . $data['system']['default_timezone'])); + self::assertTrue(putenv('FRIENDICA_LANG=' . $data['system']['language'])); $console = new AutomaticInstallation($this->consoleArgv); $txt = $this->dumpExecute($console); - $this->assertFinished($txt, true); - $this->assertConfig($data, false, true, false, true); + self::assertFinished($txt, true); + self::assertConfig($data, false, true, false, true); } /** @@ -557,7 +574,7 @@ CONF; $this->mockUpdate([$this->root->url(), false, true, true], null, 1); $this->mockGetMarkupTemplate('local.config.tpl', 'testTemplate', 1); - $this->mockReplaceMacros('testTemplate', \Mockery::any(), '', 1); + $this->mockReplaceMacros('testTemplate', Mockery::any(), '', 1); $console = new AutomaticInstallation($this->consoleArgv); @@ -580,8 +597,8 @@ CONF; $txt = $this->dumpExecute($console); - $this->assertFinished($txt, true); - $this->assertConfig($data, true, true, true, true); + self::assertFinished($txt, true); + self::assertConfig($data, true, true, true, true); } /** @@ -592,17 +609,17 @@ CONF; $this->mockConnect(false, 1); $this->mockGetMarkupTemplate('local.config.tpl', 'testTemplate', 1); - $this->mockReplaceMacros('testTemplate', \Mockery::any(), '', 1); + $this->mockReplaceMacros('testTemplate', Mockery::any(), '', 1); $console = new AutomaticInstallation($this->consoleArgv); $console->setOption('url', 'http://friendica.local'); $txt = $this->dumpExecute($console); - $this->assertStuckDB($txt); - $this->assertTrue($this->root->hasChild('config' . DIRECTORY_SEPARATOR . 'local.config.php')); + self::assertStuckDB($txt); + self::assertTrue($this->root->hasChild('config' . DIRECTORY_SEPARATOR . 'local.config.php')); - $this->assertConfig(['config' => ['hostname' => 'friendica.local'], 'system' => ['url' => 'http://friendica.local', 'ssl_policy' => 0, 'urlpath' => '']], false, true, false, true); + self::assertConfig(['config' => ['hostname' => 'friendica.local'], 'system' => ['url' => 'http://friendica.local', 'ssl_policy' => 0, 'urlpath' => '']], false, true, false, true); } public function testGetHelp() @@ -666,6 +683,6 @@ HELP; $txt = $this->dumpExecute($console); - $this->assertEquals($theHelp, $txt); + self::assertEquals($theHelp, $txt); } }