Commit 3ed6ed3c authored by Robin Appelman's avatar Robin Appelman
Browse files

Force test cases using background commands to handle setting up the filesystem

parent 7ec8f12a
......@@ -11,8 +11,12 @@ namespace OC\Command;
use OCP\IUser;
trait FileAccess {
protected function getUserFolder(IUser $user) {
protected function setupFS(IUser $user){
\OC_Util::setupFS($user->getUID());
}
protected function getUserFolder(IUser $user) {
$this->setupFS($user);
return \OC::$server->getUserFolder($user->getUID());
}
}
......@@ -15,7 +15,7 @@ class QueueBus implements IBus {
/**
* @var (ICommand|callable)[]
*/
private $queue;
private $queue = [];
/**
* Schedule a command to be fired
......
......@@ -23,6 +23,7 @@
namespace Test;
use OC\Command\QueueBus;
use OC\Files\Filesystem;
use OCP\Security\ISecureRandom;
abstract class TestCase extends \PHPUnit_Framework_TestCase {
......@@ -34,7 +35,7 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase {
protected function setUp() {
// overwrite the command bus with one we can run ourselves
$this->commandBus = new QueueBus();
\OC::$server->registerService('AsyncCommandBus', function(){
\OC::$server->registerService('AsyncCommandBus', function () {
return $this->commandBus;
});
}
......@@ -190,6 +191,20 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase {
* Run all commands pushed to the bus
*/
protected function runCommands() {
// get the user for which the fs is setup
$view = Filesystem::getView();
if ($view) {
list(, $user) = explode('/', $view->getRoot());
} else {
$user = null;
}
\OC_Util::tearDownFS(); // command cant reply on the fs being setup
$this->commandBus->run();
\OC_Util::tearDownFS();
if ($user) {
\OC_Util::setupFS($user);
}
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment