diff options
author | Bjoern Schiessle <schiessle@owncloud.com> | 2015-04-24 16:47:27 +0200 |
---|---|---|
committer | Bjoern Schiessle <schiessle@owncloud.com> | 2015-04-24 16:47:27 +0200 |
commit | 9a5783b28434762aeb05ce62627a5adb675e5560 (patch) | |
tree | 01d5fa3850ead5eae49ed79283a74589363f5f18 | |
parent | 4554df2512aadbbed22650515c2fb5c85651ef42 (diff) | |
download | nextcloud-server-9a5783b28434762aeb05ce62627a5adb675e5560.tar.gz nextcloud-server-9a5783b28434762aeb05ce62627a5adb675e5560.zip |
fix unit tests
-rw-r--r-- | lib/private/files/stream/encryption.php | 14 | ||||
-rw-r--r-- | tests/lib/files/stream/encryption.php | 21 |
2 files changed, 26 insertions, 9 deletions
diff --git a/lib/private/files/stream/encryption.php b/lib/private/files/stream/encryption.php index 52660270763..5f39207db87 100644 --- a/lib/private/files/stream/encryption.php +++ b/lib/private/files/stream/encryption.php @@ -237,7 +237,6 @@ class Encryption extends Wrapper { $accessList = $this->file->getAccessList($sharePath); $this->newHeader = $this->encryptionModule->begin($this->fullPath, $this->uid, $this->header, $accessList); - if (!($path==='')){ if ( $mode === 'w' || $mode === 'w+' @@ -249,9 +248,9 @@ class Encryption extends Wrapper { $this->writeHeader(); $this->size = $this->util->getHeaderSize(); } else { - parent::stream_read($this->util->getHeaderSize()); - } + $this->skipHeader(); } + return true; } @@ -432,9 +431,16 @@ class Encryption extends Wrapper { * @return integer * @throws EncryptionHeaderKeyExistsException if header key is already in use */ - private function writeHeader() { + protected function writeHeader() { $header = $this->util->createHeader($this->newHeader, $this->encryptionModule); return parent::stream_write($header); } + /** + * read first block to skip the header + */ + protected function skipHeader() { + parent::stream_read($this->util->getHeaderSize()); + } + } diff --git a/tests/lib/files/stream/encryption.php b/tests/lib/files/stream/encryption.php index 024185b34c8..0b34de8ae12 100644 --- a/tests/lib/files/stream/encryption.php +++ b/tests/lib/files/stream/encryption.php @@ -55,6 +55,7 @@ class Encryption extends \Test\TestCase { $fileExists, $expectedSharePath, $expectedSize, + $expectedUnencryptedSize, $expectedReadOnly) { // build mocks @@ -77,9 +78,15 @@ class Encryption extends \Test\TestCase { return array(); })); + $utilMock = $this->getMockBuilder('\OC\Encryption\Util') + ->disableOriginalConstructor()->getMock(); + $utilMock->expects($this->any()) + ->method('getHeaderSize') + ->willReturn(8192); + // get a instance of the stream wrapper $streamWrapper = $this->getMockBuilder('\OC\Files\Stream\Encryption') - ->setMethods(['loadContext'])->disableOriginalConstructor()->getMock(); + ->setMethods(['loadContext', 'writeHeader', 'skipHeader'])->disableOriginalConstructor()->getMock(); // set internal properties of the stream wrapper $stream = new \ReflectionClass('\OC\Files\Stream\Encryption'); @@ -95,6 +102,10 @@ class Encryption extends \Test\TestCase { $file->setAccessible(true); $file->setValue($streamWrapper, $fileMock); $file->setAccessible(false); + $util = $stream->getProperty('util'); + $util->setAccessible(true); + $util->setValue($streamWrapper, $utilMock); + $util->setAccessible(false); $fullPathP = $stream->getProperty('fullPath'); $fullPathP->setAccessible(true); $fullPathP->setValue($streamWrapper, $fullPath); @@ -118,7 +129,7 @@ class Encryption extends \Test\TestCase { $unencryptedSize = $stream->getProperty('unencryptedSize'); $unencryptedSize->setAccessible(true); - $this->assertSame($expectedSize, + $this->assertSame($expectedUnencryptedSize, $unencryptedSize->getValue($streamWrapper) ); $unencryptedSize->setAccessible(false); @@ -133,9 +144,9 @@ class Encryption extends \Test\TestCase { public function dataProviderStreamOpen() { return array( - array('r', '/foo/bar/test.txt', true, '/foo/bar/test.txt', null, true), - array('r', '/foo/bar/test.txt', false, '/foo/bar', null, true), - array('w', '/foo/bar/test.txt', true, '/foo/bar/test.txt', 0, false), + array('r', '/foo/bar/test.txt', true, '/foo/bar/test.txt', null, null, true), + array('r', '/foo/bar/test.txt', false, '/foo/bar', null, null, true), + array('w', '/foo/bar/test.txt', true, '/foo/bar/test.txt', 8192, 0, false), ); } |