diff --git a/src/App/Mode.php b/src/App/Mode.php index 514df91c6..48c88d803 100644 --- a/src/App/Mode.php +++ b/src/App/Mode.php @@ -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); } diff --git a/static/dependencies.config.php b/static/dependencies.config.php index 6feb76989..1836a44dd 100644 --- a/static/dependencies.config.php +++ b/static/dependencies.config.php @@ -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 => [ diff --git a/tests/src/App/ModeTest.php b/tests/src/App/ModeTest.php index aecd2b175..a651a73b1 100644 --- a/tests/src/App/ModeTest.php +++ b/tests/src/App/ModeTest.php @@ -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); }