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

remotes/origin/versions-cleanup
Robin Appelman 11 years ago
parent 7ec8f12ad4
commit 3ed6ed3c36
  1. 6
      lib/private/command/fileaccess.php
  2. 2
      lib/private/command/queuebus.php
  3. 17
      tests/lib/testcase.php

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

Loading…
Cancel
Save