]> git.mxchange.org Git - friendica.git/commitdiff
Adapt filesystem tests
authorPhilipp <admin@philipp.info>
Tue, 5 Oct 2021 17:59:13 +0000 (19:59 +0200)
committerPhilipp <admin@philipp.info>
Tue, 5 Oct 2021 18:29:52 +0000 (20:29 +0200)
src/Model/Storage/Filesystem.php
tests/src/Core/StorageManagerTest.php
tests/src/Model/Storage/FilesystemStorageTest.php

index 3165565b0b8406e515ab44127d5529cc9a0898df..8b5078f5487d438686d8dace3144d8bb0f46f81a 100644 (file)
@@ -54,7 +54,7 @@ class Filesystem implements IWritableStorage
                $this->basePath = rtrim($path, '/');
 
                if (!is_dir($this->basePath) || !is_writable($this->basePath)) {
-                       throw new StorageException(sprintf('Path %s does not exist or is not writeable', $this->basePath));
+                       throw new StorageException(sprintf('Path "%s" does not exist or is not writeable.', $this->basePath));
                }
        }
 
index b0def99b707ae9822a4cc3bb99f57cf27e9a964d..77e4946bdf02bf4335aa2a315f2ef3565995107f 100644 (file)
@@ -40,6 +40,7 @@ use Friendica\Test\Util\Database\StaticDatabase;
 use Friendica\Test\Util\VFSTrait;
 use Friendica\Util\ConfigFileLoader;
 use Friendica\Util\Profiler;
+use org\bovigo\vfs\vfsStream;
 use Psr\Log\LoggerInterface;
 use Psr\Log\NullLogger;
 use Friendica\Test\Util\SampleStorageBackend;
@@ -64,6 +65,8 @@ class StorageManagerTest extends DatabaseTest
 
                $this->setUpVfsDir();
 
+               vfsStream::newDirectory(Storage\FilesystemConfig::DEFAULT_BASE_FOLDER, 0777)->at($this->root);
+
                $this->logger = new NullLogger();
 
                $profiler = \Mockery::mock(Profiler::class);
@@ -81,12 +84,20 @@ class StorageManagerTest extends DatabaseTest
                $configModel  = new Config($this->dba);
                $this->config = new PreloadConfig($configCache, $configModel);
                $this->config->set('storage', 'name', 'Database');
+               $this->config->set('storage', 'filesystem_path', $this->root->getChild(Storage\FilesystemConfig::DEFAULT_BASE_FOLDER)->url());
 
                $this->l10n = \Mockery::mock(L10n::class);
 
                $this->httpRequest = \Mockery::mock(HTTPClient::class);
        }
 
+       protected function tearDown(): void
+       {
+               $this->root->removeChild(Storage\FilesystemConfig::DEFAULT_BASE_FOLDER);
+
+               parent::tearDown();
+       }
+
        /**
         * Test plain instancing first
         */
index d3204c682979caf8ff021e0a885f5dd0711a5167..837c166819abb7161c177e8d101dcab6a7a86a22 100644 (file)
@@ -22,6 +22,7 @@
 namespace Friendica\Test\src\Model\Storage;
 
 use Friendica\Model\Storage\Filesystem;
+use Friendica\Model\Storage\FilesystemConfig;
 use Friendica\Model\Storage\StorageException;
 use Friendica\Test\Util\VFSTrait;
 use org\bovigo\vfs\vfsStream;
@@ -41,22 +42,36 @@ class FilesystemStorageTest extends StorageTest
 
        protected function getInstance()
        {
-               return new Filesystem($this->root->getChild('storage')->url());
+               return new Filesystem($this->root->getChild(FilesystemConfig::DEFAULT_BASE_FOLDER)->url());
        }
 
        /**
-        * Test the exception in case of missing directorsy permissions
+        * Test the exception in case of missing directory permissions during put new files
         */
-       public function testMissingDirPermissions()
+       public function testMissingDirPermissionsDuringPut()
        {
                $this->expectException(StorageException::class);
                $this->expectExceptionMessageMatches("/Filesystem storage failed to create \".*\". Check you write permissions./");
-               $this->root->getChild('storage')->chmod(000);
+               $this->root->getChild(FilesystemConfig::DEFAULT_BASE_FOLDER)->chmod(0777);
 
                $instance = $this->getInstance();
+
+               $this->root->getChild(FilesystemConfig::DEFAULT_BASE_FOLDER)->chmod(0000);
                $instance->put('test');
        }
 
+       /**
+        * Test the exception in case the directory isn't writeable
+        */
+       public function testMissingDirPermissions()
+       {
+               $this->expectException(StorageException::class);
+               $this->expectExceptionMessageMatches("/Path \".*\" does not exist or is not writeable./");
+               $this->root->getChild(FilesystemConfig::DEFAULT_BASE_FOLDER)->chmod(0000);
+
+               $this->getInstance();
+       }
+
        /**
         * Test the exception in case of missing file permissions
         *