Browse Source

Correctly restore previous root mount point after testing

tags/v8.0.0alpha1
Joas Schilling 9 years ago
parent
commit
6625d5c88f

+ 12
- 2
apps/files/tests/ajax_rename.php View File

*/ */
private $files; private $files;


function setUp() {
/** @var \OC\Files\Storage\Storage */
private $originalStorage;

protected function setUp() {
parent::setUp();

$this->originalStorage = \OC\Files\Filesystem::getStorage('/');

// mock OC_L10n // mock OC_L10n
if (!self::$user) { if (!self::$user) {
self::$user = uniqid(); self::$user = uniqid();
$this->files = new \OCA\Files\App($viewMock, $l10nMock); $this->files = new \OCA\Files\App($viewMock, $l10nMock);
} }


function tearDown() {
protected function tearDown() {
$result = \OC_User::deleteUser(self::$user); $result = \OC_User::deleteUser(self::$user);
$this->assertTrue($result); $this->assertTrue($result);
\OC\Files\Filesystem::tearDown(); \OC\Files\Filesystem::tearDown();
\OC\Files\Filesystem::mount($this->originalStorage, array(), '/');

parent::tearDown();
} }


/** /**

+ 11
- 0
tests/lib/cache/file.php View File

namespace Test\Cache; namespace Test\Cache;


class FileCache extends \Test_Cache { class FileCache extends \Test_Cache {
/** @var string */
private $user; private $user;
/** @var string */
private $datadir; private $datadir;
/** @var \OC\Files\Storage\Storage */
private $storage;


function skip() { function skip() {
//$this->skipUnless(OC_User::isLoggedIn()); //$this->skipUnless(OC_User::isLoggedIn());
//} //}


//set up temporary storage //set up temporary storage
$this->storage = \OC\Files\Filesystem::getStorage('/');
\OC\Files\Filesystem::clearMounts(); \OC\Files\Filesystem::clearMounts();
$storage = new \OC\Files\Storage\Temporary(array()); $storage = new \OC\Files\Storage\Temporary(array());
\OC\Files\Filesystem::mount($storage,array(),'/'); \OC\Files\Filesystem::mount($storage,array(),'/');
public function tearDown() { public function tearDown() {
\OC_User::setUserId($this->user); \OC_User::setUserId($this->user);
\OC_Config::setValue('cachedirectory', $this->datadir); \OC_Config::setValue('cachedirectory', $this->datadir);

// Restore the original mount point
\OC\Files\Filesystem::clearMounts();
\OC\Files\Filesystem::mount($this->storage, array(), '/');

parent::tearDown();
} }
} }

+ 12
- 0
tests/lib/cache/usercache.php View File

namespace Test\Cache; namespace Test\Cache;


class UserCache extends \Test_Cache { class UserCache extends \Test_Cache {
/** @var string */
private $user; private $user;
/** @var string */
private $datadir; private $datadir;
/** @var \OC\Files\Storage\Storage */
private $storage;


public function setUp() { public function setUp() {
//clear all proxies and hooks so we can do clean testing //clear all proxies and hooks so we can do clean testing
//} //}


//set up temporary storage //set up temporary storage
$this->storage = \OC\Files\Filesystem::getStorage('/');
\OC\Files\Filesystem::clearMounts(); \OC\Files\Filesystem::clearMounts();
$storage = new \OC\Files\Storage\Temporary(array()); $storage = new \OC\Files\Storage\Temporary(array());
\OC\Files\Filesystem::mount($storage,array(),'/'); \OC\Files\Filesystem::mount($storage,array(),'/');


public function tearDown() { public function tearDown() {
\OC_User::setUserId($this->user); \OC_User::setUserId($this->user);
\OC_Config::setValue('cachedirectory', $this->datadir);

// Restore the original mount point
\OC\Files\Filesystem::clearMounts();
\OC\Files\Filesystem::mount($this->storage, array(), '/');

parent::tearDown();
} }
} }

+ 14
- 1
tests/lib/files/cache/updater.php View File

*/ */
protected $updater; protected $updater;


public function setUp() {
/** @var \OC\Files\Storage\Storage */
private $originalStorage;

protected function setUp() {
parent::setUp();

$this->originalStorage = Filesystem::getStorage('/');
$this->storage = new Temporary(array()); $this->storage = new Temporary(array());
Filesystem::clearMounts(); Filesystem::clearMounts();
Filesystem::mount($this->storage, array(), '/'); Filesystem::mount($this->storage, array(), '/');
$this->cache = $this->storage->getCache(); $this->cache = $this->storage->getCache();
} }


protected function tearDown() {
Filesystem::clearMounts();
Filesystem::mount($this->originalStorage, array(), '/');

parent::tearDown();
}

public function testNewFile() { public function testNewFile() {
$this->storage->file_put_contents('foo.txt', 'bar'); $this->storage->file_put_contents('foo.txt', 'bar');
$this->assertFalse($this->cache->inCache('foo.txt')); $this->assertFalse($this->cache->inCache('foo.txt'));

+ 7
- 2
tests/lib/files/cache/updaterlegacy.php View File

*/ */
private $cache; private $cache;


/** @var \OC\Files\Storage\Storage */
private $originalStorage;

private static $user; private static $user;


public function setUp() { public function setUp() {
$this->scanner->scan(''); $this->scanner->scan('');
$this->cache = $this->storage->getCache(); $this->cache = $this->storage->getCache();


\OC\Files\Filesystem::tearDown();
$this->originalStorage = Filesystem::getStorage('/');
Filesystem::tearDown();
if (!self::$user) { if (!self::$user) {
self::$user = uniqid(); self::$user = uniqid();
} }
\OC_User::createUser(self::$user, 'password'); \OC_User::createUser(self::$user, 'password');
\OC_User::setUserId(self::$user); \OC_User::setUserId(self::$user);


\OC\Files\Filesystem::init(self::$user, '/' . self::$user . '/files');
Filesystem::init(self::$user, '/' . self::$user . '/files');


Filesystem::clearMounts(); Filesystem::clearMounts();
Filesystem::mount($this->storage, array(), '/' . self::$user . '/files'); Filesystem::mount($this->storage, array(), '/' . self::$user . '/files');
$result = \OC_User::deleteUser(self::$user); $result = \OC_User::deleteUser(self::$user);
$this->assertTrue($result); $this->assertTrue($result);
Filesystem::tearDown(); Filesystem::tearDown();
Filesystem::mount($this->originalStorage, array(), '/');
// reset app files_encryption // reset app files_encryption
if ($this->stateFilesEncryption) { if ($this->stateFilesEncryption) {
\OC_App::enable('files_encryption'); \OC_App::enable('files_encryption');

+ 13
- 2
tests/lib/files/cache/watcher.php View File

*/ */
private $storages = array(); private $storages = array();


public function setUp() {
/** @var \OC\Files\Storage\Storage */
private $originalStorage;

protected function setUp() {
parent::setUp();

$this->originalStorage = \OC\Files\Filesystem::getStorage('/');
\OC\Files\Filesystem::clearMounts(); \OC\Files\Filesystem::clearMounts();
} }


public function tearDown() {
protected function tearDown() {
foreach ($this->storages as $storage) { foreach ($this->storages as $storage) {
$cache = $storage->getCache(); $cache = $storage->getCache();
$ids = $cache->getAll(); $ids = $cache->getAll();
$cache->clear(); $cache->clear();
} }

\OC\Files\Filesystem::clearMounts();
\OC\Files\Filesystem::mount($this->originalStorage, array(), '/');

parent::tearDown();
} }


/** /**

+ 12
- 3
tests/lib/files/etagtest.php View File

use OC\Files\Filesystem; use OC\Files\Filesystem;
use OCP\Share; use OCP\Share;


class EtagTest extends \PHPUnit_Framework_TestCase {
class EtagTest extends \Test\TestCase {
private $datadir; private $datadir;


private $tmpDir; private $tmpDir;
*/ */
private $userBackend; private $userBackend;


public function setUp() {
/** @var \OC\Files\Storage\Storage */
private $originalStorage;

protected function setUp() {
parent::setUp();

\OC_Hook::clear('OC_Filesystem', 'setup'); \OC_Hook::clear('OC_Filesystem', 'setup');
\OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup'); \OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup');
\OCP\Share::registerBackend('file', 'OC_Share_Backend_File'); \OCP\Share::registerBackend('file', 'OC_Share_Backend_File');


$this->userBackend = new \OC_User_Dummy(); $this->userBackend = new \OC_User_Dummy();
\OC_User::useBackend($this->userBackend); \OC_User::useBackend($this->userBackend);
$this->originalStorage = \OC\Files\Filesystem::getStorage('/');
\OC_Util::tearDownFS(); \OC_Util::tearDownFS();
} }


public function tearDown() {
protected function tearDown() {
\OC_Config::setValue('datadirectory', $this->datadir); \OC_Config::setValue('datadirectory', $this->datadir);
\OC_User::setUserId($this->uid); \OC_User::setUserId($this->uid);
\OC_Util::setupFS($this->uid); \OC_Util::setupFS($this->uid);
\OC\Files\Filesystem::mount($this->originalStorage, array(), '/');

parent::tearDown();
} }


public function testNewUser() { public function testNewUser() {

+ 14
- 7
tests/lib/files/filesystem.php View File



namespace Test\Files; namespace Test\Files;


class Filesystem extends \PHPUnit_Framework_TestCase {
class Filesystem extends \Test\TestCase {
/** /**
* @var array tmpDirs * @var array tmpDirs
*/ */
private $tmpDirs = array(); private $tmpDirs = array();


/** @var \OC\Files\Storage\Storage */
private $originalStorage;

/** /**
* @return array * @return array
*/ */
return array('datadir' => $dir); return array('datadir' => $dir);
} }


public function tearDown() {
protected function setUp() {
parent::setUp();

$this->originalStorage = \OC\Files\Filesystem::getStorage('/');
\OC_User::setUserId('');
\OC\Files\Filesystem::clearMounts();
}

protected function tearDown() {
foreach ($this->tmpDirs as $dir) { foreach ($this->tmpDirs as $dir) {
\OC_Helper::rmdirr($dir); \OC_Helper::rmdirr($dir);
} }
\OC\Files\Filesystem::clearMounts(); \OC\Files\Filesystem::clearMounts();
\OC\Files\Filesystem::mount($this->originalStorage, array(), '/');
\OC_User::setUserId(''); \OC_User::setUserId('');
} }


public function setUp() {
\OC_User::setUserId('');
\OC\Files\Filesystem::clearMounts();
}

public function testMount() { public function testMount() {
\OC\Files\Filesystem::mount('\OC\Files\Storage\Local', self::getStorageData(), '/'); \OC\Files\Filesystem::mount('\OC\Files\Storage\Local', self::getStorageData(), '/');
$this->assertEquals('/', \OC\Files\Filesystem::getMountPoint('/')); $this->assertEquals('/', \OC\Files\Filesystem::getMountPoint('/'));

+ 12
- 2
tests/lib/files/node/integration.php View File

*/ */
private $root; private $root;


/** @var \OC\Files\Storage\Storage */
private $originalStorage;

/** /**
* @var \OC\Files\Storage\Storage[] * @var \OC\Files\Storage\Storage[]
*/ */
*/ */
private $view; private $view;


public function setUp() {
protected function setUp() {
parent::setUp();

$this->originalStorage = \OC\Files\Filesystem::getStorage('/');
\OC\Files\Filesystem::init('', ''); \OC\Files\Filesystem::init('', '');
\OC\Files\Filesystem::clearMounts(); \OC\Files\Filesystem::clearMounts();
$manager = \OC\Files\Filesystem::getMountManager(); $manager = \OC\Files\Filesystem::getMountManager();
$this->root->mount($subStorage, '/substorage/'); $this->root->mount($subStorage, '/substorage/');
} }


public function tearDown() {
protected function tearDown() {
foreach ($this->storages as $storage) { foreach ($this->storages as $storage) {
$storage->getCache()->clear(); $storage->getCache()->clear();
} }
\OC\Files\Filesystem::clearMounts(); \OC\Files\Filesystem::clearMounts();

\OC\Files\Filesystem::mount($this->originalStorage, array(), '/');

parent::tearDown();
} }


public function testBasicFile() { public function testBasicFile() {

+ 17
- 1
tests/lib/files/utils/scanner.php View File

} }
} }


class Scanner extends \PHPUnit_Framework_TestCase {

class Scanner extends \Test\TestCase {
/** @var \OC\Files\Storage\Storage */
private $originalStorage;

protected function setUp() {
parent::setUp();

$this->originalStorage = \OC\Files\Filesystem::getStorage('/');
}

protected function tearDown() {
\OC\Files\Filesystem::mount($this->originalStorage, array(), '/');

parent::tearDown();
}

public function testReuseExistingRoot() { public function testReuseExistingRoot() {
$storage = new Temporary(array()); $storage = new Temporary(array());
$mount = new Mount($storage, ''); $mount = new Mount($storage, '');

+ 14
- 2
tests/lib/files/view.php View File

private $storages = array(); private $storages = array();
private $user; private $user;


/** @var \OC\Files\Storage\Storage */
private $tempStorage; private $tempStorage;


public function setUp() {
/** @var \OC\Files\Storage\Storage */
private $originalStorage;

protected function setUp() {
parent::setUp();

\OC_User::clearBackends(); \OC_User::clearBackends();
\OC_User::useBackend(new \OC_User_Dummy()); \OC_User::useBackend(new \OC_User_Dummy());


$this->user = \OC_User::getUser(); $this->user = \OC_User::getUser();
\OC_User::setUserId('test'); \OC_User::setUserId('test');


$this->originalStorage = \OC\Files\Filesystem::getStorage('/');
\OC\Files\Filesystem::clearMounts(); \OC\Files\Filesystem::clearMounts();


$this->tempStorage = null; $this->tempStorage = null;
} }


public function tearDown() {
protected function tearDown() {
\OC_User::setUserId($this->user); \OC_User::setUserId($this->user);
foreach ($this->storages as $storage) { foreach ($this->storages as $storage) {
$cache = $storage->getCache(); $cache = $storage->getCache();
if ($this->tempStorage && !\OC_Util::runningOnWindows()) { if ($this->tempStorage && !\OC_Util::runningOnWindows()) {
system('rm -rf ' . escapeshellarg($this->tempStorage->getDataDir())); system('rm -rf ' . escapeshellarg($this->tempStorage->getDataDir()));
} }

\OC\Files\Filesystem::clearMounts();
\OC\Files\Filesystem::mount($this->originalStorage, array(), '/');

parent::tearDown();
} }


/** /**

+ 15
- 4
tests/lib/helperstorage.php View File

/** /**
* Test the storage functions of OC_Helper * Test the storage functions of OC_Helper
*/ */
class Test_Helper_Storage extends PHPUnit_Framework_TestCase {

class Test_Helper_Storage extends \Test\TestCase {
/** @var string */
private $user; private $user;
/** @var \OC\Files\Storage\Storage */
private $storageMock; private $storageMock;
/** @var \OC\Files\Storage\Storage */
private $storage;

protected function setUp() {
parent::setUp();


public function setUp() {
$this->user = 'user_' . uniqid();
$this->user = $this->getUniqueID('user_');
\OC_User::createUser($this->user, $this->user); \OC_User::createUser($this->user, $this->user);


$this->storage = \OC\Files\Filesystem::getStorage('/');
\OC\Files\Filesystem::tearDown(); \OC\Files\Filesystem::tearDown();
\OC_User::setUserId($this->user); \OC_User::setUserId($this->user);
\OC\Files\Filesystem::init($this->user, '/' . $this->user . '/files'); \OC\Files\Filesystem::init($this->user, '/' . $this->user . '/files');
$this->storageMock = null; $this->storageMock = null;
} }


public function tearDown() {
protected function tearDown() {
$this->user = null; $this->user = null;


if ($this->storageMock) { if ($this->storageMock) {
$this->storageMock = null; $this->storageMock = null;
} }
\OC\Files\Filesystem::tearDown(); \OC\Files\Filesystem::tearDown();
\OC\Files\Filesystem::mount($this->storage, array(), '/');


\OC_User::setUserId(''); \OC_User::setUserId('');
\OC_User::deleteUser($this->user); \OC_User::deleteUser($this->user);
\OC_Preferences::deleteUser($this->user); \OC_Preferences::deleteUser($this->user);

parent::tearDown();
} }


/** /**

+ 22
- 14
tests/lib/migrate.php View File

public $users; public $users;
public $tmpfiles = array(); public $tmpfiles = array();


/** @var \OC\Files\Storage\Storage */
private $originalStorage;

protected function setUp() {
parent::setUp();

$this->originalStorage = \OC\Files\Filesystem::getStorage('/');
}

protected function tearDown() {
$u = new OC_User();
foreach($this->users as $user) {
$u->deleteUser($user);
}
foreach($this->tmpfiles as $file) {
\OC_Helper::rmdirr($file);
}

\OC\Files\Filesystem::mount($this->originalStorage, array(), '/');
parent::tearDown();
}

/** /**
* Generates a test user and sets up their file system * Generates a test user and sets up their file system
* @return string the test users id * @return string the test users id
// Validate the export // Validate the export
$this->validateUserExport($user2, $user, json_decode($export)->data); $this->validateUserExport($user2, $user, json_decode($export)->data);
} }

public function tearDown() {
$u = new OC_User();
foreach($this->users as $user) {
$u->deleteUser($user);
}
foreach($this->tmpfiles as $file) {
\OC_Helper::rmdirr($file);
}
}




} }

+ 23
- 15
tests/lib/preview.php View File



namespace Test; namespace Test;


class Preview extends \PHPUnit_Framework_TestCase {
class Preview extends \Test\TestCase {


/** /**
* @var string * @var string
*/ */
private $rootView; private $rootView;


public function setUp() {
$this->user = $this->initFS();
/** @var \OC\Files\Storage\Storage */
private $originalStorage;

protected function setUp() {
parent::setUp();

$this->originalStorage = \OC\Files\Filesystem::getStorage('/');

// create a new user with his own filesystem view
// this gets called by each test in this test class
$this->user = $this->getUniqueID();
\OC_User::setUserId($this->user);
\OC\Files\Filesystem::init($this->user, '/' . $this->user . '/files');

\OC\Files\Filesystem::mount('OC\Files\Storage\Temporary', array(), '/');


$this->rootView = new \OC\Files\View(''); $this->rootView = new \OC\Files\View('');
$this->rootView->mkdir('/'.$this->user); $this->rootView->mkdir('/'.$this->user);
$this->rootView->mkdir('/'.$this->user.'/files'); $this->rootView->mkdir('/'.$this->user.'/files');
} }


protected function tearDown() {
\OC\Files\Filesystem::clearMounts();
\OC\Files\Filesystem::mount($this->originalStorage, array(), '/');

parent::tearDown();
}

public function testIsPreviewDeleted() { public function testIsPreviewDeleted() {


$sampleFile = '/'.$this->user.'/files/test.txt'; $sampleFile = '/'.$this->user.'/files/test.txt';
$this->assertEquals($this->user . '/' . \OC\Preview::THUMBNAILS_FOLDER . '/' . $fileId . '/150-150.png', $isCached); $this->assertEquals($this->user . '/' . \OC\Preview::THUMBNAILS_FOLDER . '/' . $fileId . '/150-150.png', $isCached);
} }
*/ */

private function initFS() {
// create a new user with his own filesystem view
// this gets called by each test in this test class
$user=uniqid();
\OC_User::setUserId($user);
\OC\Files\Filesystem::init($user, '/'.$user.'/files');

\OC\Files\Filesystem::mount('OC\Files\Storage\Temporary', array(), '/');
return $user;
}
} }

+ 5
- 0
tests/lib/streamwrappers.php View File

} }


public function testOC() { public function testOC() {
$originalStorage = \OC\Files\Filesystem::getStorage('/');
\OC\Files\Filesystem::clearMounts(); \OC\Files\Filesystem::clearMounts();

$storage = new \OC\Files\Storage\Temporary(array()); $storage = new \OC\Files\Storage\Temporary(array());
$storage->file_put_contents('foo.txt', 'asd'); $storage->file_put_contents('foo.txt', 'asd');
\OC\Files\Filesystem::mount($storage, array(), '/'); \OC\Files\Filesystem::mount($storage, array(), '/');


unlink('oc:///foo.txt'); unlink('oc:///foo.txt');
$this->assertEquals(array('.', '..', 'bar.txt'), scandir('oc:///')); $this->assertEquals(array('.', '..', 'bar.txt'), scandir('oc:///'));

\OC\Files\Filesystem::clearMounts();
\OC\Files\Filesystem::mount($originalStorage, array(), '/');
} }
} }

Loading…
Cancel
Save