diff options
author | Julius Härtl <jus@bitgrid.net> | 2022-12-07 22:03:13 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-07 22:03:13 +0100 |
commit | 87e638b1f8c0e418b491464c4b7dccce0e8a61bf (patch) | |
tree | 1132d132540c464e6902d5a0199f7d7120bee40b /tests | |
parent | 0012787f73f30dc482d5e5eaac90fb3b514af238 (diff) | |
parent | 59ae6e9dd6a750199517382bcf7d031259004e42 (diff) | |
download | nextcloud-server-87e638b1f8c0e418b491464c4b7dccce0e8a61bf.tar.gz nextcloud-server-87e638b1f8c0e418b491464c4b7dccce0e8a61bf.zip |
Merge pull request #35649 from nextcloud/bugfix/object-storage-master-key-enc
Update the unencrypted file size when closing streams
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/Files/Stream/EncryptionTest.php | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/tests/lib/Files/Stream/EncryptionTest.php b/tests/lib/Files/Stream/EncryptionTest.php index 5516c0bf658..79a845fe7a6 100644 --- a/tests/lib/Files/Stream/EncryptionTest.php +++ b/tests/lib/Files/Stream/EncryptionTest.php @@ -12,6 +12,7 @@ use OCP\IConfig; use Symfony\Component\EventDispatcher\EventDispatcherInterface; class EncryptionTest extends \Test\TestCase { + public const DEFAULT_WRAPPER = '\OC\Files\Stream\Encryption'; /** @var \OCP\Encryption\IEncryptionModule | \PHPUnit\Framework\MockObject\MockObject */ private $encryptionModule; @@ -22,7 +23,7 @@ class EncryptionTest extends \Test\TestCase { * @param integer $unencryptedSize * @return resource */ - protected function getStream($fileName, $mode, $unencryptedSize, $wrapper = '\OC\Files\Stream\Encryption') { + protected function getStream($fileName, $mode, $unencryptedSize, $wrapper = self::DEFAULT_WRAPPER, $unencryptedSizeOnClose = 0) { clearstatcache(); $size = filesize($fileName); $source = fopen($fileName, $mode); @@ -64,9 +65,10 @@ class EncryptionTest extends \Test\TestCase { $entry = new CacheEntry([ 'fileid' => 5, 'encryptedVersion' => 2, + 'unencrypted_size' => $unencryptedSizeOnClose, ]); $cache->expects($this->any())->method('get')->willReturn($entry); - $cache->expects($this->any())->method('update')->with(5, ['encrypted' => 3, 'encryptedVersion' => 3]); + $cache->expects($this->any())->method('update')->with(5, ['encrypted' => 3, 'encryptedVersion' => 3, 'unencrypted_size' => $unencryptedSizeOnClose]); return $wrapper::wrap($source, $internalPath, @@ -188,7 +190,7 @@ class EncryptionTest extends \Test\TestCase { public function testWriteRead() { $fileName = tempnam("/tmp", "FOO"); - $stream = $this->getStream($fileName, 'w+', 0); + $stream = $this->getStream($fileName, 'w+', 0, self::DEFAULT_WRAPPER, 6); $this->assertEquals(6, fwrite($stream, 'foobar')); fclose($stream); @@ -196,7 +198,7 @@ class EncryptionTest extends \Test\TestCase { $this->assertEquals('foobar', fread($stream, 100)); fclose($stream); - $stream = $this->getStream($fileName, 'r+', 6); + $stream = $this->getStream($fileName, 'r+', 6, self::DEFAULT_WRAPPER, 6); $this->assertEquals(3, fwrite($stream, 'bar')); fclose($stream); @@ -209,7 +211,7 @@ class EncryptionTest extends \Test\TestCase { public function testRewind() { $fileName = tempnam("/tmp", "FOO"); - $stream = $this->getStream($fileName, 'w+', 0); + $stream = $this->getStream($fileName, 'w+', 0, self::DEFAULT_WRAPPER, 6); $this->assertEquals(6, fwrite($stream, 'foobar')); $this->assertEquals(true, rewind($stream)); $this->assertEquals('foobar', fread($stream, 100)); @@ -227,7 +229,7 @@ class EncryptionTest extends \Test\TestCase { public function testSeek() { $fileName = tempnam("/tmp", "FOO"); - $stream = $this->getStream($fileName, 'w+', 0); + $stream = $this->getStream($fileName, 'w+', 0, self::DEFAULT_WRAPPER, 9); $this->assertEquals(6, fwrite($stream, 'foobar')); $this->assertEquals(0, fseek($stream, 3)); $this->assertEquals(6, fwrite($stream, 'foobar')); @@ -261,7 +263,7 @@ class EncryptionTest extends \Test\TestCase { $expectedData = file_get_contents(\OC::$SERVERROOT . '/tests/data/' . $testFile); // write it $fileName = tempnam("/tmp", "FOO"); - $stream = $this->getStream($fileName, 'w+', 0); + $stream = $this->getStream($fileName, 'w+', 0, self::DEFAULT_WRAPPER, strlen($expectedData)); // while writing the file from the beginning to the end we should never try // to read parts of the file. This should only happen for write operations // in the middle of a file @@ -302,7 +304,7 @@ class EncryptionTest extends \Test\TestCase { $expectedData = file_get_contents(\OC::$SERVERROOT . '/tests/data/' . $testFile); // write it $fileName = tempnam("/tmp", "FOO"); - $stream = $this->getStream($fileName, 'w+', 0, '\Test\Files\Stream\DummyEncryptionWrapper'); + $stream = $this->getStream($fileName, 'w+', 0, '\Test\Files\Stream\DummyEncryptionWrapper', strlen($expectedData)); // while writing the file from the beginning to the end we should never try // to read parts of the file. This should only happen for write operations // in the middle of a file @@ -311,7 +313,7 @@ class EncryptionTest extends \Test\TestCase { fclose($stream); // read it all - $stream = $this->getStream($fileName, 'r', strlen($expectedData), '\Test\Files\Stream\DummyEncryptionWrapper'); + $stream = $this->getStream($fileName, 'r', strlen($expectedData), '\Test\Files\Stream\DummyEncryptionWrapper', strlen($expectedData)); $data = stream_get_contents($stream); fclose($stream); |