summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@owncloud.com>2015-06-02 12:33:17 +0200
committerJoas Schilling <nickvergessen@owncloud.com>2015-06-02 12:33:17 +0200
commit50a31fa8f905c3f9483137bc7b1e57cbf950d2c2 (patch)
tree1a4a588a385ea921b41c8ea9f90b94b2e8822978
parent9a4040c7ca2c0e4fc3f213ba3f6144e80f687754 (diff)
downloadnextcloud-server-50a31fa8f905c3f9483137bc7b1e57cbf950d2c2.tar.gz
nextcloud-server-50a31fa8f905c3f9483137bc7b1e57cbf950d2c2.zip
Add unit tests for wrapStorage
-rw-r--r--lib/private/encryption/util.php3
-rw-r--r--tests/lib/encryption/utiltest.php45
2 files changed, 46 insertions, 2 deletions
diff --git a/lib/private/encryption/util.php b/lib/private/encryption/util.php
index d233b715f88..16c09cd26b3 100644
--- a/lib/private/encryption/util.php
+++ b/lib/private/encryption/util.php
@@ -26,7 +26,6 @@ use OC\Encryption\Exceptions\EncryptionHeaderKeyExistsException;
use OC\Encryption\Exceptions\EncryptionHeaderToLargeException;
use OC\Encryption\Exceptions\ModuleDoesNotExistsException;
use OC\Files\Filesystem;
-use OC\Files\Storage\Shared;
use OC\Files\Storage\Wrapper\Encryption;
use OC\Files\View;
use OCP\Encryption\IEncryptionModule;
@@ -404,7 +403,7 @@ class Util {
'mountPoint' => $mountPoint,
'mount' => $mount];
- if (!($storage instanceof Shared)) {
+ if (!$storage->instanceOfStorage('OC\Files\Storage\Shared')) {
$manager = \OC::$server->getEncryptionManager();
$user = \OC::$server->getUserSession()->getUser();
$logger = \OC::$server->getLogger();
diff --git a/tests/lib/encryption/utiltest.php b/tests/lib/encryption/utiltest.php
index d3a4e211daa..d5f5ce4c2e9 100644
--- a/tests/lib/encryption/utiltest.php
+++ b/tests/lib/encryption/utiltest.php
@@ -194,4 +194,49 @@ class UtilTest extends TestCase {
);
}
+ /**
+ * @dataProvider provideWrapStorage
+ */
+ public function testWrapStorage($expectedWrapped, $wrappedStorages) {
+ $storage = $this->getMockBuilder('OC\Files\Storage\Storage')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ foreach ($wrappedStorages as $wrapper) {
+ $storage->expects($this->any())
+ ->method('instanceOfStorage')
+ ->willReturnMap([
+ [$wrapper, true],
+ ]);
+ }
+
+ $mount = $this->getMockBuilder('OCP\Files\Mount\IMountPoint')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $returnedStorage = $this->util->wrapStorage('mountPoint', $storage, $mount);
+
+ $this->assertEquals(
+ $expectedWrapped,
+ $returnedStorage->instanceOfStorage('OC\Files\Storage\Wrapper\Encryption'),
+ 'Asserted that the storage is (not) wrapped with encryption'
+ );
+ }
+
+ public function provideWrapStorage() {
+ return [
+ // Wrap when not wrapped or not wrapped with storage
+ [true, []],
+ [true, ['OCA\Files_Trashbin\Storage']],
+
+ // Do not wrap shared storages
+ [false, ['OC\Files\Storage\Shared']],
+ [false, ['OCA\Files_Sharing\External\Storage']],
+ [false, ['OC\Files\Storage\OwnCloud']],
+ [false, ['OC\Files\Storage\Shared', 'OCA\Files_Sharing\External\Storage']],
+ [false, ['OC\Files\Storage\Shared', 'OC\Files\Storage\OwnCloud']],
+ [false, ['OCA\Files_Sharing\External\Storage', 'OC\Files\Storage\OwnCloud']],
+ [false, ['OC\Files\Storage\Shared', 'OCA\Files_Sharing\External\Storage', 'OC\Files\Storage\OwnCloud']],
+ ];
+ }
}