Remove BasePath dependency from App\Mode

This commit is contained in:
Philipp 2023-01-15 13:46:01 +01:00
parent dd6d96d048
commit a6fb683bcd
No known key found for this signature in database
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 Detection\MobileDetect;
use Friendica\Core\Config\ValueObject\Cache; use Friendica\Core\Config\ValueObject\Cache;
use Friendica\Database\Database; use Friendica\Database\Database;
use Friendica\Util\BasePath;
/** /**
* Mode of the current Friendica Node * Mode of the current Friendica Node
@ -129,15 +128,13 @@ class Mode
* *
* @throws \Exception * @throws \Exception
*/ */
public function determine(BasePath $basepath, Database $database, Cache $configCache): Mode public function determine(string $basePath, Database $database, Cache $configCache): Mode
{ {
$mode = 0; $mode = 0;
$basepathName = $basepath->getPath(); if (!file_exists($basePath . '/config/local.config.php') &&
!file_exists($basePath . '/config/local.ini.php') &&
if (!file_exists($basepathName . '/config/local.config.php') !file_exists($basePath . '/.htconfig.php')) {
&& !file_exists($basepathName . '/config/local.ini.php')
&& !file_exists($basepathName . '/.htconfig.php')) {
return new Mode($mode); return new Mode($mode);
} }

View File

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

View File

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