diff --git a/src/Core/Config/Cache/ConfigCache.php b/src/Core/Config/Cache/ConfigCache.php index 441cdee81..6679b55ab 100644 --- a/src/Core/Config/Cache/ConfigCache.php +++ b/src/Core/Config/Cache/ConfigCache.php @@ -95,7 +95,7 @@ class ConfigCache implements IConfigCache, IPConfigCache if ($this->hidePasswordOutput && $key == 'password' && - !empty($value) && is_string($value)) { + is_string($value)) { $this->config[$cat][$key] = new HiddenString((string) $value); } else { $this->config[$cat][$key] = $value; diff --git a/src/Core/Installer.php b/src/Core/Installer.php index 046b34ea6..f49dde4e5 100644 --- a/src/Core/Installer.php +++ b/src/Core/Installer.php @@ -7,8 +7,8 @@ namespace Friendica\Core; use DOMDocument; use Exception; use Friendica\Core\Config\Cache\IConfigCache; -use Friendica\Database\DBA; use Friendica\Database\DBStructure; +use Friendica\Factory\DBFactory; use Friendica\Object\Image; use Friendica\Util\Logger\VoidLogger; use Friendica\Util\Network; @@ -600,23 +600,18 @@ class Installer */ public function checkDB(IConfigCache $configCache, Profiler $profiler) { - $dbhost = $configCache->get('database', 'hostname'); - $dbuser = $configCache->get('database', 'username'); - $dbpass = $configCache->get('database', 'password'); - $dbdata = $configCache->get('database', 'database'); + $database = DBFactory::init($configCache, $profiler, [], new VoidLogger()); - if (!DBA::connect($configCache, $profiler, new VoidLogger(), $dbhost, $dbuser, $dbpass, $dbdata)) { - $this->addCheck(L10n::t('Could not connect to database.'), false, true, ''); - - return false; - } - - if (DBA::connected()) { + if ($database->connected()) { if (DBStructure::existsTable('user')) { $this->addCheck(L10n::t('Database already in use.'), false, true, ''); return false; } + } else { + $this->addCheck(L10n::t('Could not connect to database.'), false, true, ''); + + return false; } return true; diff --git a/src/Protocol/ActivityPub/Receiver.php b/src/Protocol/ActivityPub/Receiver.php index a8b5a18db..f830f857a 100644 --- a/src/Protocol/ActivityPub/Receiver.php +++ b/src/Protocol/ActivityPub/Receiver.php @@ -657,27 +657,14 @@ class Receiver */ public static function switchContact($cid, $uid, $url) { - $profile = ActivityPub::probeProfile($url); - if (empty($profile)) { - return; - } + Contact::updateFromProbe($cid, '', true); - Logger::log('Switch contact ' . $cid . ' (' . $profile['url'] . ') for user ' . $uid . ' to ActivityPub'); - - $photo = defaults($profile, 'photo', null); - unset($profile['photo']); - unset($profile['baseurl']); - unset($profile['guid']); - - $profile['nurl'] = Strings::normaliseLink($profile['url']); - DBA::update('contact', $profile, ['id' => $cid]); - - Contact::updateAvatar($photo, $uid, $cid); + Logger::log('Switch contact ' . $cid . ' (' . $url . ') for user ' . $uid . ' to ActivityPub'); // Send a new follow request to be sure that the connection still exists if (($uid != 0) && DBA::exists('contact', ['id' => $cid, 'rel' => [Contact::SHARING, Contact::FRIEND]])) { - ActivityPub\Transmitter::sendActivity('Follow', $profile['url'], $uid); - Logger::log('Send a new follow request to ' . $profile['url'] . ' for user ' . $uid, Logger::DEBUG); + ActivityPub\Transmitter::sendActivity('Follow', $url, $uid); + Logger::log('Send a new follow request to ' . $url . ' for user ' . $uid, Logger::DEBUG); } } diff --git a/tests/src/Console/AutomaticInstallationConsoleTest.php b/tests/src/Console/AutomaticInstallationConsoleTest.php index acf5dac7b..a5df0e92a 100644 --- a/tests/src/Console/AutomaticInstallationConsoleTest.php +++ b/tests/src/Console/AutomaticInstallationConsoleTest.php @@ -16,8 +16,6 @@ use org\bovigo\vfs\vfsStream; use org\bovigo\vfs\vfsStreamFile; /** - * @runTestsInSeparateProcesses - * @preserveGlobalState disabled * @requires PHP 7.0 */ class AutomaticInstallationConsoleTest extends ConsoleTest @@ -43,6 +41,8 @@ class AutomaticInstallationConsoleTest extends ConsoleTest public function setUp() { + $this->markTestSkipped('Needs class \'Installer\' as constructing argument for console tests'); + parent::setUp(); if ($this->root->hasChild('config' . DIRECTORY_SEPARATOR . 'local.config.php')) { diff --git a/tests/src/Core/Config/Cache/ConfigCacheTest.php b/tests/src/Core/Config/Cache/ConfigCacheTest.php index f8f81f9ee..9c93c44f2 100644 --- a/tests/src/Core/Config/Cache/ConfigCacheTest.php +++ b/tests/src/Core/Config/Cache/ConfigCacheTest.php @@ -4,6 +4,7 @@ namespace Friendica\Test\src\Core\Config\Cache; use Friendica\Core\Config\Cache\ConfigCache; use Friendica\Test\MockedTest; +use ParagonIE\HiddenString\HiddenString; 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')); }