Add FileAccess trait for commands

This commit is contained in:
Robin Appelman 2015-02-23 15:26:12 +01:00
parent 8213f8d67d
commit a39c7bf464
2 changed files with 43 additions and 0 deletions

View File

@ -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());
}
}

View File

@ -9,6 +9,7 @@
namespace Test\Command; namespace Test\Command;
use OC\Command\FileAccess;
use OCP\Command\ICommand; use OCP\Command\ICommand;
use Test\BackgroundJob\DummyJobList; use Test\BackgroundJob\DummyJobList;
use Test\TestCase; 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() { function basicFunction() {
AsyncBus::$lastCommand = 'function'; AsyncBus::$lastCommand = 'function';
} }
@ -133,6 +142,22 @@ class AsyncBus extends TestCase {
$this->assertEquals('closure-bar', self::$lastCommand); $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() { private function runJobs() {
$jobs = $this->jobList->getAll(); $jobs = $this->jobList->getAll();