namespace Friendica\Test\src\Core\Hooks\Util;
use Friendica\Core\Addon\Capability\ICanLoadAddons;
+use Friendica\Core\Config\Capability\IManageConfigValues;
use Friendica\Core\Hooks\Capability\ICanRegisterStrategies;
use Friendica\Core\Hooks\Exceptions\HookConfigException;
use Friendica\Core\Hooks\Util\StrategiesFileManager;
return [
'normal' => [
'content' => <<<EOF
-<?php
-
-return [
- \Psr\Log\LoggerInterface::class => [
- \Psr\Log\NullLogger::class => [''],
- ],
-];
-EOF,
- 'addonsArray' => [],
+ <?php
+
+ return [
+ \Psr\Log\LoggerInterface::class => [
+ \Psr\Log\NullLogger::class => [''],
+ ],
+ ];
+ EOF,
+ 'addonContent' => <<<EOF
+ <?php
+
+ return [];
+ EOF,
'assertStrategies' => [
[LoggerInterface::class, NullLogger::class, ''],
],
],
'normalWithString' => [
'content' => <<<EOF
-<?php
-
-return [
- \Psr\Log\LoggerInterface::class => [
- \Psr\Log\NullLogger::class => '',
- ],
-];
-EOF,
- 'addonsArray' => [],
+ <?php
+
+ return [
+ \Psr\Log\LoggerInterface::class => [
+ \Psr\Log\NullLogger::class => '',
+ ],
+ ];
+ EOF,
+ 'addonContent' => <<<EOF
+ <?php
+
+ return [];
+ EOF,
'assertStrategies' => [
[LoggerInterface::class, NullLogger::class, ''],
],
],
'withAddons' => [
'content' => <<<EOF
-<?php
-
-return [
- \Psr\Log\LoggerInterface::class => [
- \Psr\Log\NullLogger::class => [''],
- ],
-];
-EOF,
- 'addonsArray' => [
- \Psr\Log\LoggerInterface::class => [
- \Psr\Log\NullLogger::class => ['null'],
- ],
- ],
+ <?php
+
+ return [
+ \Psr\Log\LoggerInterface::class => [
+ \Psr\Log\NullLogger::class => [''],
+ ],
+ ];
+ EOF,
+ 'addonContent' => <<<EOF
+ <?php
+
+ return [
+ \Psr\Log\LoggerInterface::class => [
+ \Psr\Log\NullLogger::class => ['null'],
+ ],
+ ];
+ EOF,
'assertStrategies' => [
[LoggerInterface::class, NullLogger::class, ''],
[LoggerInterface::class, NullLogger::class, 'null'],
],
'withAddonsWithString' => [
'content' => <<<EOF
-<?php
-
-return [
- \Psr\Log\LoggerInterface::class => [
- \Psr\Log\NullLogger::class => [''],
- ],
-];
-EOF,
- 'addonsArray' => [
- \Psr\Log\LoggerInterface::class => [
- \Psr\Log\NullLogger::class => 'null',
- ],
- ],
+ <?php
+
+ return [
+ \Psr\Log\LoggerInterface::class => [
+ \Psr\Log\NullLogger::class => [''],
+ ],
+ ];
+ EOF,
+ 'addonContent' => <<<EOF
+ <?php
+
+ return [
+ \Psr\Log\LoggerInterface::class => [
+ \Psr\Log\NullLogger::class => ['null'],
+ ],
+ ];
+ EOF,
'assertStrategies' => [
[LoggerInterface::class, NullLogger::class, ''],
[LoggerInterface::class, NullLogger::class, 'null'],
// This should work because unique name convention is part of the instance manager logic, not of the file-infrastructure layer
'withAddonsDoubleNamed' => [
'content' => <<<EOF
-<?php
-
-return [
- \Psr\Log\LoggerInterface::class => [
- \Psr\Log\NullLogger::class => [''],
- ],
-];
-EOF,
- 'addonsArray' => [
- \Psr\Log\LoggerInterface::class => [
- \Psr\Log\NullLogger::class => [''],
- ],
- ],
+ <?php
+
+ return [
+ \Psr\Log\LoggerInterface::class => [
+ \Psr\Log\NullLogger::class => [''],
+ ],
+ ];
+ EOF,
+ 'addonContent' => <<<EOF
+ <?php
+
+ return [
+ \Psr\Log\LoggerInterface::class => [
+ \Psr\Log\NullLogger::class => [''],
+ ],
+ ];
+ EOF,
'assertStrategies' => [
[LoggerInterface::class, NullLogger::class, ''],
[LoggerInterface::class, NullLogger::class, ''],
/**
* @dataProvider dataHooks
*/
- public function testSetupHooks(string $content, array $addonsArray, array $assertStrategies)
+ public function testSetupHooks(string $content, string $addonContent, array $assertStrategies)
{
vfsStream::newFile(StrategiesFileManager::STATIC_DIR . '/' . StrategiesFileManager::CONFIG_NAME . '.config.php')
->withContent($content)
->at($this->root);
- $addonLoader = \Mockery::mock(ICanLoadAddons::class);
- $addonLoader->shouldReceive('getActiveAddonConfig')->andReturn($addonsArray)->once();
+ vfsStream::newFile('addon/testaddon/' . StrategiesFileManager::STATIC_DIR . '/' . StrategiesFileManager::CONFIG_NAME . '.config.php')
+ ->withContent($addonContent)
+ ->at($this->root);
+
+ $config = \Mockery::mock(IManageConfigValues::class);
+ $config->shouldReceive('get')->andReturn(['testaddon' => ['admin' => false]])->once();
- $hookFileManager = new StrategiesFileManager($this->root->url(), $addonLoader);
+ $hookFileManager = new StrategiesFileManager($this->root->url(), $config);
$instanceManager = \Mockery::mock(ICanRegisterStrategies::class);
foreach ($assertStrategies as $assertStrategy) {
*/
public function testMissingStrategiesFile()
{
- $addonLoader = \Mockery::mock(ICanLoadAddons::class);
+ $config = \Mockery::mock(IManageConfigValues::class);
$instanceManager = \Mockery::mock(ICanRegisterStrategies::class);
- $hookFileManager = new StrategiesFileManager($this->root->url(), $addonLoader);
+ $hookFileManager = new StrategiesFileManager($this->root->url(), $config);
self::expectException(HookConfigException::class);
self::expectExceptionMessage(sprintf('config file %s does not exist.',
*/
public function testWrongStrategiesFile()
{
- $addonLoader = \Mockery::mock(ICanLoadAddons::class);
+ $config = \Mockery::mock(IManageConfigValues::class);
$instanceManager = \Mockery::mock(ICanRegisterStrategies::class);
- $hookFileManager = new StrategiesFileManager($this->root->url(), $addonLoader);
+ $hookFileManager = new StrategiesFileManager($this->root->url(), $config);
vfsStream::newFile(StrategiesFileManager::STATIC_DIR . '/' . StrategiesFileManager::CONFIG_NAME . '.config.php')
->withContent("<?php return 'WRONG_CONTENT';")