diff --git a/tests/lib/connector/sabre/requesttest/requesttest.php b/tests/lib/connector/sabre/requesttest/requesttest.php index 7b19282441..7f33dcf817 100644 --- a/tests/lib/connector/sabre/requesttest/requesttest.php +++ b/tests/lib/connector/sabre/requesttest/requesttest.php @@ -11,20 +11,18 @@ namespace Test\Connector\Sabre\RequestTest; use OC\Connector\Sabre\Server; use OC\Connector\Sabre\ServerFactory; use OC\Files\Mount\MountPoint; +use OC\Files\Storage\StorageFactory; use OC\Files\Storage\Temporary; use OC\Files\View; use OCP\IUser; use Sabre\HTTP\Request; use Test\TestCase; +use Test\Traits\MountProviderTrait; use Test\Traits\UserTrait; abstract class RequestTest extends TestCase { use UserTrait; - - /** - * @var \OCP\Files\Config\IMountProvider[] - */ - protected $mountProviders; + use MountProviderTrait; /** * @var \OC\Connector\Sabre\ServerFactory @@ -38,29 +36,6 @@ abstract class RequestTest extends TestCase { return $stream; } - /** - * @param $userId - * @param $storages - * @return \OCP\Files\Config\IMountProvider - */ - protected function getMountProvider($userId, $storages) { - $mounts = []; - foreach ($storages as $mountPoint => $storage) { - $mounts[] = new MountPoint($storage, $mountPoint); - } - $provider = $this->getMock('\OCP\Files\Config\IMountProvider'); - $provider->expects($this->any()) - ->method('getMountsForUser') - ->will($this->returnCallback(function (IUser $user) use ($userId, $mounts) { - if ($user->getUID() === $userId) { - return $mounts; - } else { - return []; - } - })); - return $provider; - } - protected function setUp() { parent::setUp(); @@ -76,9 +51,7 @@ abstract class RequestTest extends TestCase { protected function setupUser($name, $password) { $this->createUser($name, $password); - \OC::$server->getMountProviderCollection()->registerProvider($this->getMountProvider($name, [ - '/' . $name => '\OC\Files\Storage\Temporary' - ])); + $this->registerMount($name, '\OC\Files\Storage\Temporary', '/' . $name); $this->loginAsUser($name); return new View('/' . $name . '/files'); } diff --git a/tests/lib/traits/mountprovidertrait.php b/tests/lib/traits/mountprovidertrait.php new file mode 100644 index 0000000000..66eca1597c --- /dev/null +++ b/tests/lib/traits/mountprovidertrait.php @@ -0,0 +1,56 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test\Traits; + +use OC\Files\Mount\MountPoint; +use OC\Files\Storage\StorageFactory; +use OCP\IUser; + +/** + * Allow setting mounts for users + */ +trait MountProviderTrait { + /** + * @var \OCP\Files\Config\IMountProvider + */ + protected $mountProvider; + + /** + * @var \OC\Files\Storage\StorageFactory + */ + protected $storageFactory; + + protected $mounts = []; + + protected function registerMount($userId, $storage, $mountPoint, $arguments = null) { + if (!isset($this->mounts[$userId])) { + $this->mounts[$userId] = []; + } + $this->mounts[$userId][] = new MountPoint($storage, $mountPoint, $arguments, $this->storageFactory); + } + + protected function registerStorageWrapper($name, $wrapper) { + $this->storageFactory->addStorageWrapper($name, $wrapper); + } + + protected function setUpMountProviderTrait() { + $this->storageFactory = new StorageFactory(); + $this->mountProvider = $this->getMock('\OCP\Files\Config\IMountProvider'); + $this->mountProvider->expects($this->any()) + ->method('getMountsForUser') + ->will($this->returnCallback(function (IUser $user) { + if (isset($this->mounts[$user->getUID()])) { + return $this->mounts[$user->getUID()]; + } else { + return []; + } + })); + \OC::$server->getMountProviderCollection()->registerProvider($this->mountProvider); + } +}