From a39c7bf4643fdaa17e62ea503fede1c2f4a30d35 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 23 Feb 2015 15:26:12 +0100 Subject: [PATCH] Add FileAccess trait for commands --- lib/private/command/fileaccess.php | 18 ++++++++++++++++++ tests/lib/command/asyncbus.php | 25 +++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 lib/private/command/fileaccess.php 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 @@ + + * 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(); -- 2.39.5