aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/files/storage/wrapper/encryption.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/files/storage/wrapper/encryption.php')
-rw-r--r--tests/lib/files/storage/wrapper/encryption.php101
1 files changed, 82 insertions, 19 deletions
diff --git a/tests/lib/files/storage/wrapper/encryption.php b/tests/lib/files/storage/wrapper/encryption.php
index d4492e00928..39af648cb75 100644
--- a/tests/lib/files/storage/wrapper/encryption.php
+++ b/tests/lib/files/storage/wrapper/encryption.php
@@ -47,6 +47,22 @@ class Encryption extends \Test\Files\Storage\Storage {
*/
private $cache;
+ /**
+ * @var \OC\Log | \PHPUnit_Framework_MockObject_MockObject
+ */
+ private $logger;
+
+ /**
+ * @var \OC\Encryption\File | \PHPUnit_Framework_MockObject_MockObject
+ */
+ private $file;
+
+
+ /**
+ * @var \OC\Files\Mount\MountPoint | \PHPUnit_Framework_MockObject_MockObject
+ */
+ private $mount;
+
/** @var integer dummy unencrypted size */
private $dummySize = -1;
@@ -77,13 +93,13 @@ class Encryption extends \Test\Files\Storage\Storage {
return ['user1', $path];
});
- $file = $this->getMockBuilder('\OC\Encryption\File')
+ $this->file = $this->getMockBuilder('\OC\Encryption\File')
->disableOriginalConstructor()
->setMethods(['getAccessList'])
->getMock();
- $file->expects($this->any())->method('getAccessList')->willReturn([]);
+ $this->file->expects($this->any())->method('getAccessList')->willReturn([]);
- $logger = $this->getMock('\OC\Log');
+ $this->logger = $this->getMock('\OC\Log');
$this->sourceStorage = new Temporary(array());
@@ -93,11 +109,11 @@ class Encryption extends \Test\Files\Storage\Storage {
$this->update = $this->getMockBuilder('\OC\Encryption\Update')
->disableOriginalConstructor()->getMock();
- $mount = $this->getMockBuilder('\OC\Files\Mount\MountPoint')
+ $this->mount = $this->getMockBuilder('\OC\Files\Mount\MountPoint')
->disableOriginalConstructor()
->setMethods(['getOption'])
->getMock();
- $mount->expects($this->any())->method('getOption')->willReturn(true);
+ $this->mount->expects($this->any())->method('getOption')->willReturn(true);
$this->cache = $this->getMockBuilder('\OC\Files\Cache\Cache')
->disableOriginalConstructor()->getMock();
@@ -112,12 +128,12 @@ class Encryption extends \Test\Files\Storage\Storage {
'storage' => $this->sourceStorage,
'root' => 'foo',
'mountPoint' => '/',
- 'mount' => $mount
+ 'mount' => $this->mount
],
- $this->encryptionManager, $this->util, $logger, $file, null, $this->keyStore, $this->update
+ $this->encryptionManager, $this->util, $this->logger, $this->file, null, $this->keyStore, $this->update
]
)
- ->setMethods(['getMetaData', 'getCache'])
+ ->setMethods(['getMetaData', 'getCache', 'getEncryptionModule'])
->getMock();
$this->instance->expects($this->any())
@@ -127,6 +143,10 @@ class Encryption extends \Test\Files\Storage\Storage {
$this->instance->expects($this->any())
->method('getCache')
->willReturn($this->cache);
+
+ $this->instance->expects($this->any())
+ ->method('getEncryptionModule')
+ ->willReturn($mockModule);
}
/**
@@ -135,7 +155,7 @@ class Encryption extends \Test\Files\Storage\Storage {
protected function buildMockModule() {
$this->encryptionModule = $this->getMockBuilder('\OCP\Encryption\IEncryptionModule')
->disableOriginalConstructor()
- ->setMethods(['getId', 'getDisplayName', 'begin', 'end', 'encrypt', 'decrypt', 'update', 'shouldEncrypt', 'getUnencryptedBlockSize'])
+ ->setMethods(['getId', 'getDisplayName', 'begin', 'end', 'encrypt', 'decrypt', 'update', 'shouldEncrypt', 'getUnencryptedBlockSize', 'isReadable'])
->getMock();
$this->encryptionModule->expects($this->any())->method('getId')->willReturn('UNIT_TEST_MODULE');
@@ -147,6 +167,7 @@ class Encryption extends \Test\Files\Storage\Storage {
$this->encryptionModule->expects($this->any())->method('update')->willReturn(true);
$this->encryptionModule->expects($this->any())->method('shouldEncrypt')->willReturn(true);
$this->encryptionModule->expects($this->any())->method('getUnencryptedBlockSize')->willReturn(8192);
+ $this->encryptionModule->expects($this->any())->method('isReadable')->willReturn(true);
return $this->encryptionModule;
}
@@ -157,13 +178,11 @@ class Encryption extends \Test\Files\Storage\Storage {
* @param string $target
* @param $encryptionEnabled
* @param boolean $renameKeysReturn
- * @param boolean $shouldUpdate
*/
public function testRename($source,
$target,
$encryptionEnabled,
- $renameKeysReturn,
- $shouldUpdate) {
+ $renameKeysReturn) {
if ($encryptionEnabled) {
$this->keyStore
->expects($this->once())
@@ -177,13 +196,6 @@ class Encryption extends \Test\Files\Storage\Storage {
->method('isFile')->willReturn(true);
$this->encryptionManager->expects($this->once())
->method('isEnabled')->willReturn($encryptionEnabled);
- if ($shouldUpdate) {
- $this->update->expects($this->once())
- ->method('update');
- } else {
- $this->update->expects($this->never())
- ->method('update');
- }
$this->instance->mkdir($source);
$this->instance->mkdir(dirname($target));
@@ -261,4 +273,55 @@ class Encryption extends \Test\Files\Storage\Storage {
->method('isEnabled')->willReturn(true);
$this->assertFalse($this->instance->isLocal());
}
+
+ /**
+ * @dataProvider dataTestRmdir
+ *
+ * @param string $path
+ * @param boolean $rmdirResult
+ * @param boolean $isExcluded
+ * @param boolean $encryptionEnabled
+ */
+ public function testRmdir($path, $rmdirResult, $isExcluded, $encryptionEnabled) {
+ $sourceStorage = $this->getMockBuilder('\OC\Files\Storage\Storage')
+ ->disableOriginalConstructor()->getMock();
+
+ $util = $this->getMockBuilder('\OC\Encryption\Util')->disableOriginalConstructor()->getMock();
+
+ $sourceStorage->expects($this->once())->method('rmdir')->willReturn($rmdirResult);
+ $util->expects($this->any())->method('isExcluded')-> willReturn($isExcluded);
+ $this->encryptionManager->expects($this->any())->method('isEnabled')->willReturn($encryptionEnabled);
+
+ $encryptionStorage = new \OC\Files\Storage\Wrapper\Encryption(
+ [
+ 'storage' => $sourceStorage,
+ 'root' => 'foo',
+ 'mountPoint' => '/mountPoint',
+ 'mount' => $this->mount
+ ],
+ $this->encryptionManager, $util, $this->logger, $this->file, null, $this->keyStore, $this->update
+ );
+
+
+ if ($rmdirResult === true && $isExcluded === false && $encryptionEnabled === true) {
+ $this->keyStore->expects($this->once())->method('deleteAllFileKeys')->with('/mountPoint' . $path);
+ } else {
+ $this->keyStore->expects($this->never())->method('deleteAllFileKeys');
+ }
+
+ $encryptionStorage->rmdir($path);
+ }
+
+ public function dataTestRmdir() {
+ return array(
+ array('/file.txt', true, true, true),
+ array('/file.txt', false, true, true),
+ array('/file.txt', true, false, true),
+ array('/file.txt', false, false, true),
+ array('/file.txt', true, true, false),
+ array('/file.txt', false, true, false),
+ array('/file.txt', true, false, false),
+ array('/file.txt', false, false, false),
+ );
+ }
}