summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern Schiessle <schiessle@owncloud.com>2015-07-31 15:44:27 +0200
committerBjoern Schiessle <schiessle@owncloud.com>2015-07-31 17:14:32 +0200
commit51a67a54e06eb4119a56a0f9f21b79bdea7c43f3 (patch)
tree7c1cc31fa54742b10916c26e4a98790f1c821ca8
parentde01951da32efdebfff4ddb21cd07328a2d28e31 (diff)
downloadnextcloud-server-51a67a54e06eb4119a56a0f9f21b79bdea7c43f3.tar.gz
nextcloud-server-51a67a54e06eb4119a56a0f9f21b79bdea7c43f3.zip
always update file cache, the cache can handle partial data correctly if the file doesn't already exists in the file cache
-rw-r--r--lib/private/files/storage/wrapper/encryption.php9
-rw-r--r--tests/lib/files/storage/wrapper/encryption.php8
2 files changed, 9 insertions, 8 deletions
diff --git a/lib/private/files/storage/wrapper/encryption.php b/lib/private/files/storage/wrapper/encryption.php
index 51aa13065c1..4ba9b21ddb4 100644
--- a/lib/private/files/storage/wrapper/encryption.php
+++ b/lib/private/files/storage/wrapper/encryption.php
@@ -127,12 +127,11 @@ class Encryption extends Wrapper {
$info = $this->getCache()->get($path);
if (isset($this->unencryptedSize[$fullPath])) {
$size = $this->unencryptedSize[$fullPath];
+ // update file cache
+ $info['encrypted'] = true;
+ $info['size'] = $size;
+ $this->getCache()->put($path, $info);
- if (isset($info['fileid'])) {
- $info['encrypted'] = true;
- $info['size'] = $size;
- $this->getCache()->put($path, $info);
- }
return $size;
}
diff --git a/tests/lib/files/storage/wrapper/encryption.php b/tests/lib/files/storage/wrapper/encryption.php
index 612cf827975..c49e6bb0d1f 100644
--- a/tests/lib/files/storage/wrapper/encryption.php
+++ b/tests/lib/files/storage/wrapper/encryption.php
@@ -261,10 +261,12 @@ class Encryption extends \Test\Files\Storage\Storage {
->expects($this->once())
->method('copyKeys')
->willReturn($copyKeysReturn);
- $this->cache->expects($this->once())
+ $this->cache->expects($this->atLeastOnce())
->method('put')
- ->with($this->anything(), ['encrypted' => true])
- ->willReturn(true);
+ ->willReturnCallback(function($path, $data) {
+ $this->assertArrayHasKey('encrypted', $data);
+ $this->assertTrue($data['encrypted']);
+ });
} else {
$this->cache->expects($this->never())->method('put');
$this->keyStore->expects($this->never())->method('copyKeys');