3 * @copyright Copyright (C) 2010-2022, the Friendica project
5 * @license GNU AGPL version 3 or any later version
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as
9 * published by the Free Software Foundation, either version 3 of the
10 * License, or (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
22 namespace Friendica\Test\src\Core\Storage;
24 use Friendica\Core\Config\Capability\IManageConfigValues;
25 use Friendica\Core\L10n;
26 use Friendica\Core\Storage\Capability\ICanConfigureStorage;
27 use Friendica\Core\Storage\Type\FilesystemConfig;
28 use Friendica\Test\Util\VFSTrait;
29 use Mockery\MockInterface;
30 use org\bovigo\vfs\vfsStream;
32 class FilesystemStorageConfigTest extends StorageConfigTest
36 protected function setUp(): void
40 vfsStream::create(['storage' => []], $this->root);
45 protected function getInstance()
47 /** @var MockInterface|L10n $l10n */
48 $l10n = \Mockery::mock(L10n::class)->makePartial();
49 $config = \Mockery::mock(IManageConfigValues::class);
50 $config->shouldReceive('get')
51 ->with('storage', 'filesystem_path', FilesystemConfig::DEFAULT_BASE_FOLDER)
52 ->andReturn($this->root->getChild('storage')->url());
54 return new FilesystemConfig($config, $l10n);
57 protected function assertOption(ICanConfigureStorage $storage)
61 'input', 'Storage base path',
62 $this->root->getChild('storage')->url(),
63 'Folder where uploaded files are saved. For maximum security, This should be a path outside web server folder tree'
65 ], $storage->getOptions());