summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/command/fileaccess.php18
-rw-r--r--tests/lib/command/asyncbus.php25
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();