diff options
author | Robin Appelman <robin@icewind.nl> | 2023-08-15 18:33:57 +0200 |
---|---|---|
committer | Robin Appelman <robin@icewind.nl> | 2023-08-18 14:25:28 +0200 |
commit | b6c3507aa0e9c1cd17e8030b4f105199aecb6673 (patch) | |
tree | 451d1288af2acdaa5e5ec041db332cd6d94e9446 /tests/lib/HelperStorageTest.php | |
parent | f0b70e539b34fb5c3f7e57f58f37f83c2b4e597f (diff) | |
download | nextcloud-server-b6c3507aa0e9c1cd17e8030b4f105199aecb6673.tar.gz nextcloud-server-b6c3507aa0e9c1cd17e8030b4f105199aecb6673.zip |
only determine quota_include_external_storage once for quota wrapper
Signed-off-by: Robin Appelman <robin@icewind.nl>
Diffstat (limited to 'tests/lib/HelperStorageTest.php')
-rw-r--r-- | tests/lib/HelperStorageTest.php | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/tests/lib/HelperStorageTest.php b/tests/lib/HelperStorageTest.php index d3f480502b2..0643c4b68a4 100644 --- a/tests/lib/HelperStorageTest.php +++ b/tests/lib/HelperStorageTest.php @@ -10,6 +10,7 @@ namespace Test; use OC\Files\Storage\Temporary; use OCP\Files\Mount\IMountManager; +use OCP\IConfig; use Test\Traits\UserTrait; /** @@ -26,12 +27,14 @@ class HelperStorageTest extends \Test\TestCase { private $storageMock; /** @var \OC\Files\Storage\Storage */ private $storage; + private bool $savedQuotaIncludeExternalStorage; protected function setUp(): void { parent::setUp(); $this->user = $this->getUniqueID('user_'); $this->createUser($this->user, $this->user); + $this->savedQuotaIncludeExternalStorage = $this->getIncludeExternalStorage(); \OC\Files\Filesystem::tearDown(); \OC_User::setUserId($this->user); @@ -45,6 +48,7 @@ class HelperStorageTest extends \Test\TestCase { } protected function tearDown(): void { + $this->setIncludeExternalStorage($this->savedQuotaIncludeExternalStorage); $this->user = null; if ($this->storageMock) { @@ -91,6 +95,19 @@ class HelperStorageTest extends \Test\TestCase { $this->assertEquals(5, $storageInfo['used']); $this->assertEquals(17, $storageInfo['total']); } + private function getIncludeExternalStorage(): bool { + $class = new \ReflectionClass(\OC_Helper::class); + $prop = $class->getProperty('quotaIncludeExternalStorage'); + $prop->setAccessible(true); + return $prop->getValue(null) ?? false; + } + + private function setIncludeExternalStorage(bool $include) { + $class = new \ReflectionClass(\OC_Helper::class); + $prop = $class->getProperty('quotaIncludeExternalStorage'); + $prop->setAccessible(true); + $prop->setValue(null, $include); + } /** * Test getting the storage info, ignoring extra mount points @@ -104,8 +121,7 @@ class HelperStorageTest extends \Test\TestCase { $extStorage->file_put_contents('extfile.txt', 'abcdefghijklmnopq'); $extStorage->getScanner()->scan(''); // update root size - $config = \OC::$server->getConfig(); - $config->setSystemValue('quota_include_external_storage', false); + $this->setIncludeExternalStorage(false); \OC\Files\Filesystem::mount($extStorage, [], '/' . $this->user . '/files/ext'); @@ -129,10 +145,9 @@ class HelperStorageTest extends \Test\TestCase { \OC\Files\Filesystem::mount($extStorage, [], '/' . $this->user . '/files/ext'); - $config = \OC::$server->getConfig(); - $oldConfig = $config->getSystemValue('quota_include_external_storage', false); - $config->setSystemValue('quota_include_external_storage', 'true'); + $this->setIncludeExternalStorage(true); + $config = \OC::$server->get(IConfig::class); $config->setUserValue($this->user, 'files', 'quota', '25'); $storageInfo = \OC_Helper::getStorageInfo(''); @@ -140,7 +155,6 @@ class HelperStorageTest extends \Test\TestCase { $this->assertEquals(22, $storageInfo['used']); $this->assertEquals(25, $storageInfo['total']); - $config->setSystemValue('quota_include_external_storage', $oldConfig); $config->setUserValue($this->user, 'files', 'quota', 'default'); } @@ -161,15 +175,12 @@ class HelperStorageTest extends \Test\TestCase { \OC\Files\Filesystem::mount($extStorage, [], '/' . $this->user . '/files/ext'); $config = \OC::$server->getConfig(); - $oldConfig = $config->getSystemValue('quota_include_external_storage', false); - $config->setSystemValue('quota_include_external_storage', 'true'); + $this->setIncludeExternalStorage(true); $storageInfo = \OC_Helper::getStorageInfo(''); $this->assertEquals(12, $storageInfo['free'], '12 bytes free in home storage'); $this->assertEquals(22, $storageInfo['used'], '5 bytes of home storage and 17 bytes of the temporary storage are used'); $this->assertEquals(34, $storageInfo['total'], '5 bytes used and 12 bytes free in home storage as well as 17 bytes used in temporary storage'); - - $config->setSystemValue('quota_include_external_storage', $oldConfig); } |