skip already encrypted files on encrypt all command
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
This commit is contained in:
parent
6c6793fd7f
commit
1e8098471c
|
@ -295,6 +295,12 @@ class EncryptAll {
|
||||||
*/
|
*/
|
||||||
protected function encryptFile($path) {
|
protected function encryptFile($path) {
|
||||||
|
|
||||||
|
// skip already encrypted files
|
||||||
|
$fileInfo = $this->rootView->getFileInfo($path);
|
||||||
|
if ($fileInfo !== false && $fileInfo->isEncrypted()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
$source = $path;
|
$source = $path;
|
||||||
$target = $path . '.encrypted.' . time();
|
$target = $path . '.encrypted.' . time();
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@ use OCA\Encryption\Crypto\EncryptAll;
|
||||||
use OCA\Encryption\KeyManager;
|
use OCA\Encryption\KeyManager;
|
||||||
use OCA\Encryption\Users\Setup;
|
use OCA\Encryption\Users\Setup;
|
||||||
use OCA\Encryption\Util;
|
use OCA\Encryption\Util;
|
||||||
|
use OCP\Files\FileInfo;
|
||||||
use OCP\IConfig;
|
use OCP\IConfig;
|
||||||
use OCP\IL10N;
|
use OCP\IL10N;
|
||||||
use OCP\IUserManager;
|
use OCP\IUserManager;
|
||||||
|
@ -354,4 +355,36 @@ class EncryptAllTest extends TestCase {
|
||||||
$this->assertSame($password, $userPasswords['user1']);
|
$this->assertSame($password, $userPasswords['user1']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider dataTestEncryptFile
|
||||||
|
* @param $isEncrypted
|
||||||
|
*/
|
||||||
|
public function testEncryptFile($isEncrypted) {
|
||||||
|
$fileInfo = $this->createMock(FileInfo::class);
|
||||||
|
$fileInfo->expects($this->any())->method('isEncrypted')
|
||||||
|
->willReturn($isEncrypted);
|
||||||
|
$this->view->expects($this->any())->method('getFileInfo')
|
||||||
|
->willReturn($fileInfo);
|
||||||
|
|
||||||
|
|
||||||
|
if($isEncrypted) {
|
||||||
|
$this->view->expects($this->never())->method('copy');
|
||||||
|
$this->view->expects($this->never())->method('rename');
|
||||||
|
} else {
|
||||||
|
$this->view->expects($this->once())->method('copy');
|
||||||
|
$this->view->expects($this->once())->method('rename');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->assertTrue(
|
||||||
|
$this->invokePrivate($this->encryptAll, 'encryptFile', ['foo.txt'])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function dataTestEncryptFile() {
|
||||||
|
return [
|
||||||
|
[true],
|
||||||
|
[false],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue