Fixup and adding tests
This commit is contained in:
parent
fa9c3d40be
commit
e072c9985e
3 changed files with 72 additions and 2 deletions
|
@ -83,7 +83,7 @@ class DatabaseConfig implements IManageConfigValues
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
public function isSetDisabled(string $cat, string $key): bool
|
public function isSetDisabled(string $cat, string $key): bool
|
||||||
{
|
{
|
||||||
return $this->cache->getSource($cat, $key) >= 0;
|
return $this->cache->getSource($cat, $key) >= Cache::SOURCE_ENV;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
|
|
|
@ -65,7 +65,7 @@ trait VFSTrait
|
||||||
* @param string $sourceFilePath The filename of the config file
|
* @param string $sourceFilePath The filename of the config file
|
||||||
* @param bool $static True, if the folder `static` instead of `config` should be used
|
* @param bool $static True, if the folder `static` instead of `config` should be used
|
||||||
*/
|
*/
|
||||||
protected function setConfigFile(string $sourceFilePath, bool $static = false, string $targetFileName = null)
|
public function setConfigFile(string $sourceFilePath, bool $static = false, string $targetFileName = null)
|
||||||
{
|
{
|
||||||
$file = dirname(__DIR__) . DIRECTORY_SEPARATOR .
|
$file = dirname(__DIR__) . DIRECTORY_SEPARATOR .
|
||||||
'..' . DIRECTORY_SEPARATOR .
|
'..' . DIRECTORY_SEPARATOR .
|
||||||
|
|
|
@ -566,4 +566,74 @@ class ConfigTest extends DatabaseTest
|
||||||
$config->set('test', 'it', $value);
|
$config->set('test', 'it', $value);
|
||||||
self:self::assertEquals($assertion, $config->get('test', 'it'));
|
self:self::assertEquals($assertion, $config->get('test', 'it'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function dataEnv(): array
|
||||||
|
{
|
||||||
|
$data = [
|
||||||
|
'config' => [
|
||||||
|
'admin_email' => 'value1',
|
||||||
|
'timezone' => 'value2',
|
||||||
|
'language' => 'value3',
|
||||||
|
'sitename' => 'value',
|
||||||
|
],
|
||||||
|
'system' => [
|
||||||
|
'url' => 'value1a',
|
||||||
|
'debugging' => true,
|
||||||
|
'logfile' => 'value4',
|
||||||
|
'loglevel' => 'notice',
|
||||||
|
'proflier' => true,
|
||||||
|
],
|
||||||
|
'proxy' => [
|
||||||
|
'trusted_proxies' => 'value5',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
||||||
|
return [
|
||||||
|
'empty' => [
|
||||||
|
'data' => $data,
|
||||||
|
'server' => [],
|
||||||
|
'assertDisabled' => [],
|
||||||
|
],
|
||||||
|
'mixed' => [
|
||||||
|
'data' => $data,
|
||||||
|
'server' => [
|
||||||
|
'FRIENDICA_ADMIN_MAIL' => 'test@friendica.local',
|
||||||
|
'FRIENDICA_DEBUGGING' => true,
|
||||||
|
],
|
||||||
|
'assertDisabled' => [
|
||||||
|
'config' => [
|
||||||
|
'admin_email' => true,
|
||||||
|
],
|
||||||
|
'system' => [
|
||||||
|
'debugging' => true,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests if environment variables leads to a disabled set
|
||||||
|
*
|
||||||
|
* @dataProvider dataEnv
|
||||||
|
*/
|
||||||
|
public function testIsSetDisabled(array $data, array $server, array $assertDisabled)
|
||||||
|
{
|
||||||
|
$this->setConfigFile('static' . DIRECTORY_SEPARATOR . 'env.config.php', true);
|
||||||
|
$this->loadDirectFixture($this->configToDbArray($data), $this->getDbInstance());
|
||||||
|
|
||||||
|
$configFileManager = new ConfigFileManager($this->root->url(), $this->root->url() . '/config/', $this->root->url() . '/static/', $server);
|
||||||
|
$configFileManager->setupCache($this->configCache);
|
||||||
|
$config = new DatabaseConfig($this->getDbInstance(), $this->configCache);
|
||||||
|
|
||||||
|
foreach ($data as $category => $keyvalues) {
|
||||||
|
foreach ($keyvalues as $key => $value) {
|
||||||
|
if (!empty($assertDisabled[$category][$key])) {
|
||||||
|
static::assertTrue($config->isSetDisabled($category, $key), sprintf("%s.%s is not true", $category, $key));
|
||||||
|
} else {
|
||||||
|
static::assertFalse($config->isSetDisabled($category, $key), sprintf("%s.%s is not false", $category, $key));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue