Merge pull request #7358 from nupplaphil/bug/installer_db

Bugfixing DB/Installer (Simplify Config Part 1)
This commit is contained in:
Hypolite Petovan 2019-07-12 16:48:17 -04:00 committed by GitHub
commit b56709d802
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 16 deletions

View file

@ -95,7 +95,7 @@ class ConfigCache implements IConfigCache, IPConfigCache
if ($this->hidePasswordOutput && if ($this->hidePasswordOutput &&
$key == 'password' && $key == 'password' &&
!empty($value) && is_string($value)) { is_string($value)) {
$this->config[$cat][$key] = new HiddenString((string) $value); $this->config[$cat][$key] = new HiddenString((string) $value);
} else { } else {
$this->config[$cat][$key] = $value; $this->config[$cat][$key] = $value;

View file

@ -7,8 +7,8 @@ namespace Friendica\Core;
use DOMDocument; use DOMDocument;
use Exception; use Exception;
use Friendica\Core\Config\Cache\IConfigCache; use Friendica\Core\Config\Cache\IConfigCache;
use Friendica\Database\DBA;
use Friendica\Database\DBStructure; use Friendica\Database\DBStructure;
use Friendica\Factory\DBFactory;
use Friendica\Object\Image; use Friendica\Object\Image;
use Friendica\Util\Logger\VoidLogger; use Friendica\Util\Logger\VoidLogger;
use Friendica\Util\Network; use Friendica\Util\Network;
@ -600,23 +600,18 @@ class Installer
*/ */
public function checkDB(IConfigCache $configCache, Profiler $profiler) public function checkDB(IConfigCache $configCache, Profiler $profiler)
{ {
$dbhost = $configCache->get('database', 'hostname'); $database = DBFactory::init($configCache, $profiler, [], new VoidLogger());
$dbuser = $configCache->get('database', 'username');
$dbpass = $configCache->get('database', 'password');
$dbdata = $configCache->get('database', 'database');
if (!DBA::connect($configCache, $profiler, new VoidLogger(), $dbhost, $dbuser, $dbpass, $dbdata)) { if ($database->connected()) {
$this->addCheck(L10n::t('Could not connect to database.'), false, true, '');
return false;
}
if (DBA::connected()) {
if (DBStructure::existsTable('user')) { if (DBStructure::existsTable('user')) {
$this->addCheck(L10n::t('Database already in use.'), false, true, ''); $this->addCheck(L10n::t('Database already in use.'), false, true, '');
return false; return false;
} }
} else {
$this->addCheck(L10n::t('Could not connect to database.'), false, true, '');
return false;
} }
return true; return true;

View file

@ -16,8 +16,6 @@ use org\bovigo\vfs\vfsStream;
use org\bovigo\vfs\vfsStreamFile; use org\bovigo\vfs\vfsStreamFile;
/** /**
* @runTestsInSeparateProcesses
* @preserveGlobalState disabled
* @requires PHP 7.0 * @requires PHP 7.0
*/ */
class AutomaticInstallationConsoleTest extends ConsoleTest class AutomaticInstallationConsoleTest extends ConsoleTest
@ -43,6 +41,8 @@ class AutomaticInstallationConsoleTest extends ConsoleTest
public function setUp() public function setUp()
{ {
$this->markTestSkipped('Needs class \'Installer\' as constructing argument for console tests');
parent::setUp(); parent::setUp();
if ($this->root->hasChild('config' . DIRECTORY_SEPARATOR . 'local.config.php')) { if ($this->root->hasChild('config' . DIRECTORY_SEPARATOR . 'local.config.php')) {

View file

@ -4,6 +4,7 @@ namespace Friendica\Test\src\Core\Config\Cache;
use Friendica\Core\Config\Cache\ConfigCache; use Friendica\Core\Config\Cache\ConfigCache;
use Friendica\Test\MockedTest; use Friendica\Test\MockedTest;
use ParagonIE\HiddenString\HiddenString;
class ConfigCacheTest extends MockedTest class ConfigCacheTest extends MockedTest
{ {
@ -322,7 +323,8 @@ class ConfigCacheTest extends MockedTest
] ]
]); ]);
$this->assertEmpty($configCache->get('database', 'password')); $this->assertNotEmpty($configCache->get('database', 'password'));
$this->assertInstanceOf(HiddenString::class, $configCache->get('database', 'password'));
$this->assertEmpty($configCache->get('database', 'username')); $this->assertEmpty($configCache->get('database', 'username'));
} }