mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
fix(config): fix tests+psalm
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
This commit is contained in:
parent
a4b9edc8eb
commit
bbc9ed138c
10 changed files with 46 additions and 29 deletions
|
|
@ -1219,6 +1219,7 @@ return array(
|
|||
'OC\\Comments\\ManagerFactory' => $baseDir . '/lib/private/Comments/ManagerFactory.php',
|
||||
'OC\\Config' => $baseDir . '/lib/private/Config.php',
|
||||
'OC\\Config\\ConfigManager' => $baseDir . '/lib/private/Config/ConfigManager.php',
|
||||
'OC\\Config\\PresetManager' => $baseDir . '/lib/private/Config/PresetManager.php',
|
||||
'OC\\Config\\UserConfig' => $baseDir . '/lib/private/Config/UserConfig.php',
|
||||
'OC\\Console\\Application' => $baseDir . '/lib/private/Console/Application.php',
|
||||
'OC\\Console\\TimestampFormatter' => $baseDir . '/lib/private/Console/TimestampFormatter.php',
|
||||
|
|
|
|||
|
|
@ -1260,6 +1260,7 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
|
|||
'OC\\Comments\\ManagerFactory' => __DIR__ . '/../../..' . '/lib/private/Comments/ManagerFactory.php',
|
||||
'OC\\Config' => __DIR__ . '/../../..' . '/lib/private/Config.php',
|
||||
'OC\\Config\\ConfigManager' => __DIR__ . '/../../..' . '/lib/private/Config/ConfigManager.php',
|
||||
'OC\\Config\\PresetManager' => __DIR__ . '/../../..' . '/lib/private/Config/PresetManager.php',
|
||||
'OC\\Config\\UserConfig' => __DIR__ . '/../../..' . '/lib/private/Config/UserConfig.php',
|
||||
'OC\\Console\\Application' => __DIR__ . '/../../..' . '/lib/private/Console/Application.php',
|
||||
'OC\\Console\\TimestampFormatter' => __DIR__ . '/../../..' . '/lib/private/Console/TimestampFormatter.php',
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ use OC\Config\ConfigManager;
|
|||
use OC\Config\PresetManager;
|
||||
use OCP\Config\Lexicon\Entry;
|
||||
use OCP\Config\Lexicon\ILexicon;
|
||||
use OCP\Config\Lexicon\Preset;
|
||||
use OCP\Config\Lexicon\Strictness;
|
||||
use OCP\Config\ValueType;
|
||||
use OCP\DB\Exception as DBException;
|
||||
|
|
@ -28,7 +27,6 @@ use OCP\IAppConfig;
|
|||
use OCP\IConfig;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\Security\ICrypto;
|
||||
use OCP\Server;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
/**
|
||||
|
|
@ -1136,7 +1134,7 @@ class AppConfig implements IAppConfig {
|
|||
]);
|
||||
}
|
||||
|
||||
return array_filter($details, static fn($v): bool => ($v !== null));
|
||||
return array_filter($details, static fn ($v): bool => ($v !== null));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -14,10 +14,8 @@ use OCP\App\IAppManager;
|
|||
use OCP\Config\Exceptions\TypeConflictException;
|
||||
use OCP\Config\IUserConfig;
|
||||
use OCP\Config\Lexicon\Entry;
|
||||
use OCP\Config\Lexicon\Preset;
|
||||
use OCP\Config\ValueType;
|
||||
use OCP\IAppConfig;
|
||||
use OCP\IConfig;
|
||||
use OCP\Server;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
|
|
|
|||
|
|
@ -13,8 +13,6 @@ use OCP\IConfig;
|
|||
|
||||
/**
|
||||
* tools to maintains configurations
|
||||
*
|
||||
* @since 32.0.0
|
||||
*/
|
||||
class PresetManager {
|
||||
private const PRESET_CONFIGKEY = 'config_preset';
|
||||
|
|
@ -37,6 +35,9 @@ class PresetManager {
|
|||
$this->configManager->clearConfigCaches();
|
||||
}
|
||||
|
||||
/**
|
||||
* returns currently selected Preset
|
||||
*/
|
||||
public function getLexiconPreset(): Preset {
|
||||
if ($this->configLexiconPreset === null) {
|
||||
$this->configLexiconPreset = Preset::tryFrom($this->config->getSystemValueInt(self::PRESET_CONFIGKEY, 0)) ?? Preset::NONE;
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ use OCP\Config\Exceptions\UnknownKeyException;
|
|||
use OCP\Config\IUserConfig;
|
||||
use OCP\Config\Lexicon\Entry;
|
||||
use OCP\Config\Lexicon\ILexicon;
|
||||
use OCP\Config\Lexicon\Preset;
|
||||
use OCP\Config\Lexicon\Strictness;
|
||||
use OCP\Config\ValueType;
|
||||
use OCP\DB\Exception as DBException;
|
||||
|
|
@ -27,7 +26,6 @@ use OCP\DB\QueryBuilder\IQueryBuilder;
|
|||
use OCP\IConfig;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\Security\ICrypto;
|
||||
use OCP\Server;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -327,22 +327,23 @@ class ProfileManager implements IProfileManager {
|
|||
|
||||
/**
|
||||
* modify property visibility, based on current Preset
|
||||
*
|
||||
* @psalm-suppress UnhandledMatchCondition if conditions are not met, we do not change $visibility
|
||||
*/
|
||||
private function applyDefaultProfilePreset(string $property, string &$visibility): void {
|
||||
$overwrite = match($this->presetManager->getLexiconPreset()) {
|
||||
Preset::SHARED, Preset::SCHOOL, Preset::UNIVERSITY => match($property) {
|
||||
IAccountManager::PROPERTY_ADDRESS, IAccountManager::PROPERTY_EMAIL, IAccountManager::PROPERTY_PHONE => self::VISIBILITY_HIDE,
|
||||
},
|
||||
Preset::PRIVATE, Preset::FAMILY, Preset::CLUB => match($property) {
|
||||
IAccountManager::PROPERTY_EMAIL => self::VISIBILITY_SHOW,
|
||||
},
|
||||
Preset::SMALL, Preset::MEDIUM, Preset::LARGE => match($property) {
|
||||
IAccountManager::PROPERTY_EMAIL, IAccountManager::PROPERTY_PHONE => self::VISIBILITY_SHOW,
|
||||
},
|
||||
default => null,
|
||||
};
|
||||
|
||||
if ($overwrite === null) {
|
||||
try {
|
||||
$overwrite = match ($this->presetManager->getLexiconPreset()) {
|
||||
Preset::SHARED, Preset::SCHOOL, Preset::UNIVERSITY => match ($property) {
|
||||
IAccountManager::PROPERTY_ADDRESS, IAccountManager::PROPERTY_EMAIL, IAccountManager::PROPERTY_PHONE => self::VISIBILITY_HIDE,
|
||||
},
|
||||
Preset::PRIVATE, Preset::FAMILY, Preset::CLUB => match ($property) {
|
||||
IAccountManager::PROPERTY_EMAIL => self::VISIBILITY_SHOW,
|
||||
},
|
||||
Preset::SMALL, Preset::MEDIUM, Preset::LARGE => match ($property) {
|
||||
IAccountManager::PROPERTY_EMAIL, IAccountManager::PROPERTY_PHONE => self::VISIBILITY_SHOW,
|
||||
},
|
||||
};
|
||||
} catch (\UnhandledMatchError) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ namespace Test;
|
|||
|
||||
use InvalidArgumentException;
|
||||
use OC\AppConfig;
|
||||
use OC\Config\ConfigManager;
|
||||
use OC\Config\PresetManager;
|
||||
use OCP\Exceptions\AppConfigTypeConflictException;
|
||||
use OCP\Exceptions\AppConfigUnknownKeyException;
|
||||
use OCP\IAppConfig;
|
||||
|
|
@ -29,6 +31,8 @@ class AppConfigTest extends TestCase {
|
|||
protected IAppConfig $appConfig;
|
||||
protected IDBConnection $connection;
|
||||
private IConfig $config;
|
||||
private ConfigManager $configManager;
|
||||
private PresetManager $presetManager;
|
||||
private LoggerInterface $logger;
|
||||
private ICrypto $crypto;
|
||||
|
||||
|
|
@ -99,6 +103,8 @@ class AppConfigTest extends TestCase {
|
|||
|
||||
$this->connection = Server::get(IDBConnection::class);
|
||||
$this->config = Server::get(IConfig::class);
|
||||
$this->configManager = Server::get(ConfigManager::class);
|
||||
$this->presetManager = Server::get(PresetManager::class);
|
||||
$this->logger = Server::get(LoggerInterface::class);
|
||||
$this->crypto = Server::get(ICrypto::class);
|
||||
|
||||
|
|
@ -190,6 +196,8 @@ class AppConfigTest extends TestCase {
|
|||
$config = new AppConfig(
|
||||
$this->connection,
|
||||
$this->config,
|
||||
$this->configManager,
|
||||
$this->presetManager,
|
||||
$this->logger,
|
||||
$this->crypto,
|
||||
);
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ namespace Tests\lib\Config;
|
|||
use OC\AppConfig;
|
||||
use OC\AppFramework\Bootstrap\Coordinator;
|
||||
use OC\Config\ConfigManager;
|
||||
use OC\Config\PresetManager;
|
||||
use OCP\Config\Exceptions\TypeConflictException;
|
||||
use OCP\Config\Exceptions\UnknownKeyException;
|
||||
use OCP\Config\IUserConfig;
|
||||
|
|
@ -32,6 +33,7 @@ class LexiconTest extends TestCase {
|
|||
private IAppConfig $appConfig;
|
||||
private IUserConfig $userConfig;
|
||||
private ConfigManager $configManager;
|
||||
private PresetManager $presetManager;
|
||||
|
||||
protected function setUp(): void {
|
||||
parent::setUp();
|
||||
|
|
@ -45,6 +47,7 @@ class LexiconTest extends TestCase {
|
|||
$this->appConfig = Server::get(IAppConfig::class);
|
||||
$this->userConfig = Server::get(IUserConfig::class);
|
||||
$this->configManager = Server::get(ConfigManager::class);
|
||||
$this->presetManager = Server::get(PresetManager::class);
|
||||
}
|
||||
|
||||
protected function tearDown(): void {
|
||||
|
|
@ -206,26 +209,26 @@ class LexiconTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testAppConfigLexiconPreset() {
|
||||
$this->configManager->setLexiconPreset(Preset::FAMILY);
|
||||
$this->presetManager->setLexiconPreset(Preset::FAMILY);
|
||||
$this->assertSame('family', $this->appConfig->getValueString(TestLexicon_E::APPID, 'key3'));
|
||||
}
|
||||
|
||||
public function testAppConfigLexiconPresets() {
|
||||
$this->configManager->setLexiconPreset(Preset::MEDIUM);
|
||||
$this->presetManager->setLexiconPreset(Preset::MEDIUM);
|
||||
$this->assertSame('club+medium', $this->appConfig->getValueString(TestLexicon_E::APPID, 'key3'));
|
||||
$this->configManager->setLexiconPreset(Preset::FAMILY);
|
||||
$this->presetManager->setLexiconPreset(Preset::FAMILY);
|
||||
$this->assertSame('family', $this->appConfig->getValueString(TestLexicon_E::APPID, 'key3'));
|
||||
}
|
||||
|
||||
public function testUserConfigLexiconPreset() {
|
||||
$this->configManager->setLexiconPreset(Preset::FAMILY);
|
||||
$this->presetManager->setLexiconPreset(Preset::FAMILY);
|
||||
$this->assertSame('family', $this->userConfig->getValueString('user1', TestLexicon_E::APPID, 'key3'));
|
||||
}
|
||||
|
||||
public function testUserConfigLexiconPresets() {
|
||||
$this->configManager->setLexiconPreset(Preset::MEDIUM);
|
||||
$this->presetManager->setLexiconPreset(Preset::MEDIUM);
|
||||
$this->assertSame('club+medium', $this->userConfig->getValueString('user1', TestLexicon_E::APPID, 'key3'));
|
||||
$this->configManager->setLexiconPreset(Preset::FAMILY);
|
||||
$this->presetManager->setLexiconPreset(Preset::FAMILY);
|
||||
$this->assertSame('family', $this->userConfig->getValueString('user1', TestLexicon_E::APPID, 'key3'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ declare(strict_types=1);
|
|||
*/
|
||||
namespace Test\lib\Config;
|
||||
|
||||
use OC\Config\ConfigManager;
|
||||
use OC\Config\PresetManager;
|
||||
use OC\Config\UserConfig;
|
||||
use OCP\Config\Exceptions\TypeConflictException;
|
||||
use OCP\Config\Exceptions\UnknownKeyException;
|
||||
|
|
@ -29,6 +31,8 @@ use Test\TestCase;
|
|||
class UserConfigTest extends TestCase {
|
||||
protected IDBConnection $connection;
|
||||
private IConfig $config;
|
||||
private ConfigManager $configManager;
|
||||
private PresetManager $presetManager;
|
||||
private LoggerInterface $logger;
|
||||
private ICrypto $crypto;
|
||||
private array $originalPreferences;
|
||||
|
|
@ -173,6 +177,8 @@ class UserConfigTest extends TestCase {
|
|||
|
||||
$this->connection = Server::get(IDBConnection::class);
|
||||
$this->config = Server::get(IConfig::class);
|
||||
$this->configManager = Server::get(ConfigManager::class);
|
||||
$this->presetManager = Server::get(PresetManager::class);
|
||||
$this->logger = Server::get(LoggerInterface::class);
|
||||
$this->crypto = Server::get(ICrypto::class);
|
||||
|
||||
|
|
@ -282,6 +288,8 @@ class UserConfigTest extends TestCase {
|
|||
$userConfig = new UserConfig(
|
||||
$this->connection,
|
||||
$this->config,
|
||||
$this->configManager,
|
||||
$this->presetManager,
|
||||
$this->logger,
|
||||
$this->crypto,
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in a new issue