diff options
author | Roeland Jago Douma <roeland@famdouma.nl> | 2018-02-09 20:15:29 +0100 |
---|---|---|
committer | Roeland Jago Douma <roeland@famdouma.nl> | 2018-02-27 13:35:09 +0100 |
commit | 8b5997483c852bcee6b44188982073c8213de25f (patch) | |
tree | dfa93059b717471deed9840c3ac86586055badab /tests | |
parent | d0a6368a8bc9b03cba66c4a485aa001da187b2e3 (diff) | |
download | nextcloud-server-8b5997483c852bcee6b44188982073c8213de25f.tar.gz nextcloud-server-8b5997483c852bcee6b44188982073c8213de25f.zip |
Hardening of SimpleFile getContent
if file_get_contents fails remove the file. And traverse up the tree
checking if the other folders are there.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/Files/SimpleFS/SimpleFileTest.php | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/lib/Files/SimpleFS/SimpleFileTest.php b/tests/lib/Files/SimpleFS/SimpleFileTest.php index 4e623eafa22..ab4970804a4 100644 --- a/tests/lib/Files/SimpleFS/SimpleFileTest.php +++ b/tests/lib/Files/SimpleFS/SimpleFileTest.php @@ -24,6 +24,9 @@ namespace Test\File\SimpleFS; use OC\Files\SimpleFS\SimpleFile; use OCP\Files\File; +use OCP\Files\Folder; +use OCP\Files\NotFoundException; +use OCP\Files\NotPermittedException; class SimpleFileTest extends \Test\TestCase { /** @var File|\PHPUnit_Framework_MockObject_MockObject */ @@ -101,4 +104,23 @@ class SimpleFileTest extends \Test\TestCase { $this->assertEquals('app/awesome', $this->simpleFile->getMimeType()); } + + public function testGetContentInvalidAppData() { + $this->file->method('getContent') + ->willReturn(false); + $this->file->method('stat')->willReturn(false); + + $parent = $this->createMock(Folder::class); + $parent->method('stat')->willReturn(false); + + $root = $this->createMock(Folder::class); + $root->method('stat')->willReturn([]); + + $this->file->method('getParent')->willReturn($parent); + $parent->method('getParent')->willReturn($root); + + $this->expectException(NotFoundException::class); + + $this->simpleFile->getContent(); + } } |