diff options
author | Morris Jobke <hey@morrisjobke.de> | 2015-01-28 01:00:20 +0100 |
---|---|---|
committer | Morris Jobke <hey@morrisjobke.de> | 2015-01-28 01:00:20 +0100 |
commit | 752b94d3633a74e7188d86d196411796a67947a3 (patch) | |
tree | 67c13e448140143f264d92663e94125f6f2fe6ce /tests | |
parent | 87b39e8f03913f6e571c526167c18f0be0021c41 (diff) | |
parent | 6d8985b67109b2b5d9dc64a4fcd5ed6d748bb338 (diff) | |
download | nextcloud-server-752b94d3633a74e7188d86d196411796a67947a3.tar.gz nextcloud-server-752b94d3633a74e7188d86d196411796a67947a3.zip |
Merge pull request #13717 from owncloud/storage-donotwrapnullstorage
Prevent wrapping null storage
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/files/mount/mountpoint.php | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/lib/files/mount/mountpoint.php b/tests/lib/files/mount/mountpoint.php new file mode 100644 index 00000000000..5a9c6de3e0a --- /dev/null +++ b/tests/lib/files/mount/mountpoint.php @@ -0,0 +1,69 @@ +<?php +/** + * Copyright (c) 2015 Vincent Petry <pvince81@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test\Files\Mount; + +class MountPoint extends \Test\TestCase { + + public function testGetStorage() { + $storage = $this->getMock('\OCP\Files\Storage'); + $storage->expects($this->once()) + ->method('getId') + ->will($this->returnValue(123)); + + $loader = $this->getMock('\OCP\Files\Storage\IStorageFactory'); + $loader->expects($this->once()) + ->method('getInstance') + ->will($this->returnValue($storage)); + + $mountPoint = new \OC\Files\Mount\MountPoint( + // just use this because a real class is needed + '\Test\Files\Mount\MountPoint', + '/mountpoint', + null, + $loader + ); + + $this->assertEquals($storage, $mountPoint->getStorage()); + $this->assertEquals(123, $mountPoint->getStorageId()); + } + + public function testInvalidStorage() { + $loader = $this->getMock('\OCP\Files\Storage\IStorageFactory'); + $loader->expects($this->once()) + ->method('getInstance') + ->will($this->throwException(new \Exception('Test storage init exception'))); + + $called = false; + $wrapper = function($mountPoint, $storage) use ($called) { + $called = true; + }; + + $mountPoint = new \OC\Files\Mount\MountPoint( + // just use this because a real class is needed + '\Test\Files\Mount\MountPoint', + '/mountpoint', + null, + $loader + ); + + $this->assertNull($mountPoint->getStorage()); + // call it again to make sure the init code only ran once + $this->assertNull($mountPoint->getStorage()); + + $this->assertNull($mountPoint->getStorageId()); + + // wrapping doesn't fail + $mountPoint->wrapStorage($wrapper); + + $this->assertNull($mountPoint->getStorage()); + + // storage wrapper never called + $this->assertFalse($called); + } +} |