1
0
Fork 0

Remove BasePath dependency from App\Mode

This commit is contained in:
Philipp Holzer 2023-01-15 13:46:01 +01:00
parent dd6d96d048
commit a6fb683bcd
Signed by: nupplaPhil
GPG key ID: 24A7501396EB5432
3 changed files with 13 additions and 27 deletions

View file

@ -24,7 +24,6 @@ namespace Friendica\App;
use Detection\MobileDetect;
use Friendica\Core\Config\ValueObject\Cache;
use Friendica\Database\Database;
use Friendica\Util\BasePath;
/**
* Mode of the current Friendica Node
@ -129,15 +128,13 @@ class Mode
*
* @throws \Exception
*/
public function determine(BasePath $basepath, Database $database, Cache $configCache): Mode
public function determine(string $basePath, Database $database, Cache $configCache): Mode
{
$mode = 0;
$basepathName = $basepath->getPath();
if (!file_exists($basepathName . '/config/local.config.php')
&& !file_exists($basepathName . '/config/local.ini.php')
&& !file_exists($basepathName . '/.htconfig.php')) {
if (!file_exists($basePath . '/config/local.config.php') &&
!file_exists($basePath . '/config/local.ini.php') &&
!file_exists($basePath . '/.htconfig.php')) {
return new Mode($mode);
}

View file

@ -94,7 +94,9 @@ return [
App\Mode::class => [
'call' => [
['determineRunMode', [true, $_SERVER], Dice::CHAIN_CALL],
['determine', [], Dice::CHAIN_CALL],
['determine', [
[Dice::INSTANCE => '$basepath']
], Dice::CHAIN_CALL],
],
],
Config\Capability\IManageConfigValues::class => [

View file

@ -57,7 +57,6 @@ class ModeTest extends MockedTest
$this->setUpVfsDir();
$this->basePathMock = Mockery::mock(BasePath::class);
$this->databaseMock = Mockery::mock(Database::class);
$this->configCacheMock = Mockery::mock(Cache::class);
}
@ -71,15 +70,13 @@ class ModeTest extends MockedTest
public function testWithoutConfig()
{
$this->basePathMock->shouldReceive('getPath')->andReturn($this->root->url())->once();
self::assertTrue($this->root->hasChild('config/local.config.php'));
$this->delConfigFile('local.config.php');
self::assertFalse($this->root->hasChild('config/local.config.php'));
$mode = (new Mode())->determine($this->basePathMock, $this->databaseMock, $this->configCacheMock);
$mode = (new Mode())->determine($this->root->url(), $this->databaseMock, $this->configCacheMock);
self::assertTrue($mode->isInstall());
self::assertFalse($mode->isNormal());
@ -89,11 +86,9 @@ class ModeTest extends MockedTest
public function testWithoutDatabase()
{
$this->basePathMock->shouldReceive('getPath')->andReturn($this->root->url())->once();
$this->databaseMock->shouldReceive('connected')->andReturn(false)->once();
$mode = (new Mode())->determine($this->basePathMock, $this->databaseMock, $this->configCacheMock);
$mode = (new Mode())->determine($this->root->url(), $this->databaseMock, $this->configCacheMock);
self::assertFalse($mode->isNormal());
self::assertTrue($mode->isInstall());
@ -104,13 +99,11 @@ class ModeTest extends MockedTest
public function testWithMaintenanceMode()
{
$this->basePathMock->shouldReceive('getPath')->andReturn($this->root->url())->once();
$this->databaseMock->shouldReceive('connected')->andReturn(true)->once();
$this->configCacheMock->shouldReceive('get')->with('system', 'maintenance')
->andReturn(true)->once();
$mode = (new Mode())->determine($this->basePathMock, $this->databaseMock, $this->configCacheMock);
$mode = (new Mode())->determine($this->root->url(), $this->databaseMock, $this->configCacheMock);
self::assertFalse($mode->isNormal());
self::assertFalse($mode->isInstall());
@ -120,13 +113,11 @@ class ModeTest extends MockedTest
public function testNormalMode()
{
$this->basePathMock->shouldReceive('getPath')->andReturn($this->root->url())->once();
$this->databaseMock->shouldReceive('connected')->andReturn(true)->once();
$this->configCacheMock->shouldReceive('get')->with('system', 'maintenance')
->andReturn(false)->once();
$mode = (new Mode())->determine($this->basePathMock, $this->databaseMock, $this->configCacheMock);
$mode = (new Mode())->determine($this->root->url(), $this->databaseMock, $this->configCacheMock);
self::assertTrue($mode->isNormal());
self::assertFalse($mode->isInstall());
@ -139,13 +130,11 @@ class ModeTest extends MockedTest
*/
public function testDisabledMaintenance()
{
$this->basePathMock->shouldReceive('getPath')->andReturn($this->root->url())->once();
$this->databaseMock->shouldReceive('connected')->andReturn(true)->once();
$this->configCacheMock->shouldReceive('get')->with('system', 'maintenance')
->andReturn(false)->once();
$mode = (new Mode())->determine($this->basePathMock, $this->databaseMock, $this->configCacheMock);
$mode = (new Mode())->determine($this->root->url(), $this->databaseMock, $this->configCacheMock);
self::assertTrue($mode->isNormal());
self::assertFalse($mode->isInstall());
@ -158,11 +147,9 @@ class ModeTest extends MockedTest
*/
public function testImmutable()
{
$this->basePathMock->shouldReceive('getPath')->andReturn(null)->once();
$mode = new Mode();
$modeNew = $mode->determine($this->basePathMock, $this->databaseMock, $this->configCacheMock);
$modeNew = $mode->determine('', $this->databaseMock, $this->configCacheMock);
self::assertNotSame($modeNew, $mode);
}