Add a unit test for the disabled encryption case
This commit is contained in:
parent
9cee8ff9f8
commit
42baeb36dc
|
@ -139,7 +139,15 @@ class Encryption extends \Test\Files\Storage\Storage {
|
||||||
->disableOriginalConstructor()
|
->disableOriginalConstructor()
|
||||||
->setMethods(['getOption'])
|
->setMethods(['getOption'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$this->mount->expects($this->any())->method('getOption')->willReturn(true);
|
$this->mount->expects($this->any())->method('getOption')->willReturnCallback(function ($option, $default) {
|
||||||
|
if ($option === 'encrypt' && $default === true) {
|
||||||
|
global $mockedMountPointEncryptionEnabled;
|
||||||
|
if ($mockedMountPointEncryptionEnabled !== null) {
|
||||||
|
return $mockedMountPointEncryptionEnabled;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
$this->cache = $this->getMockBuilder('\OC\Files\Cache\Cache')
|
$this->cache = $this->getMockBuilder('\OC\Files\Cache\Cache')
|
||||||
->disableOriginalConstructor()->getMock();
|
->disableOriginalConstructor()->getMock();
|
||||||
|
@ -542,4 +550,55 @@ class Encryption extends \Test\Files\Storage\Storage {
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function dataCopyBetweenStorage() {
|
||||||
|
return [
|
||||||
|
[true, true, true],
|
||||||
|
[true, false, false],
|
||||||
|
[false, true, false],
|
||||||
|
[false, false, false],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider dataCopyBetweenStorage
|
||||||
|
*
|
||||||
|
* @param bool $encryptionEnabled
|
||||||
|
* @param bool $mountPointEncryptionEnabled
|
||||||
|
* @param bool $expectedEncrypted
|
||||||
|
*/
|
||||||
|
public function testCopyBetweenStorage($encryptionEnabled, $mountPointEncryptionEnabled, $expectedEncrypted) {
|
||||||
|
$storage2 = $this->getMockBuilder('OCP\Files\Storage')
|
||||||
|
->disableOriginalConstructor()
|
||||||
|
->getMock();
|
||||||
|
|
||||||
|
$sourceInternalPath = $targetInternalPath = 'file.txt';
|
||||||
|
$preserveMtime = $isRename = false;
|
||||||
|
|
||||||
|
$storage2->expects($this->any())
|
||||||
|
->method('fopen')
|
||||||
|
->willReturnCallback(function($path, $mode) {
|
||||||
|
$temp = \OC::$server->getTempManager();
|
||||||
|
return fopen($temp->getTemporaryFile(), $mode);
|
||||||
|
});
|
||||||
|
|
||||||
|
$this->encryptionManager->expects($this->any())
|
||||||
|
->method('isEnabled')
|
||||||
|
->willReturn($encryptionEnabled);
|
||||||
|
|
||||||
|
// FIXME can not overwrite the return after definition
|
||||||
|
// $this->mount->expects($this->at(0))
|
||||||
|
// ->method('getOption')
|
||||||
|
// ->with('encrypt', true)
|
||||||
|
// ->willReturn($mountPointEncryptionEnabled);
|
||||||
|
global $mockedMountPointEncryptionEnabled;
|
||||||
|
$mockedMountPointEncryptionEnabled = $mountPointEncryptionEnabled;
|
||||||
|
|
||||||
|
$this->cache->expects($this->once())
|
||||||
|
->method('put')
|
||||||
|
->with($sourceInternalPath, ['encrypted' => $expectedEncrypted]);
|
||||||
|
|
||||||
|
$this->invokePrivate($this->instance, 'copyBetweenStorage', [$storage2, $sourceInternalPath, $targetInternalPath, $preserveMtime, $isRename]);
|
||||||
|
|
||||||
|
$this->assertFalse(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue