Browse Source

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

tags/v8.1.0alpha1
Robin Appelman 9 years ago
parent
commit
3ed6ed3c36
3 changed files with 22 additions and 3 deletions
  1. 5
    1
      lib/private/command/fileaccess.php
  2. 1
    1
      lib/private/command/queuebus.php
  3. 16
    1
      tests/lib/testcase.php

+ 5
- 1
lib/private/command/fileaccess.php View File

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

+ 1
- 1
lib/private/command/queuebus.php View File

@@ -15,7 +15,7 @@ class QueueBus implements IBus {
/**
* @var (ICommand|callable)[]
*/
private $queue;
private $queue = [];

/**
* Schedule a command to be fired

+ 16
- 1
tests/lib/testcase.php View File

@@ -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