From 21643150aa2871d36e70de6188d8fa45957f4743 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 25 Apr 2016 14:36:53 +0200 Subject: [PATCH 1/2] error out if a local storage isn't setup correctly --- lib/private/Files/Storage/Local.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/private/Files/Storage/Local.php b/lib/private/Files/Storage/Local.php index 25b202af5f..03aaf1e0a8 100644 --- a/lib/private/Files/Storage/Local.php +++ b/lib/private/Files/Storage/Local.php @@ -39,6 +39,9 @@ class Local extends \OC\Files\Storage\Common { protected $datadir; public function __construct($arguments) { + if (!isset($arguments['datadir']) || !is_string($arguments['datadir'])) { + throw new \InvalidArgumentException('No data directory set for local storage'); + } $this->datadir = $arguments['datadir']; if (substr($this->datadir, -1) !== '/') { $this->datadir .= '/'; From 2f01c83a014dc01e87dbb2475c7620daf867d80a Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 26 Apr 2016 16:08:52 +0200 Subject: [PATCH 2/2] add tests --- tests/lib/files/storage/local.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/lib/files/storage/local.php b/tests/lib/files/storage/local.php index 2583863b55..4cc6c6a842 100644 --- a/tests/lib/files/storage/local.php +++ b/tests/lib/files/storage/local.php @@ -70,5 +70,19 @@ class Local extends Storage { $etag2 = $this->instance->getETag('test.txt'); $this->assertNotEquals($etag1, $etag2); } + + /** + * @expectedException \InvalidArgumentException + */ + public function testInvalidArgumentsEmptyArray() { + new \OC\Files\Storage\Local([]); + } + + /** + * @expectedException \InvalidArgumentException + */ + public function testInvalidArgumentsNoArray() { + new \OC\Files\Storage\Local(null); + } }