diff options
-rw-r--r-- | lib/private/command/fileaccess.php | 18 | ||||
-rw-r--r-- | tests/lib/command/asyncbus.php | 25 |
2 files changed, 43 insertions, 0 deletions
diff --git a/lib/private/command/fileaccess.php b/lib/private/command/fileaccess.php new file mode 100644 index 00000000000..5de00862fac --- /dev/null +++ b/lib/private/command/fileaccess.php @@ -0,0 +1,18 @@ +<?php +/** + * Copyright (c) 2015 Robin Appelman <icewind@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Command; + +use OCP\IUser; + +trait FileAccess { + protected function getUserFolder(IUser $user) { + \OC_Util::setupFS($user->getUID()); + return \OC::$server->getUserFolder($user->getUID()); + } +} diff --git a/tests/lib/command/asyncbus.php b/tests/lib/command/asyncbus.php index 030c416953d..d22ce34d839 100644 --- a/tests/lib/command/asyncbus.php +++ b/tests/lib/command/asyncbus.php @@ -9,6 +9,7 @@ namespace Test\Command; +use OC\Command\FileAccess; use OCP\Command\ICommand; use Test\BackgroundJob\DummyJobList; use Test\TestCase; @@ -31,6 +32,14 @@ class StateFullCommand implements ICommand { } } +class FilesystemCommand implements ICommand { + use FileAccess; + + public function handle() { + AsyncBus::$lastCommand = 'FileAccess'; + } +} + function basicFunction() { AsyncBus::$lastCommand = 'function'; } @@ -133,6 +142,22 @@ class AsyncBus extends TestCase { $this->assertEquals('closure-bar', self::$lastCommand); } + public function testFileFileAccessCommand() { + $this->bus->push(new FilesystemCommand()); + $this->assertEquals('', self::$lastCommand); + $this->runJobs(); + $this->assertEquals('FileAccess', self::$lastCommand); + } + + public function testFileFileAccessCommandSync() { + $this->bus->requireSync('\OC\Command\FileAccess'); + $this->bus->push(new FilesystemCommand()); + $this->assertEquals('FileAccess', self::$lastCommand); + self::$lastCommand = ''; + $this->runJobs(); + $this->assertEquals('', self::$lastCommand); + } + private function runJobs() { $jobs = $this->jobList->getAll(); |