From c1dbb256561ecdb19fe0541628b1ec0f06d95dfa Mon Sep 17 00:00:00 2001 From: nupplaPhil Date: Thu, 19 Dec 2019 20:11:07 +0100 Subject: [PATCH] Creating interfaces for Config/PConfig & fix tests --- index.php | 2 +- src/App.php | 14 ++-- src/App/Authentication.php | 8 +- src/App/BaseURL.php | 8 +- src/App/Module.php | 4 +- src/App/Page.php | 16 ++-- src/Console/AutomaticInstallation.php | 4 +- src/Console/Config.php | 6 +- src/Console/Maintenance.php | 6 +- src/Console/PostUpdate.php | 6 +- src/Console/ServerBlock.php | 18 ++-- src/Console/Typo.php | 6 +- src/Core/Cache/MemcacheCache.php | 4 +- src/Core/Cache/MemcachedCache.php | 4 +- src/Core/Cache/RedisCache.php | 4 +- src/Core/Config/Configuration.php | 62 +------------- src/Core/Config/IConfiguration.php | 73 +++++++++++++++++ src/Core/Config/IPConfiguration.php | 82 +++++++++++++++++++ src/Core/Config/PConfiguration.php | 66 +-------------- src/Core/L10n/L10n.php | 4 +- src/Core/Process.php | 6 +- src/DI.php | 12 +-- src/Factory/CacheFactory.php | 6 +- src/Factory/ConfigFactory.php | 4 +- src/Factory/LockFactory.php | 6 +- src/Factory/LoggerFactory.php | 10 +-- src/Factory/SessionFactory.php | 7 +- src/Model/Notify.php | 6 +- src/Model/User/Cookie.php | 4 +- src/Module/Diaspora/Receive.php | 3 - src/Util/Profiler.php | 6 +- static/dependencies.config.php | 4 +- tests/Util/AppMockTrait.php | 12 +-- tests/bootstrap.php | 7 ++ tests/functional/DependencyCheckTest.php | 12 +-- tests/include/ApiTest.php | 16 ++-- tests/phpunit-local.xml | 26 ++++++ tests/src/App/ModuleTest.php | 4 +- tests/src/Console/ConfigConsoleTest.php | 4 +- tests/src/Console/ServerBlockConsoleTest.php | 4 +- tests/src/Content/Text/BBCodeTest.php | 4 +- tests/src/Core/Cache/MemcacheCacheTest.php | 4 +- tests/src/Core/Cache/MemcachedCacheTest.php | 4 +- tests/src/Core/Cache/RedisCacheTest.php | 4 +- tests/src/Core/Config/ConfigurationTest.php | 7 +- tests/src/Core/InstallerTest.php | 8 +- tests/src/Core/Lock/MemcacheCacheLockTest.php | 4 +- .../src/Core/Lock/MemcachedCacheLockTest.php | 4 +- tests/src/Core/Lock/RedisCacheLockTest.php | 4 +- tests/src/Core/Lock/SemaphoreLockTest.php | 8 +- tests/src/Model/User/CookieTest.php | 6 +- tests/src/Network/CurlResultTest.php | 3 +- tests/src/Util/BaseURLTest.php | 14 ++-- tests/src/Util/ProfilerTest.php | 4 +- 54 files changed, 349 insertions(+), 285 deletions(-) create mode 100644 src/Core/Config/IConfiguration.php create mode 100644 src/Core/Config/IPConfiguration.php create mode 100644 tests/phpunit-local.xml diff --git a/index.php b/index.php index b558e86c8e..8400ca820f 100644 --- a/index.php +++ b/index.php @@ -22,6 +22,6 @@ $a = \Friendica\DI::app(); $a->runFrontend( $dice->create(\Friendica\App\Module::class), $dice->create(\Friendica\App\Router::class), - $dice->create(\Friendica\Core\Config\PConfiguration::class), + $dice->create(\Friendica\Core\Config\IPConfiguration::class), $dice->create(\Friendica\App\Authentication::class) ); diff --git a/src/App.php b/src/App.php index 75fa4f197b..71b64bdb64 100644 --- a/src/App.php +++ b/src/App.php @@ -10,8 +10,8 @@ use Friendica\App\BaseURL; use Friendica\App\Page; use Friendica\App\Authentication; use Friendica\Core\Config\Cache\ConfigCache; -use Friendica\Core\Config\Configuration; -use Friendica\Core\Config\PConfiguration; +use Friendica\Core\Config\IConfiguration; +use Friendica\Core\Config\IPConfiguration; use Friendica\Core\L10n\L10n; use Friendica\Core\System; use Friendica\Core\Theme; @@ -88,7 +88,7 @@ class App private $currentMobileTheme; /** - * @var Configuration The config + * @var IConfiguration The config */ private $config; @@ -145,7 +145,7 @@ class App /** * @param Database $database The Friendica Database - * @param Configuration $config The Configuration + * @param IConfiguration $config The Configuration * @param App\Mode $mode The mode of this Friendica app * @param BaseURL $baseURL The full base URL of this Friendica app * @param LoggerInterface $logger The current app logger @@ -154,7 +154,7 @@ class App * @param App\Arguments $args The Friendica Arguments of the call * @param Core\Process $process The process methods */ - public function __construct(Database $database, Configuration $config, App\Mode $mode, BaseURL $baseURL, LoggerInterface $logger, Profiler $profiler, L10n $l10n, Arguments $args, App\Page $page, Core\Process $process) + public function __construct(Database $database, IConfiguration $config, App\Mode $mode, BaseURL $baseURL, LoggerInterface $logger, Profiler $profiler, L10n $l10n, Arguments $args, App\Page $page, Core\Process $process) { $this->database = $database; $this->config = $config; @@ -433,12 +433,12 @@ class App * * @param App\Module $module The determined module * @param App\Router $router - * @param PConfiguration $pconfig + * @param IPConfiguration $pconfig * @param Authentication $auth The Authentication backend of the node * @throws HTTPException\InternalServerErrorException * @throws \ImagickException */ - public function runFrontend(App\Module $module, App\Router $router, PConfiguration $pconfig, Authentication $auth) + public function runFrontend(App\Module $module, App\Router $router, IPConfiguration $pconfig, Authentication $auth) { $moduleName = $module->getName(); diff --git a/src/App/Authentication.php b/src/App/Authentication.php index 22d429c76b..cb07d7afc2 100644 --- a/src/App/Authentication.php +++ b/src/App/Authentication.php @@ -8,7 +8,7 @@ namespace Friendica\App; use Exception; use Friendica\App; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Friendica\Core\Hook; use Friendica\Core\PConfig; use Friendica\Core\Session; @@ -30,7 +30,7 @@ use Psr\Log\LoggerInterface; */ class Authentication { - /** @var Configuration */ + /** @var IConfiguration */ private $config; /** @var App\Mode */ private $mode; @@ -50,7 +50,7 @@ class Authentication /** * Authentication constructor. * - * @param Configuration $config + * @param IConfiguration $config * @param App\Mode $mode * @param App\BaseURL $baseUrl * @param L10n $l10n @@ -59,7 +59,7 @@ class Authentication * @param User\Cookie $cookie * @param Session\ISession $session */ - public function __construct(Configuration $config, App\Mode $mode, App\BaseURL $baseUrl, L10n $l10n, Database $dba, LoggerInterface $logger, User\Cookie $cookie, Session\ISession $session) + public function __construct(IConfiguration $config, App\Mode $mode, App\BaseURL $baseUrl, L10n $l10n, Database $dba, LoggerInterface $logger, User\Cookie $cookie, Session\ISession $session) { $this->config = $config; $this->mode = $mode; diff --git a/src/App/BaseURL.php b/src/App/BaseURL.php index 501e5fbd3b..ea7d9ec74a 100644 --- a/src/App/BaseURL.php +++ b/src/App/BaseURL.php @@ -2,7 +2,7 @@ namespace Friendica\App; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Friendica\Core\System; use Friendica\Util\Network; use Friendica\Util\Strings; @@ -37,7 +37,7 @@ class BaseURL /** * The Friendica Config * - * @var Configuration + * @var IConfiguration */ private $config; @@ -253,10 +253,10 @@ class BaseURL } /** - * @param Configuration $config The Friendica configuration + * @param IConfiguration $config The Friendica IConfiguration * @param array $server The $_SERVER array */ - public function __construct(Configuration $config, array $server) + public function __construct(IConfiguration $config, array $server) { $this->config = $config; $this->server = $server; diff --git a/src/App/Module.php b/src/App/Module.php index 51be234937..7c81b6a7ea 100644 --- a/src/App/Module.php +++ b/src/App/Module.php @@ -151,13 +151,13 @@ class Module * * @param Arguments $args The Friendica execution arguments * @param Router $router The Friendica routing instance - * @param Core\Config\Configuration $config The Friendica Configuration + * @param Core\Config\IConfiguration $config The Friendica Configuration * * @return Module The determined module of this call * * @throws \Exception */ - public function determineClass(Arguments $args, Router $router, Core\Config\Configuration $config) + public function determineClass(Arguments $args, Router $router, Core\Config\IConfiguration $config) { $printNotAllowedAddon = false; diff --git a/src/App/Page.php b/src/App/Page.php index ca98bb6b23..5efb9f7ca3 100644 --- a/src/App/Page.php +++ b/src/App/Page.php @@ -7,8 +7,8 @@ use DOMDocument; use DOMXPath; use Friendica\App; use Friendica\Content\Nav; -use Friendica\Core\Config\Configuration; -use Friendica\Core\Config\PConfiguration; +use Friendica\Core\Config\IConfiguration; +use Friendica\Core\Config\IPConfiguration; use Friendica\Core\Hook; use Friendica\Core\L10n\L10n; use Friendica\Core\Renderer; @@ -171,12 +171,12 @@ class Page implements ArrayAccess * @param App $app The Friendica App instance * @param Module $module The loaded Friendica module * @param L10n $l10n The l10n language instance - * @param Configuration $config The Friendica configuration - * @param PConfiguration $pConfig The Friendica personal configuration (for user) + * @param IConfiguration $config The Friendica configuration + * @param IPConfiguration $pConfig The Friendica personal configuration (for user) * * @throws HTTPException\InternalServerErrorException */ - private function initHead(App $app, Module $module, L10n $l10n, Configuration $config, PConfiguration $pConfig) + private function initHead(App $app, Module $module, L10n $l10n, IConfiguration $config, IPConfiguration $pConfig) { $interval = ((local_user()) ? $pConfig->get(local_user(), 'system', 'update_interval') : 40000); @@ -347,12 +347,12 @@ class Page implements ArrayAccess * @param Mode $mode The current node mode * @param Module $module The loaded Friendica module * @param L10n $l10n The l10n language class - * @param Configuration $config The Configuration of this node - * @param PConfiguration $pconfig The personal/user configuration + * @param IConfiguration $config The Configuration of this node + * @param IPConfiguration $pconfig The personal/user configuration * * @throws HTTPException\InternalServerErrorException */ - public function run(App $app, BaseURL $baseURL, Mode $mode, Module $module, L10n $l10n, Configuration $config, PConfiguration $pconfig) + public function run(App $app, BaseURL $baseURL, Mode $mode, Module $module, L10n $l10n, IConfiguration $config, IPConfiguration $pconfig) { $moduleName = $module->getName(); diff --git a/src/Console/AutomaticInstallation.php b/src/Console/AutomaticInstallation.php index 8815b98799..1d378b9deb 100644 --- a/src/Console/AutomaticInstallation.php +++ b/src/Console/AutomaticInstallation.php @@ -25,7 +25,7 @@ class AutomaticInstallation extends Console private $configCache; /** - * @var Config\Configuration + * @var Config\IConfiguration */ private $config; @@ -89,7 +89,7 @@ Examples HELP; } - public function __construct(App\Mode $appMode, Config\Cache\ConfigCache $configCache, Config\Configuration $config, Database $dba, array $argv = null) + public function __construct(App\Mode $appMode, Config\Cache\ConfigCache $configCache, Config\IConfiguration $config, Database $dba, array $argv = null) { parent::__construct($argv); diff --git a/src/Console/Config.php b/src/Console/Config.php index 797f639491..38c60a1e2b 100644 --- a/src/Console/Config.php +++ b/src/Console/Config.php @@ -4,7 +4,7 @@ namespace Friendica\Console; use Asika\SimpleConsole\CommandArgsException; use Friendica\App; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use RuntimeException; /** @@ -40,7 +40,7 @@ class Config extends \Asika\SimpleConsole\Console */ private $appMode; /** - * @var Configuration + * @var IConfiguration */ private $config; @@ -78,7 +78,7 @@ HELP; return $help; } - public function __construct(App\Mode $appMode, Configuration $config, array $argv = null) + public function __construct(App\Mode $appMode, IConfiguration $config, array $argv = null) { parent::__construct($argv); diff --git a/src/Console/Maintenance.php b/src/Console/Maintenance.php index 26b77a9741..9633a50e9d 100644 --- a/src/Console/Maintenance.php +++ b/src/Console/Maintenance.php @@ -3,7 +3,7 @@ namespace Friendica\Console; use Friendica\App; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; /** * @brief Sets maintenance mode for this node @@ -19,7 +19,7 @@ class Maintenance extends \Asika\SimpleConsole\Console */ private $appMode; /** - * @var Configuration + * @var IConfiguration */ private $config; @@ -52,7 +52,7 @@ HELP; return $help; } - public function __construct(App\Mode $appMode, Configuration $config, $argv = null) + public function __construct(App\Mode $appMode, IConfiguration $config, $argv = null) { parent::__construct($argv); diff --git a/src/Console/PostUpdate.php b/src/Console/PostUpdate.php index f6a7f69d22..f3e81c1af5 100644 --- a/src/Console/PostUpdate.php +++ b/src/Console/PostUpdate.php @@ -3,7 +3,7 @@ namespace Friendica\Console; use Friendica\App; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Friendica\Core\L10n\L10n; use Friendica\Core\Update; @@ -24,7 +24,7 @@ class PostUpdate extends \Asika\SimpleConsole\Console */ private $appMode; /** - * @var Configuration + * @var IConfiguration */ private $config; /** @@ -46,7 +46,7 @@ HELP; return $help; } - public function __construct(App\Mode $appMode, Configuration $config, L10n $l10n, array $argv = null) + public function __construct(App\Mode $appMode, IConfiguration $config, L10n $l10n, array $argv = null) { parent::__construct($argv); diff --git a/src/Console/ServerBlock.php b/src/Console/ServerBlock.php index 322f8f6ee3..f94c24dbd9 100644 --- a/src/Console/ServerBlock.php +++ b/src/Console/ServerBlock.php @@ -5,7 +5,7 @@ namespace Friendica\Console; use Asika\SimpleConsole\CommandArgsException; use Asika\SimpleConsole\Console; use Console_Table; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; /** * @brief Manage blocked servers @@ -20,7 +20,7 @@ class ServerBlock extends Console protected $helpOptions = ['h', 'help', '?']; /** - * @var Configuration + * @var IConfiguration */ private $config; @@ -49,7 +49,7 @@ HELP; return $help; } - public function __construct(Configuration $config, $argv = null) + public function __construct(IConfiguration $config, $argv = null) { parent::__construct($argv); @@ -77,9 +77,9 @@ HELP; /** * Prints the whole list of blocked domains including the reason * - * @param Configuration $config + * @param IConfiguration $config */ - private function printBlockedServers(Configuration $config) + private function printBlockedServers(IConfiguration $config) { $table = new Console_Table(); $table->setHeaders(['Domain', 'Reason']); @@ -93,11 +93,11 @@ HELP; /** * Adds a server to the blocked list * - * @param Configuration $config + * @param IConfiguration $config * * @return int The return code (0 = success, 1 = failed) */ - private function addBlockedServer(Configuration $config) + private function addBlockedServer(IConfiguration $config) { if (count($this->args) < 2 || count($this->args) > 3) { throw new CommandArgsException('Add needs a domain and optional a reason.'); @@ -145,11 +145,11 @@ HELP; /** * Removes a server from the blocked list * - * @param Configuration $config + * @param IConfiguration $config * * @return int The return code (0 = success, 1 = failed) */ - private function removeBlockedServer(Configuration $config) + private function removeBlockedServer(IConfiguration $config) { if (count($this->args) !== 2) { throw new CommandArgsException('Remove needs a second parameter.'); diff --git a/src/Console/Typo.php b/src/Console/Typo.php index 855c1705c2..a0b6e3691c 100644 --- a/src/Console/Typo.php +++ b/src/Console/Typo.php @@ -2,7 +2,7 @@ namespace Friendica\Console; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; /** * Tired of chasing typos and finding them after a commit. @@ -15,7 +15,7 @@ class Typo extends \Asika\SimpleConsole\Console protected $helpOptions = ['h', 'help', '?']; /** - * @var Configuration + * @var IConfiguration */ private $config; @@ -36,7 +36,7 @@ HELP; return $help; } - public function __construct(Configuration $config, array $argv = null) + public function __construct(IConfiguration $config, array $argv = null) { parent::__construct($argv); diff --git a/src/Core/Cache/MemcacheCache.php b/src/Core/Cache/MemcacheCache.php index 6797a70c2b..5bf231b398 100644 --- a/src/Core/Cache/MemcacheCache.php +++ b/src/Core/Cache/MemcacheCache.php @@ -3,7 +3,7 @@ namespace Friendica\Core\Cache; use Exception; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Memcache; /** @@ -25,7 +25,7 @@ class MemcacheCache extends Cache implements IMemoryCache /** * @throws Exception */ - public function __construct(string $hostname, Configuration $config) + public function __construct(string $hostname, IConfiguration $config) { if (!class_exists('Memcache', false)) { throw new Exception('Memcache class isn\'t available'); diff --git a/src/Core/Cache/MemcachedCache.php b/src/Core/Cache/MemcachedCache.php index 95bfae39f2..5476e3766a 100644 --- a/src/Core/Cache/MemcachedCache.php +++ b/src/Core/Cache/MemcachedCache.php @@ -3,7 +3,7 @@ namespace Friendica\Core\Cache; use Exception; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Memcached; use Psr\Log\LoggerInterface; @@ -39,7 +39,7 @@ class MemcachedCache extends Cache implements IMemoryCache * * @throws \Exception */ - public function __construct(string $hostname, Configuration $config, LoggerInterface $logger) + public function __construct(string $hostname, IConfiguration $config, LoggerInterface $logger) { if (!class_exists('Memcached', false)) { throw new Exception('Memcached class isn\'t available'); diff --git a/src/Core/Cache/RedisCache.php b/src/Core/Cache/RedisCache.php index 3558a38464..7af9f3d236 100644 --- a/src/Core/Cache/RedisCache.php +++ b/src/Core/Cache/RedisCache.php @@ -3,7 +3,7 @@ namespace Friendica\Core\Cache; use Exception; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Redis; /** @@ -22,7 +22,7 @@ class RedisCache extends Cache implements IMemoryCache /** * @throws Exception */ - public function __construct(string $hostname, Configuration $config) + public function __construct(string $hostname, IConfiguration $config) { if (!class_exists('Redis', false)) { throw new Exception('Redis class isn\'t available'); diff --git a/src/Core/Config/Configuration.php b/src/Core/Config/Configuration.php index c54fbb27e7..9094441bf6 100644 --- a/src/Core/Config/Configuration.php +++ b/src/Core/Config/Configuration.php @@ -10,7 +10,7 @@ use Friendica\Model; * - The Config-Files (loaded into the FileCache @see Cache\ConfigCache) * - The Config-DB-Table (per Config-DB-model @see Model\Config\Config) */ -abstract class Configuration +abstract class Configuration implements IConfiguration { /** * @var Cache\ConfigCache @@ -33,68 +33,10 @@ abstract class Configuration } /** - * Returns the Config Cache - * - * @return Cache\ConfigCache + * {@inheritDoc} */ public function getCache() { return $this->configCache; } - - /** - * @brief Loads all configuration values of family into a cached storage. - * - * All configuration values of the system are stored in the cache ( @see ConfigCache ) - * - * @param string $cat The category of the configuration value - * - * @return void - */ - abstract public function load(string $cat = 'config'); - - /** - * @brief Get a particular user's config variable given the category name - * ($cat) and a $key. - * - * Get a particular config value from the given category ($cat) - * and the $key from a cached storage either from the $this->configAdapter - * (@see IConfigAdapter) or from the $this->configCache (@see ConfigCache). - * - * @param string $cat The category of the configuration value - * @param string $key The configuration key to query - * @param mixed $default_value optional, The value to return if key is not set (default: null) - * @param boolean $refresh optional, If true the config is loaded from the db and not from the cache (default: false) - * - * @return mixed Stored value or null if it does not exist - */ - abstract public function get(string $cat, string $key, $default_value = null, bool $refresh = false); - - /** - * @brief Sets a configuration value for system config - * - * Stores a config value ($value) in the category ($cat) under the key ($key) - * - * Note: Please do not store booleans - convert to 0/1 integer values! - * - * @param string $cat The category of the configuration value - * @param string $key The configuration key to set - * @param mixed $value The value to store - * - * @return bool Operation success - */ - abstract public function set(string $cat, string $key, $value); - - /** - * @brief Deletes the given key from the system configuration. - * - * Removes the configured value from the stored cache in $this->configCache - * (@see ConfigCache) and removes it from the database (@see IConfigAdapter). - * - * @param string $cat The category of the configuration value - * @param string $key The configuration key to delete - * - * @return bool - */ - abstract public function delete(string $cat, string $key); } diff --git a/src/Core/Config/IConfiguration.php b/src/Core/Config/IConfiguration.php new file mode 100644 index 0000000000..4bd44f0999 --- /dev/null +++ b/src/Core/Config/IConfiguration.php @@ -0,0 +1,73 @@ +configAdapter + * (@see IConfigAdapter) or from the $this->configCache (@see ConfigCache). + * + * @param string $cat The category of the configuration value + * @param string $key The configuration key to query + * @param mixed $default_value optional, The value to return if key is not set (default: null) + * @param boolean $refresh optional, If true the config is loaded from the db and not from the cache (default: false) + * + * @return mixed Stored value or null if it does not exist + */ + function get(string $cat, string $key, $default_value = null, bool $refresh = false); + + /** + * @brief Sets a configuration value for system config + * + * Stores a config value ($value) in the category ($cat) under the key ($key) + * + * Note: Please do not store booleans - convert to 0/1 integer values! + * + * @param string $cat The category of the configuration value + * @param string $key The configuration key to set + * @param mixed $value The value to store + * + * @return bool Operation success + */ + function set(string $cat, string $key, $value); + + /** + * @brief Deletes the given key from the system configuration. + * + * Removes the configured value from the stored cache in $this->configCache + * (@see ConfigCache) and removes it from the database (@see IConfigAdapter). + * + * @param string $cat The category of the configuration value + * @param string $key The configuration key to delete + * + * @return bool + */ + function delete(string $cat, string $key); + + /** + * Returns the Config Cache + * + * @return Cache\ConfigCache + */ + function getCache(); +} diff --git a/src/Core/Config/IPConfiguration.php b/src/Core/Config/IPConfiguration.php new file mode 100644 index 0000000000..23d75ebc62 --- /dev/null +++ b/src/Core/Config/IPConfiguration.php @@ -0,0 +1,82 @@ +configAdapter + * (@see IConfigAdapter) or from the $this->configCache (@see PConfigCache). + * + * @param int $uid The user_id + * @param string $cat The category of the configuration value + * @param string $key The configuration key to query + * @param mixed $default_value optional, The value to return if key is not set (default: null) + * @param boolean $refresh optional, If true the config is loaded from the db and not from the cache (default: false) + * + * @return mixed Stored value or null if it does not exist + */ + function get(int $uid, string $cat, string $key, $default_value = null, bool $refresh = false); + + /** + * Sets a configuration value for a user + * + * Stores a config value ($value) in the category ($family) under the key ($key) + * for the user_id $uid. + * + * @note Please do not store booleans - convert to 0/1 integer values! + * + * @param int $uid The user_id + * @param string $cat The category of the configuration value + * @param string $key The configuration key to set + * @param mixed $value The value to store + * + * @return bool Operation success + */ + function set(int $uid, string $cat, string $key, $value); + + /** + * Deletes the given key from the users's configuration. + * + * Removes the configured value from the stored cache in $this->configCache + * (@see ConfigCache) and removes it from the database (@see IConfigAdapter) + * with the given $uid. + * + * @param int $uid The user_id + * @param string $cat The category of the configuration value + * @param string $key The configuration key to delete + * + * @return bool + */ + function delete(int $uid, string $cat, string $key); + + + /** + * Returns the Config Cache + * + * @return Cache\PConfigCache + */ + function getCache(); +} diff --git a/src/Core/Config/PConfiguration.php b/src/Core/Config/PConfiguration.php index c54fc31220..ee90be3225 100644 --- a/src/Core/Config/PConfiguration.php +++ b/src/Core/Config/PConfiguration.php @@ -11,7 +11,7 @@ use Friendica\Model; * The configuration cache (@see Cache\PConfigCache) is used for temporary caching of database calls. This will * increase the performance. */ -abstract class PConfiguration +abstract class PConfiguration implements IPConfiguration { /** * @var Cache\PConfigCache @@ -42,68 +42,4 @@ abstract class PConfiguration { return $this->configCache; } - - /** - * Loads all configuration values of a user's config family into a cached storage. - * - * All configuration values of the given user are stored with the $uid in the cache - * - * @param int $uid The user_id - * @param string $cat The category of the configuration value - * - * @return void - * @see PConfigCache - * - */ - abstract public function load(int $uid, string $cat = 'config'); - - /** - * Get a particular user's config variable given the category name - * ($cat) and a key. - * - * Get a particular user's config value from the given category ($cat) - * and the $key with the $uid from a cached storage either from the $this->configAdapter - * (@see IConfigAdapter) or from the $this->configCache (@see PConfigCache). - * - * @param int $uid The user_id - * @param string $cat The category of the configuration value - * @param string $key The configuration key to query - * @param mixed $default_value optional, The value to return if key is not set (default: null) - * @param boolean $refresh optional, If true the config is loaded from the db and not from the cache (default: false) - * - * @return mixed Stored value or null if it does not exist - */ - abstract public function get(int $uid, string $cat, string $key, $default_value = null, bool $refresh = false); - - /** - * Sets a configuration value for a user - * - * Stores a config value ($value) in the category ($family) under the key ($key) - * for the user_id $uid. - * - * @note Please do not store booleans - convert to 0/1 integer values! - * - * @param int $uid The user_id - * @param string $cat The category of the configuration value - * @param string $key The configuration key to set - * @param mixed $value The value to store - * - * @return bool Operation success - */ - abstract public function set(int $uid, string $cat, string $key, $value); - - /** - * Deletes the given key from the users's configuration. - * - * Removes the configured value from the stored cache in $this->configCache - * (@see ConfigCache) and removes it from the database (@see IConfigAdapter) - * with the given $uid. - * - * @param int $uid The user_id - * @param string $cat The category of the configuration value - * @param string $key The configuration key to delete - * - * @return bool - */ - abstract public function delete(int $uid, string $cat, string $key); } diff --git a/src/Core/L10n/L10n.php b/src/Core/L10n/L10n.php index ad4f653716..8b2238c7ae 100644 --- a/src/Core/L10n/L10n.php +++ b/src/Core/L10n/L10n.php @@ -2,7 +2,7 @@ namespace Friendica\Core\L10n; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Friendica\Core\Hook; use Friendica\Core\Session\ISession; use Friendica\Database\Database; @@ -41,7 +41,7 @@ class L10n */ private $logger; - public function __construct(Configuration $config, Database $dba, LoggerInterface $logger, ISession $session, array $server, array $get) + public function __construct(IConfiguration $config, Database $dba, LoggerInterface $logger, ISession $session, array $server, array $get) { $this->dba = $dba; $this->logger = $logger; diff --git a/src/Core/Process.php b/src/Core/Process.php index 035f4bf0af..a7f8de2866 100644 --- a/src/Core/Process.php +++ b/src/Core/Process.php @@ -3,7 +3,7 @@ namespace Friendica\Core; use Friendica\App; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Psr\Log\LoggerInterface; /** @@ -28,7 +28,7 @@ final class Process private $mode; /** - * @var Configuration + * @var IConfiguration */ private $config; @@ -37,7 +37,7 @@ final class Process */ private $basePath; - public function __construct(LoggerInterface $logger, App\Mode $mode, Configuration $config, string $basepath) + public function __construct(LoggerInterface $logger, App\Mode $mode, IConfiguration $config, string $basepath) { $this->logger = $logger; $this->mode = $mode; diff --git a/src/DI.php b/src/DI.php index c3f6d07f9c..09969f29a9 100644 --- a/src/DI.php +++ b/src/DI.php @@ -4,8 +4,8 @@ namespace Friendica; use Dice\Dice; use Friendica\Core\Cache\ICache; -use Friendica\Core\Config\Configuration; -use Friendica\Core\Config\PConfiguration; +use Friendica\Core\Config\IConfiguration; +use Friendica\Core\Config\IPConfiguration; use Friendica\Core\L10n\L10n; use Friendica\Core\Lock\ILock; use Friendica\Core\Process; @@ -34,8 +34,8 @@ use Psr\Log\LoggerInterface; * @method static Content\Text\BBCode\Video bbCodeVideo() * @method static DateTimeFormat dtFormat() * @method static ICache cache() - * @method static Configuration config() - * @method static PConfiguration pConfig() + * @method static IConfiguration config() + * @method static IPConfiguration pConfig() * @method static ILock lock() * @method static L10n l10n() * @method static LoggerInterface logger() @@ -73,8 +73,8 @@ class DI 'bbCodeVideo' => Content\Text\BBCode\Video::class, 'dtFormat' => DateTimeFormat::class, 'cache' => ICache::class, - 'config' => Configuration::class, - 'pConfig' => PConfiguration::class, + 'config' => IConfiguration::class, + 'pConfig' => IPConfiguration::class, 'l10n' => L10n::class, 'lock' => ILock::class, 'logger' => LoggerInterface::class, diff --git a/src/Factory/CacheFactory.php b/src/Factory/CacheFactory.php index 39b0b94ff7..4e4fc67915 100644 --- a/src/Factory/CacheFactory.php +++ b/src/Factory/CacheFactory.php @@ -5,7 +5,7 @@ namespace Friendica\Factory; use Friendica\App\BaseURL; use Friendica\Core\Cache; use Friendica\Core\Cache\ICache; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Friendica\Database\Database; use Friendica\Util\Profiler; use Psr\Log\LoggerInterface; @@ -25,7 +25,7 @@ class CacheFactory const DEFAULT_TYPE = Cache\Cache::TYPE_DATABASE; /** - * @var Configuration The configuration to read parameters out of the config + * @var IConfiguration The IConfiguration to read parameters out of the config */ private $config; @@ -49,7 +49,7 @@ class CacheFactory */ private $logger; - public function __construct(BaseURL $baseURL, Configuration $config, Database $dba, Profiler $profiler, LoggerInterface $logger) + public function __construct(BaseURL $baseURL, IConfiguration $config, Database $dba, Profiler $profiler, LoggerInterface $logger) { $this->hostname = $baseURL->getHostname(); $this->config = $config; diff --git a/src/Factory/ConfigFactory.php b/src/Factory/ConfigFactory.php index 494a5c7209..ecec1e2a73 100644 --- a/src/Factory/ConfigFactory.php +++ b/src/Factory/ConfigFactory.php @@ -27,7 +27,7 @@ class ConfigFactory * @param Cache\ConfigCache $configCache The config cache of this adapter * @param ConfigModel $configModel The configuration model * - * @return Config\Configuration + * @return Config\IConfiguration */ public function createConfig(Cache\ConfigCache $configCache, ConfigModel $configModel) { @@ -46,7 +46,7 @@ class ConfigFactory * @param Cache\PConfigCache $pConfigCache The personal config cache * @param PConfigModel $configModel The configuration model * - * @return Config\PConfiguration + * @return Config\IPConfiguration */ public function createPConfig(Cache\ConfigCache $configCache, Cache\PConfigCache $pConfigCache, PConfigModel $configModel) { diff --git a/src/Factory/LockFactory.php b/src/Factory/LockFactory.php index cee01fe1e9..a7e9bf429b 100644 --- a/src/Factory/LockFactory.php +++ b/src/Factory/LockFactory.php @@ -4,7 +4,7 @@ namespace Friendica\Factory; use Friendica\Core\Cache\Cache; use Friendica\Core\Cache\IMemoryCache; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Friendica\Core\Lock; use Friendica\Database\Database; use Psr\Log\LoggerInterface; @@ -24,7 +24,7 @@ class LockFactory const DEFAULT_DRIVER = 'default'; /** - * @var Configuration The configuration to read parameters out of the config + * @var IConfiguration The configuration to read parameters out of the config */ private $config; @@ -43,7 +43,7 @@ class LockFactory */ private $logger; - public function __construct(CacheFactory $cacheFactory, Configuration $config, Database $dba, LoggerInterface $logger) + public function __construct(CacheFactory $cacheFactory, IConfiguration $config, Database $dba, LoggerInterface $logger) { $this->cacheFactory = $cacheFactory; $this->config = $config; diff --git a/src/Factory/LoggerFactory.php b/src/Factory/LoggerFactory.php index f21fe9b7f5..0dae19a250 100644 --- a/src/Factory/LoggerFactory.php +++ b/src/Factory/LoggerFactory.php @@ -2,7 +2,7 @@ namespace Friendica\Factory; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Friendica\Core\Logger; use Friendica\Database\Database; use Friendica\Network\HTTPException\InternalServerErrorException; @@ -50,13 +50,13 @@ class LoggerFactory * Creates a new PSR-3 compliant logger instances * * @param Database $database The Friendica Database instance - * @param Configuration $config The config + * @param IConfiguration $config The config * @param Profiler $profiler The profiler of the app * @param FileSystem $fileSystem FileSystem utils * * @return LoggerInterface The PSR-3 compliant logger instance */ - public function create(Database $database, Configuration $config, Profiler $profiler, FileSystem $fileSystem) + public function create(Database $database, IConfiguration $config, Profiler $profiler, FileSystem $fileSystem) { if (empty($config->get('system', 'debugging', false))) { $logger = new VoidLogger(); @@ -137,7 +137,7 @@ class LoggerFactory * * It should never get filled during normal usage of Friendica * - * @param Configuration $config The config + * @param IConfiguration $config The config * @param Profiler $profiler The profiler of the app * @param FileSystem $fileSystem FileSystem utils * @@ -146,7 +146,7 @@ class LoggerFactory * @throws InternalServerErrorException * @throws \Exception */ - public static function createDev(Configuration $config, Profiler $profiler, FileSystem $fileSystem) + public static function createDev(IConfiguration $config, Profiler $profiler, FileSystem $fileSystem) { $debugging = $config->get('system', 'debugging'); $stream = $config->get('system', 'dlogfile'); diff --git a/src/Factory/SessionFactory.php b/src/Factory/SessionFactory.php index eb2371d452..c03f429dc9 100644 --- a/src/Factory/SessionFactory.php +++ b/src/Factory/SessionFactory.php @@ -5,7 +5,7 @@ namespace Friendica\Factory; use Friendica\App; use Friendica\Core\Cache\Cache; use Friendica\Core\Cache\ICache; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Friendica\Core\Session; use Friendica\Core\System; use Friendica\Database\Database; @@ -29,7 +29,8 @@ class SessionFactory /** * @param App\Mode $mode * @param App\BaseURL $baseURL - * @param Configuration $config + * @param IConfiguration $config + * @param Cookie $cookie * @param Database $dba * @param ICache $cache * @param LoggerInterface $logger @@ -37,7 +38,7 @@ class SessionFactory * * @return Session\ISession */ - public function createSession(App\Mode $mode, App\BaseURL $baseURL, Configuration $config, Database $dba, ICache $cache, LoggerInterface $logger, Profiler $profiler, array $server = []) + public function createSession(App\Mode $mode, App\BaseURL $baseURL, IConfiguration $config, Database $dba, ICache $cache, LoggerInterface $logger, Profiler $profiler, array $server = []) { $stamp1 = microtime(true); $session = null; diff --git a/src/Model/Notify.php b/src/Model/Notify.php index 160d261b16..10ece48e2d 100644 --- a/src/Model/Notify.php +++ b/src/Model/Notify.php @@ -6,7 +6,7 @@ use Exception; use Friendica\App; use Friendica\Content\Text\BBCode; use Friendica\Content\Text\HTML; -use Friendica\Core\Config\PConfiguration; +use Friendica\Core\Config\IPConfiguration; use Friendica\Core\L10n\L10n; use Friendica\Core\Protocol; use Friendica\Core\System; @@ -71,13 +71,13 @@ final class Notify private $args; /** @var App\BaseURL */ private $baseUrl; - /** @var PConfiguration */ + /** @var IPConfiguration */ private $pConfig; /** @var LoggerInterface */ private $logger; public function __construct(Database $dba, L10n $l10n, App\Arguments $args, App\BaseURL $baseUrl, - PConfiguration $pConfig, LoggerInterface $logger) + IPConfiguration $pConfig, LoggerInterface $logger) { $this->dba = $dba; $this->l10n = $l10n; diff --git a/src/Model/User/Cookie.php b/src/Model/User/Cookie.php index 0fc90222f1..e065d33e2e 100644 --- a/src/Model/User/Cookie.php +++ b/src/Model/User/Cookie.php @@ -3,7 +3,7 @@ namespace Friendica\Model\User; use Friendica\App; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; /** * Interacting with the Friendica Cookie of a user @@ -32,7 +32,7 @@ class Cookie /** @var array The $_COOKIE array */ private $cookie; - public function __construct(Configuration $config, App\BaseURL $baseURL, array $server = [], array $cookie = []) + public function __construct(IConfiguration $config, App\BaseURL $baseURL, array $server = [], array $cookie = []) { if (!empty($server['REMOTE_ADDR'])) { $this->remoteAddr = $server['REMOTE_ADDR']; diff --git a/src/Module/Diaspora/Receive.php b/src/Module/Diaspora/Receive.php index 4b6bb2a52e..dbfb7f549f 100644 --- a/src/Module/Diaspora/Receive.php +++ b/src/Module/Diaspora/Receive.php @@ -2,10 +2,7 @@ namespace Friendica\Module\Diaspora; -use Friendica\App; use Friendica\BaseModule; -use Friendica\Core\Config\Configuration; -use Friendica\Core\L10n\L10n; use Friendica\DI; use Friendica\Model\User; use Friendica\Network\HTTPException; diff --git a/src/Util/Profiler.php b/src/Util/Profiler.php index e745a8bbdf..d166210e33 100644 --- a/src/Util/Profiler.php +++ b/src/Util/Profiler.php @@ -3,7 +3,7 @@ namespace Friendica\Util; use Friendica\Core\Config\Cache\ConfigCache; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; use Psr\Container\NotFoundExceptionInterface; @@ -47,9 +47,9 @@ class Profiler implements ContainerInterface /** * Updates the enabling of the current profiler * - * @param Configuration $config + * @param IConfiguration $config */ - public function update(Configuration $config) + public function update(IConfiguration $config) { $this->enabled = $config->get('system', 'profiler'); $this->rendertime = $config->get('rendertime', 'callstack'); diff --git a/static/dependencies.config.php b/static/dependencies.config.php index ea9830679f..512d0e7a2c 100644 --- a/static/dependencies.config.php +++ b/static/dependencies.config.php @@ -68,13 +68,13 @@ return [ ['determine', [], Dice::CHAIN_CALL], ], ], - Config\Configuration::class => [ + Config\IConfiguration::class => [ 'instanceOf' => Factory\ConfigFactory::class, 'call' => [ ['createConfig', [], Dice::CHAIN_CALL], ], ], - Config\PConfiguration::class => [ + Config\IPConfiguration::class => [ 'instanceOf' => Factory\ConfigFactory::class, 'call' => [ ['createPConfig', [], Dice::CHAIN_CALL], diff --git a/tests/Util/AppMockTrait.php b/tests/Util/AppMockTrait.php index f9a9cb25de..7948f09f60 100644 --- a/tests/Util/AppMockTrait.php +++ b/tests/Util/AppMockTrait.php @@ -22,7 +22,7 @@ trait AppMockTrait protected $app; /** - * @var MockInterface|Config\Configuration The mocked Config Cache + * @var MockInterface|Config\IConfiguration The mocked Config Cache */ protected $configMock; @@ -54,11 +54,11 @@ trait AppMockTrait $this->configMock = \Mockery::mock(Config\Cache\ConfigCache::class); $this->dice->shouldReceive('create') - ->with(Config\Cache\ConfigCache::class) + ->with(Config\Cache\ConfigCache::class, []) ->andReturn($this->configMock); $this->mode = \Mockery::mock(App\Mode::class); $this->dice->shouldReceive('create') - ->with(App\Mode::class) + ->with(App\Mode::class, []) ->andReturn($this->mode); $configModel= \Mockery::mock(\Friendica\Model\Config\Config::class); // Disable the adapter @@ -66,13 +66,13 @@ trait AppMockTrait $config = new Config\JitConfiguration($this->configMock, $configModel); $this->dice->shouldReceive('create') - ->with(Config\Configuration::class) + ->with(Config\IConfiguration::class, []) ->andReturn($config); // Mocking App and most used functions $this->app = \Mockery::mock(App::class); $this->dice->shouldReceive('create') - ->with(App::class) + ->with(App::class, []) ->andReturn($this->app); $this->app ->shouldReceive('getBasePath') @@ -85,7 +85,7 @@ trait AppMockTrait $this->profilerMock = \Mockery::mock(Profiler::class); $this->profilerMock->shouldReceive('saveTimestamp'); $this->dice->shouldReceive('create') - ->with(Profiler::class) + ->with(Profiler::class, []) ->andReturn($this->profilerMock); $this->app diff --git a/tests/bootstrap.php b/tests/bootstrap.php index a839dbed73..8b4b8ade1e 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -3,9 +3,16 @@ * This file is loaded by PHPUnit before any test. */ +use Dice\Dice; +use Friendica\DI; use PHPUnit\Framework\TestCase; // Backward compatibility if (!class_exists(TestCase::class)) { class_alias(PHPUnit_Framework_TestCase::class, TestCase::class); } + +$dice = new Dice(); +$dice = $dice->addRules(include __DIR__ . '/../static/dependencies.config.php'); + +DI::init($dice); diff --git a/tests/functional/DependencyCheckTest.php b/tests/functional/DependencyCheckTest.php index 336a34c344..4e05845f29 100644 --- a/tests/functional/DependencyCheckTest.php +++ b/tests/functional/DependencyCheckTest.php @@ -7,7 +7,7 @@ use Friendica\App; use Friendica\Core\Cache\ICache; use Friendica\Core\Cache\IMemoryCache; use Friendica\Core\Config\Cache\ConfigCache; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Friendica\Core\Lock\ILock; use Friendica\Database\Database; use Friendica\Test\Util\VFSTrait; @@ -115,10 +115,10 @@ class dependencyCheck extends TestCase public function testConfiguration() { - /** @var Configuration $config */ - $config = $this->dice->create(Configuration::class); + /** @var IConfiguration $config */ + $config = $this->dice->create(IConfiguration::class); - $this->assertInstanceOf(Configuration::class, $config); + $this->assertInstanceOf(IConfiguration::class, $config); $this->assertNotEmpty($config->get('database', 'username')); } @@ -133,8 +133,8 @@ class dependencyCheck extends TestCase public function testDevLogger() { - /** @var Configuration $config */ - $config = $this->dice->create(Configuration::class); + /** @var IConfiguration $config */ + $config = $this->dice->create(IConfiguration::class); $config->set('system', 'dlogfile', $this->root->url() . '/friendica.log'); /** @var LoggerInterface $logger */ diff --git a/tests/include/ApiTest.php b/tests/include/ApiTest.php index 74c220d849..8fce36955d 100644 --- a/tests/include/ApiTest.php +++ b/tests/include/ApiTest.php @@ -7,8 +7,8 @@ namespace Friendica\Test; use Dice\Dice; use Friendica\App; -use Friendica\Core\Config\Configuration; -use Friendica\Core\Config\PConfiguration; +use Friendica\Core\Config\IConfiguration; +use Friendica\Core\Config\IPConfiguration; use Friendica\Core\Protocol; use Friendica\Core\Session; use Friendica\Core\Session\ISession; @@ -47,7 +47,7 @@ class ApiTest extends DatabaseTest /** @var App */ protected $app; - /** @var Configuration */ + /** @var IConfiguration */ protected $config; /** @var Dice */ @@ -69,8 +69,8 @@ class ApiTest extends DatabaseTest /** @var Database $dba */ $dba = $this->dice->create(Database::class); - /** @var Configuration $config */ - $this->config = $this->dice->create(Configuration::class); + /** @var IConfiguration $config */ + $this->config = $this->dice->create(IConfiguration::class); $this->config->set('system', 'url', 'http://localhost'); $this->config->set('system', 'hostname', 'localhost'); @@ -827,7 +827,7 @@ class ApiTest extends DatabaseTest */ public function testApiGetUserWithFrioSchema() { - $pConfig = $this->dice->create(PConfiguration::class); + $pConfig = $this->dice->create(IPConfiguration::class); $pConfig->set($this->selfUser['id'], 'frio', 'schema', 'red'); $user = api_get_user($this->app); $this->assertSelfUser($user); @@ -843,7 +843,7 @@ class ApiTest extends DatabaseTest */ public function testApiGetUserWithCustomFrioSchema() { - $pConfig = $this->dice->create(PConfiguration::class); + $pConfig = $this->dice->create(IPConfiguration::class); $pConfig->set($this->selfUser['id'], 'frio', 'schema', '---'); $pConfig->set($this->selfUser['id'], 'frio', 'nav_bg', '#123456'); $pConfig->set($this->selfUser['id'], 'frio', 'link_color', '#123456'); @@ -862,7 +862,7 @@ class ApiTest extends DatabaseTest */ public function testApiGetUserWithEmptyFrioSchema() { - $pConfig = $this->dice->create(PConfiguration::class); + $pConfig = $this->dice->create(IPConfiguration::class); $pConfig->set($this->selfUser['id'], 'frio', 'schema', '---'); $user = api_get_user($this->app); $this->assertSelfUser($user); diff --git a/tests/phpunit-local.xml b/tests/phpunit-local.xml new file mode 100644 index 0000000000..7bf174aba9 --- /dev/null +++ b/tests/phpunit-local.xml @@ -0,0 +1,26 @@ + + + + functional/ + include/ + src/ + ./ + + + + + .. + + config/ + doc/ + images/ + library/ + spec/ + tests/ + view/ + + + + diff --git a/tests/src/App/ModuleTest.php b/tests/src/App/ModuleTest.php index ce2a40b806..f1ac6bb92e 100644 --- a/tests/src/App/ModuleTest.php +++ b/tests/src/App/ModuleTest.php @@ -3,7 +3,7 @@ namespace Friendica\Test\src\App; use Friendica\App; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Friendica\LegacyModule; use Friendica\Module\HTTPException\PageNotFound; use Friendica\Module\WellKnown\HostMeta; @@ -149,7 +149,7 @@ class ModuleTest extends DatabaseTest */ public function testModuleClass($assert, string $name, string $command, bool $privAdd) { - $config = \Mockery::mock(Configuration::class); + $config = \Mockery::mock(IConfiguration::class); $config->shouldReceive('get')->with('config', 'private_addons', false)->andReturn($privAdd)->atMost()->once(); $router = (new App\Router([]))->loadRoutes(include __DIR__ . '/../../../static/routes.config.php'); diff --git a/tests/src/Console/ConfigConsoleTest.php b/tests/src/Console/ConfigConsoleTest.php index e4206af414..51342bf169 100644 --- a/tests/src/Console/ConfigConsoleTest.php +++ b/tests/src/Console/ConfigConsoleTest.php @@ -5,7 +5,7 @@ namespace Friendica\Test\src\Console; use Friendica\App; use Friendica\App\Mode; use Friendica\Console\Config; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Mockery\MockInterface; class ConfigConsoleTest extends ConsoleTest @@ -29,7 +29,7 @@ class ConfigConsoleTest extends ConsoleTest $this->appMode->shouldReceive('has') ->andReturn(true); - $this->configMock = \Mockery::mock(Configuration::class); + $this->configMock = \Mockery::mock(IConfiguration::class); } function testSetGetKeyValue() diff --git a/tests/src/Console/ServerBlockConsoleTest.php b/tests/src/Console/ServerBlockConsoleTest.php index d671020e6f..ef6cc0dacb 100644 --- a/tests/src/Console/ServerBlockConsoleTest.php +++ b/tests/src/Console/ServerBlockConsoleTest.php @@ -3,7 +3,7 @@ namespace Friendica\Test\src\Console; use Friendica\Console\ServerBlock; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; class ServerBlockConsoleTest extends ConsoleTest { @@ -22,7 +22,7 @@ class ServerBlockConsoleTest extends ConsoleTest { parent::setUp(); - $this->configMock = \Mockery::mock(Configuration::class); + $this->configMock = \Mockery::mock(IConfiguration::class); } /** diff --git a/tests/src/Content/Text/BBCodeTest.php b/tests/src/Content/Text/BBCodeTest.php index ed33306edf..52d01401e6 100644 --- a/tests/src/Content/Text/BBCodeTest.php +++ b/tests/src/Content/Text/BBCodeTest.php @@ -43,13 +43,13 @@ class BBCodeTest extends MockedTest $l10nMock = \Mockery::mock(L10n::class); $l10nMock->shouldReceive('t')->withAnyArgs()->andReturnUsing(function ($args) { return $args; }); $this->dice->shouldReceive('create') - ->with(L10n::class) + ->with(L10n::class, []) ->andReturn($l10nMock); $baseUrlMock = \Mockery::mock(BaseURL::class); $baseUrlMock->shouldReceive('get')->withAnyArgs()->andReturn('friendica.local'); $this->dice->shouldReceive('create') - ->with(BaseURL::class) + ->with(BaseURL::class, []) ->andReturn($baseUrlMock); } diff --git a/tests/src/Core/Cache/MemcacheCacheTest.php b/tests/src/Core/Cache/MemcacheCacheTest.php index 2865effb17..be7946717e 100644 --- a/tests/src/Core/Cache/MemcacheCacheTest.php +++ b/tests/src/Core/Cache/MemcacheCacheTest.php @@ -3,7 +3,7 @@ namespace Friendica\Test\src\Core\Cache; use Friendica\Core\Cache\MemcacheCache; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; /** * @requires extension memcache @@ -13,7 +13,7 @@ class MemcacheCacheTest extends MemoryCacheTest { protected function getInstance() { - $configMock = \Mockery::mock(Configuration::class); + $configMock = \Mockery::mock(IConfiguration::class); $host = $_SERVER['MEMCACHE_HOST'] ?? 'localhost'; diff --git a/tests/src/Core/Cache/MemcachedCacheTest.php b/tests/src/Core/Cache/MemcachedCacheTest.php index c9eb02be6e..addbde6275 100644 --- a/tests/src/Core/Cache/MemcachedCacheTest.php +++ b/tests/src/Core/Cache/MemcachedCacheTest.php @@ -4,7 +4,7 @@ namespace Friendica\Test\src\Core\Cache; use Friendica\Core\Cache\MemcachedCache; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Psr\Log\NullLogger; /** @@ -15,7 +15,7 @@ class MemcachedCacheTest extends MemoryCacheTest { protected function getInstance() { - $configMock = \Mockery::mock(Configuration::class); + $configMock = \Mockery::mock(IConfiguration::class); $host = $_SERVER['MEMCACHED_HOST'] ?? 'localhost'; diff --git a/tests/src/Core/Cache/RedisCacheTest.php b/tests/src/Core/Cache/RedisCacheTest.php index 75891cd1b8..53c2ecc833 100644 --- a/tests/src/Core/Cache/RedisCacheTest.php +++ b/tests/src/Core/Cache/RedisCacheTest.php @@ -4,7 +4,7 @@ namespace Friendica\Test\src\Core\Cache; use Friendica\Core\Cache\RedisCache; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; /** * @requires extension redis @@ -14,7 +14,7 @@ class RedisCacheTest extends MemoryCacheTest { protected function getInstance() { - $configMock = \Mockery::mock(Configuration::class); + $configMock = \Mockery::mock(IConfiguration::class); $host = $_SERVER['REDIS_HOST'] ?? 'localhost'; diff --git a/tests/src/Core/Config/ConfigurationTest.php b/tests/src/Core/Config/ConfigurationTest.php index 2191d86f1c..15c96ca936 100644 --- a/tests/src/Core/Config/ConfigurationTest.php +++ b/tests/src/Core/Config/ConfigurationTest.php @@ -3,8 +3,7 @@ namespace Friendica\Test\src\Core\Config; use Friendica\Core\Config\Cache\ConfigCache; -use Friendica\Core\Config\Configuration; -use Friendica\Core\Config\JitConfiguration; +use Friendica\Core\Config\IConfiguration; use Friendica\Model\Config\Config as ConfigModel; use Friendica\Test\MockedTest; use Mockery\MockInterface; @@ -18,7 +17,7 @@ abstract class ConfigurationTest extends MockedTest /** @var ConfigCache */ protected $configCache; - /** @var Configuration */ + /** @var IConfiguration */ protected $testedConfig; /** @@ -47,7 +46,7 @@ abstract class ConfigurationTest extends MockedTest } /** - * @return Configuration + * @return IConfiguration */ public abstract function getInstance(); diff --git a/tests/src/Core/InstallerTest.php b/tests/src/Core/InstallerTest.php index b2ef92b450..674195c128 100644 --- a/tests/src/Core/InstallerTest.php +++ b/tests/src/Core/InstallerTest.php @@ -34,7 +34,7 @@ class InstallerTest extends MockedTest $dice = $dice->addRules(include __DIR__ . '/../../../static/dependencies.config.php'); $dice->shouldReceive('create') - ->with(\Friendica\Core\L10n\L10n::class) + ->with(\Friendica\Core\L10n\L10n::class, []) ->andReturn($this->l10nMock); DI::init($dice); @@ -362,7 +362,7 @@ class InstallerTest extends MockedTest $this->assertTrue($install->checkImagick()); $this->assertCheckExist(1, - L10n::t('ImageMagick supports GIF'), + $this->l10nMock->t('ImageMagick supports GIF'), '', true, false, @@ -385,9 +385,9 @@ class InstallerTest extends MockedTest // even there is no supported type, Imagick should return true (because it is not required) $this->assertTrue($install->checkImagick()); $this->assertCheckExist(1, - L10n::t('ImageMagick supports GIF'), + $this->l10nMock->t('ImageMagick supports GIF'), '', - false, + true, false, $install->getChecks()); } diff --git a/tests/src/Core/Lock/MemcacheCacheLockTest.php b/tests/src/Core/Lock/MemcacheCacheLockTest.php index e66c4725c1..9e111fbb92 100644 --- a/tests/src/Core/Lock/MemcacheCacheLockTest.php +++ b/tests/src/Core/Lock/MemcacheCacheLockTest.php @@ -4,7 +4,7 @@ namespace Friendica\Test\src\Core\Lock; use Friendica\Core\Cache\MemcacheCache; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Friendica\Core\Lock\CacheLock; /** @@ -15,7 +15,7 @@ class MemcacheCacheLockTest extends LockTest { protected function getInstance() { - $configMock = \Mockery::mock(Configuration::class); + $configMock = \Mockery::mock(IConfiguration::class); $host = $_SERVER['MEMCACHE_HOST'] ?? 'localhost'; diff --git a/tests/src/Core/Lock/MemcachedCacheLockTest.php b/tests/src/Core/Lock/MemcachedCacheLockTest.php index c217b47f59..41b16abc7f 100644 --- a/tests/src/Core/Lock/MemcachedCacheLockTest.php +++ b/tests/src/Core/Lock/MemcachedCacheLockTest.php @@ -4,7 +4,7 @@ namespace Friendica\Test\src\Core\Lock; use Friendica\Core\Cache\MemcachedCache; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Friendica\Core\Lock\CacheLock; use Psr\Log\NullLogger; @@ -16,7 +16,7 @@ class MemcachedCacheLockTest extends LockTest { protected function getInstance() { - $configMock = \Mockery::mock(Configuration::class); + $configMock = \Mockery::mock(IConfiguration::class); $host = $_SERVER['MEMCACHED_HOST'] ?? 'localhost'; diff --git a/tests/src/Core/Lock/RedisCacheLockTest.php b/tests/src/Core/Lock/RedisCacheLockTest.php index 95f7206e2c..bfda18b24d 100644 --- a/tests/src/Core/Lock/RedisCacheLockTest.php +++ b/tests/src/Core/Lock/RedisCacheLockTest.php @@ -4,7 +4,7 @@ namespace Friendica\Test\src\Core\Lock; use Friendica\Core\Cache\RedisCache; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Friendica\Core\Lock\CacheLock; /** @@ -15,7 +15,7 @@ class RedisCacheLockTest extends LockTest { protected function getInstance() { - $configMock = \Mockery::mock(Configuration::class); + $configMock = \Mockery::mock(IConfiguration::class); $host = $_SERVER['REDIS_HOST'] ?? 'localhost'; diff --git a/tests/src/Core/Lock/SemaphoreLockTest.php b/tests/src/Core/Lock/SemaphoreLockTest.php index 040cdeb521..51d3866fe7 100644 --- a/tests/src/Core/Lock/SemaphoreLockTest.php +++ b/tests/src/Core/Lock/SemaphoreLockTest.php @@ -4,27 +4,29 @@ namespace Friendica\Test\src\Core\Lock; use Dice\Dice; use Friendica\App; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Friendica\Core\Config\JitConfiguration; use Friendica\Core\Lock\SemaphoreLock; use Friendica\DI; +use Mockery\MockInterface; class SemaphoreLockTest extends LockTest { public function setUp() { + /** @var MockInterface|Dice $dice */ $dice = \Mockery::mock(Dice::class)->makePartial(); $app = \Mockery::mock(App::class); $app->shouldReceive('getHostname')->andReturn('friendica.local'); - $dice->shouldReceive('create')->with(App::class)->andReturn($app); + $dice->shouldReceive('create')->with(App::class, [])->andReturn($app); $configMock = \Mockery::mock(JitConfiguration::class); $configMock ->shouldReceive('get') ->with('system', 'temppath', NULL, false) ->andReturn('/tmp/'); - $dice->shouldReceive('create')->with(Configuration::class)->andReturn($configMock); + $dice->shouldReceive('create')->with(IConfiguration::class, [])->andReturn($configMock); // @todo Because "get_temppath()" is using static methods, we have to initialize the BaseObject DI::init($dice); diff --git a/tests/src/Model/User/CookieTest.php b/tests/src/Model/User/CookieTest.php index b689fc97c8..f66e5a6ae6 100644 --- a/tests/src/Model/User/CookieTest.php +++ b/tests/src/Model/User/CookieTest.php @@ -3,7 +3,7 @@ namespace Friendica\Testsrc\Model\User; use Friendica\App\BaseURL; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Friendica\Model\User\Cookie; use Friendica\Test\DatabaseTest; use Friendica\Test\Util\StaticCookie; @@ -11,7 +11,7 @@ use Mockery\MockInterface; class CookieTest extends DatabaseTest { - /** @var MockInterface|Configuration */ + /** @var MockInterface|IConfiguration */ private $config; /** @var MockInterface|BaseURL */ private $baseUrl; @@ -22,7 +22,7 @@ class CookieTest extends DatabaseTest parent::setUp(); - $this->config = \Mockery::mock(Configuration::class); + $this->config = \Mockery::mock(IConfiguration::class); $this->baseUrl = \Mockery::mock(BaseURL::class); } diff --git a/tests/src/Network/CurlResultTest.php b/tests/src/Network/CurlResultTest.php index 7f2754a0e5..294be6b0b2 100644 --- a/tests/src/Network/CurlResultTest.php +++ b/tests/src/Network/CurlResultTest.php @@ -16,14 +16,13 @@ class CurlResultTest extends TestCase { parent::setUp(); - /** @var Dice|MockInterface $dice */ $dice = \Mockery::mock(Dice::class)->makePartial(); $dice = $dice->addRules(include __DIR__ . '/../../../static/dependencies.config.php'); $logger = new NullLogger(); $dice->shouldReceive('create') - ->with(LoggerInterface::class) + ->with(LoggerInterface::class, []) ->andReturn($logger); DI::init($dice); diff --git a/tests/src/Util/BaseURLTest.php b/tests/src/Util/BaseURLTest.php index 7f63027fcb..47f80f36ea 100644 --- a/tests/src/Util/BaseURLTest.php +++ b/tests/src/Util/BaseURLTest.php @@ -2,7 +2,7 @@ namespace Friendica\Test\src\Util; use Friendica\App\BaseURL; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Friendica\Test\MockedTest; class BaseURLTest extends MockedTest @@ -173,7 +173,7 @@ class BaseURLTest extends MockedTest */ public function testCheck($server, $input, $assert) { - $configMock = \Mockery::mock(Configuration::class); + $configMock = \Mockery::mock(IConfiguration::class); $configMock->shouldReceive('get')->with('config', 'hostname')->andReturn($input['hostname']); $configMock->shouldReceive('get')->with('system', 'urlpath')->andReturn($input['urlPath']); $configMock->shouldReceive('get')->with('system', 'ssl_policy')->andReturn($input['sslPolicy']); @@ -295,7 +295,7 @@ class BaseURLTest extends MockedTest */ public function testSave($input, $save, $url) { - $configMock = \Mockery::mock(Configuration::class); + $configMock = \Mockery::mock(IConfiguration::class); $configMock->shouldReceive('get')->with('config', 'hostname')->andReturn($input['hostname']); $configMock->shouldReceive('get')->with('system', 'urlpath')->andReturn($input['urlPath']); $configMock->shouldReceive('get')->with('system', 'ssl_policy')->andReturn($input['sslPolicy']); @@ -333,7 +333,7 @@ class BaseURLTest extends MockedTest */ public function testSaveByUrl($input, $save, $url) { - $configMock = \Mockery::mock(Configuration::class); + $configMock = \Mockery::mock(IConfiguration::class); $configMock->shouldReceive('get')->with('config', 'hostname')->andReturn($input['hostname']); $configMock->shouldReceive('get')->with('system', 'urlpath')->andReturn($input['urlPath']); $configMock->shouldReceive('get')->with('system', 'ssl_policy')->andReturn($input['sslPolicy']); @@ -409,7 +409,7 @@ class BaseURLTest extends MockedTest */ public function testGetURL($sslPolicy, $ssl, $url, $assert) { - $configMock = \Mockery::mock(Configuration::class); + $configMock = \Mockery::mock(IConfiguration::class); $configMock->shouldReceive('get')->with('config', 'hostname')->andReturn('friendica.local'); $configMock->shouldReceive('get')->with('system', 'urlpath')->andReturn('new/test'); $configMock->shouldReceive('get')->with('system', 'ssl_policy')->andReturn($sslPolicy); @@ -467,7 +467,7 @@ class BaseURLTest extends MockedTest */ public function testCheckRedirectHTTPS($server, $forceSSL, $sslPolicy, $url, $redirect) { - $configMock = \Mockery::mock(Configuration::class); + $configMock = \Mockery::mock(IConfiguration::class); $configMock->shouldReceive('get')->with('config', 'hostname')->andReturn('friendica.local'); $configMock->shouldReceive('get')->with('system', 'urlpath')->andReturn('new/test'); $configMock->shouldReceive('get')->with('system', 'ssl_policy')->andReturn($sslPolicy); @@ -503,7 +503,7 @@ class BaseURLTest extends MockedTest */ public function testWrongSave($fail) { - $configMock = \Mockery::mock(Configuration::class); + $configMock = \Mockery::mock(IConfiguration::class); $configMock->shouldReceive('get')->with('config', 'hostname')->andReturn('friendica.local'); $configMock->shouldReceive('get')->with('system', 'urlpath')->andReturn('new/test'); $configMock->shouldReceive('get')->with('system', 'ssl_policy')->andReturn(BaseURL::DEFAULT_SSL_SCHEME); diff --git a/tests/src/Util/ProfilerTest.php b/tests/src/Util/ProfilerTest.php index 0790bc30ac..ba47858a09 100644 --- a/tests/src/Util/ProfilerTest.php +++ b/tests/src/Util/ProfilerTest.php @@ -3,7 +3,7 @@ namespace Friendica\Test\src\Util; use Friendica\Core\Config\Cache\ConfigCache; -use Friendica\Core\Config\Configuration; +use Friendica\Core\Config\IConfiguration; use Friendica\Test\MockedTest; use Friendica\Util\Profiler; use Mockery\MockInterface; @@ -235,7 +235,7 @@ class ProfilerTest extends MockedTest $profiler->saveTimestamp(time(), 'network', 'test1'); - $config = \Mockery::mock(Configuration::class); + $config = \Mockery::mock(IConfiguration::class); $config->shouldReceive('get') ->with('system', 'profiler') ->andReturn(false)