]> source.dussan.org Git - nextcloud-server.git/commitdiff
Replace originalStorage in tests with a proper teardown
authorVincent Petry <pvince81@owncloud.com>
Wed, 8 Apr 2015 10:03:55 +0000 (12:03 +0200)
committerVincent Petry <pvince81@owncloud.com>
Wed, 8 Apr 2015 10:45:38 +0000 (12:45 +0200)
The purpose of $originalStorage in unit tests was to remount the old
root.
However that storage itself is already wrapped by storage wrapper, so
remounting it would rewrap the storage several times.

This fix makes use of "loginAsUser()" and "logout()" from the TestCase
class to properly initialize and cleanup the FS as expected.

13 files changed:
apps/files/tests/ajax_rename.php
apps/files_trashbin/tests/storage.php
tests/lib/files/cache/updater.php
tests/lib/files/cache/updaterlegacy.php
tests/lib/files/cache/watcher.php
tests/lib/files/etagtest.php
tests/lib/files/filesystem.php
tests/lib/files/node/integration.php
tests/lib/files/utils/scanner.php
tests/lib/files/view.php
tests/lib/preview.php
tests/lib/streamwrappers.php
tests/lib/testcase.php

index 789177bb3539ff040058aede9883bad04878e825..34e7f5085dd97845b10c9932e282cd24d965ea88 100644 (file)
@@ -38,21 +38,15 @@ class Test_OC_Files_App_Rename extends \Test\TestCase {
         */
        private $files;
 
-       private $originalStorage;
-
        protected function setUp() {
                parent::setUp();
 
-               $this->originalStorage = \OC\Files\Filesystem::getStorage('/');
-
                // mock OC_L10n
                if (!self::$user) {
                        self::$user = uniqid();
                }
                \OC_User::createUser(self::$user, 'password');
-               \OC_User::setUserId(self::$user);
-
-               \OC\Files\Filesystem::init(self::$user, '/' . self::$user . '/files');
+               $this->loginAsUser(self::$user);
 
                $l10nMock = $this->getMock('\OC_L10N', array('t'), array(), '', false);
                $l10nMock->expects($this->any())
@@ -72,9 +66,8 @@ class Test_OC_Files_App_Rename extends \Test\TestCase {
        protected function tearDown() {
                $result = \OC_User::deleteUser(self::$user);
                $this->assertTrue($result);
-               \OC\Files\Filesystem::tearDown();
-               \OC\Files\Filesystem::mount($this->originalStorage, array(), '/');
 
+               $this->logout();
                parent::tearDown();
        }
 
index f1ac055d3354c837f64512ec29967a0e5a7eecd5..d5bd7c318d3d50e7ea2a106ae754b61ea2f049aa 100644 (file)
@@ -34,11 +34,6 @@ class Storage extends \Test\TestCase {
         */
        private $user;
 
-       /**
-        * @var \OC\Files\Storage\Storage
-        **/
-       private $originalStorage;
-
        /**
         * @var \OC\Files\View
         */
@@ -61,8 +56,6 @@ class Storage extends \Test\TestCase {
                // this will setup the FS
                $this->loginAsUser($this->user);
 
-               $this->originalStorage = \OC\Files\Filesystem::getStorage('/');
-
                \OCA\Files_Trashbin\Storage::setupStorage();
 
                $this->rootView = new \OC\Files\View('/');
@@ -73,7 +66,6 @@ class Storage extends \Test\TestCase {
 
        protected function tearDown() {
                \OC\Files\Filesystem::getLoader()->removeStorageWrapper('oc_trashbin');
-               \OC\Files\Filesystem::mount($this->originalStorage, array(), '/');
                $this->logout();
                \OC_User::deleteUser($this->user);
                \OC_Hook::clear();
index 970af2e68df50728049242c6d7353ec2ea6deec4..7c3ebd5a6f9d340ca43b9df8e9eb5f4ccf046ea9 100644 (file)
@@ -33,16 +33,12 @@ class Updater extends \Test\TestCase {
         */
        protected $updater;
 
-       /** @var \OC\Files\Storage\Storage */
-       private $originalStorage;
-
        protected function setUp() {
                parent::setUp();
 
-               $this->originalStorage = Filesystem::getStorage('/');
+               $this->loginAsUser();
 
                $this->storage = new Temporary(array());
-               Filesystem::clearMounts();
                Filesystem::mount($this->storage, array(), '/');
                $this->view = new View('');
                $this->updater = new \OC\Files\Cache\Updater($this->view);
@@ -51,8 +47,8 @@ class Updater extends \Test\TestCase {
 
        protected function tearDown() {
                Filesystem::clearMounts();
-               Filesystem::mount($this->originalStorage, array(), '/');
 
+               $this->logout();
                parent::tearDown();
        }
 
index 6bdacbe34fe7e96977fe6fb45b6468f516abb383..f4d52e9a390716aeca3ea27c6ada7e060a556179 100644 (file)
@@ -27,9 +27,6 @@ class UpdaterLegacy extends \Test\TestCase {
         */
        private $cache;
 
-       /** @var \OC\Files\Storage\Storage */
-       private $originalStorage;
-
        private static $user;
 
        protected function setUp() {
@@ -48,14 +45,12 @@ class UpdaterLegacy extends \Test\TestCase {
                $this->scanner->scan('');
                $this->cache = $this->storage->getCache();
 
-               $this->originalStorage = Filesystem::getStorage('/');
-               Filesystem::tearDown();
                if (!self::$user) {
                        self::$user = $this->getUniqueID();
                }
 
                \OC_User::createUser(self::$user, 'password');
-               \OC_User::setUserId(self::$user);
+               $this->loginAsUser(self::$user);
 
                Filesystem::init(self::$user, '/' . self::$user . '/files');
 
@@ -71,9 +66,8 @@ class UpdaterLegacy extends \Test\TestCase {
                }
                $result = \OC_User::deleteUser(self::$user);
                $this->assertTrue($result);
-               Filesystem::tearDown();
-               Filesystem::mount($this->originalStorage, array(), '/');
 
+               $this->logout();
                parent::tearDown();
        }
 
index ee605c64e01993d23d7af1cfa1eaace2cd4f0899..e6947e36a17a27c970511236a5f42013d859d8fd 100644 (file)
@@ -15,14 +15,10 @@ class Watcher extends \Test\TestCase {
         */
        private $storages = array();
 
-       /** @var \OC\Files\Storage\Storage */
-       private $originalStorage;
-
        protected function setUp() {
                parent::setUp();
 
-               $this->originalStorage = \OC\Files\Filesystem::getStorage('/');
-               \OC\Files\Filesystem::clearMounts();
+               $this->loginAsUser();
        }
 
        protected function tearDown() {
@@ -32,9 +28,7 @@ class Watcher extends \Test\TestCase {
                        $cache->clear();
                }
 
-               \OC\Files\Filesystem::clearMounts();
-               \OC\Files\Filesystem::mount($this->originalStorage, array(), '/');
-
+               $this->logout();
                parent::tearDown();
        }
 
index eec24d9f4c6609b552f0d55df4c5e208806d977e..055927652bc747e43bb1969406285ae2a34ffce1 100644 (file)
@@ -16,16 +16,11 @@ class EtagTest extends \Test\TestCase {
 
        private $tmpDir;
 
-       private $uid;
-
        /**
         * @var \OC_User_Dummy $userBackend
         */
        private $userBackend;
 
-       /** @var \OC\Files\Storage\Storage */
-       private $originalStorage;
-
        protected function setUp() {
                parent::setUp();
 
@@ -37,21 +32,15 @@ class EtagTest extends \Test\TestCase {
                $this->datadir = \OC_Config::getValue('datadirectory');
                $this->tmpDir = \OC_Helper::tmpFolder();
                \OC_Config::setValue('datadirectory', $this->tmpDir);
-               $this->uid = \OC_User::getUser();
-               \OC_User::setUserId(null);
 
                $this->userBackend = new \OC_User_Dummy();
                \OC_User::useBackend($this->userBackend);
-               $this->originalStorage = \OC\Files\Filesystem::getStorage('/');
-               \OC_Util::tearDownFS();
        }
 
        protected function tearDown() {
                \OC_Config::setValue('datadirectory', $this->datadir);
-               \OC_User::setUserId($this->uid);
-               \OC_Util::setupFS($this->uid);
-               \OC\Files\Filesystem::mount($this->originalStorage, array(), '/');
 
+               $this->logout();
                parent::tearDown();
        }
 
@@ -59,9 +48,7 @@ class EtagTest extends \Test\TestCase {
                $user1 = $this->getUniqueID('user_');
                $this->userBackend->createUser($user1, '');
 
-               \OC_Util::tearDownFS();
-               \OC_User::setUserId($user1);
-               \OC_Util::setupFS($user1);
+               $this->loginAsUser($user1);
                Filesystem::mkdir('/folder');
                Filesystem::mkdir('/folder/subfolder');
                Filesystem::file_put_contents('/foo.txt', 'asd');
index 7bf59315d77d0de6ac6edaf3948526691d023180..98e96e0cc78a16b622244862119025e4a017da05 100644 (file)
@@ -28,9 +28,6 @@ class Filesystem extends \Test\TestCase {
         */
        private $tmpDirs = array();
 
-       /** @var \OC\Files\Storage\Storage */
-       private $originalStorage;
-
        /**
         * @return array
         */
@@ -42,20 +39,15 @@ class Filesystem extends \Test\TestCase {
 
        protected function setUp() {
                parent::setUp();
-
-               $this->originalStorage = \OC\Files\Filesystem::getStorage('/');
-               \OC_User::setUserId('');
-               \OC\Files\Filesystem::clearMounts();
+               $this->loginAsUser();
        }
 
        protected function tearDown() {
                foreach ($this->tmpDirs as $dir) {
                        \OC_Helper::rmdirr($dir);
                }
-               \OC\Files\Filesystem::clearMounts();
-               \OC\Files\Filesystem::mount($this->originalStorage, array(), '/');
-               \OC_User::setUserId('');
 
+               $this->logout();
                parent::tearDown();
        }
 
index 456a4a0e287f116e4a22891cd14a6c3b98413d2f..4e3626072401c4a21a10613910d37f333cfe3632 100644 (file)
@@ -20,9 +20,6 @@ class IntegrationTests extends \Test\TestCase {
         */
        private $root;
 
-       /** @var \OC\Files\Storage\Storage */
-       private $originalStorage;
-
        /**
         * @var \OC\Files\Storage\Storage[]
         */
@@ -36,9 +33,6 @@ class IntegrationTests extends \Test\TestCase {
        protected function setUp() {
                parent::setUp();
 
-               $this->originalStorage = \OC\Files\Filesystem::getStorage('/');
-               \OC\Files\Filesystem::init('', '');
-               \OC\Files\Filesystem::clearMounts();
                $manager = \OC\Files\Filesystem::getMountManager();
 
                \OC_Hook::clear('OC_Filesystem');
@@ -49,7 +43,8 @@ class IntegrationTests extends \Test\TestCase {
                \OC_Hook::connect('OC_Filesystem', 'post_touch', '\OC\Files\Cache\Updater', 'touchHook');
 
                $user = new User($this->getUniqueID('user'), new \OC_User_Dummy);
-               \OC_User::setUserId($user->getUID());
+               $this->loginAsUser($user->getUID());
+
                $this->view = new View();
                $this->root = new Root($manager, $this->view, $user);
                $storage = new Temporary(array());
@@ -64,9 +59,8 @@ class IntegrationTests extends \Test\TestCase {
                foreach ($this->storages as $storage) {
                        $storage->getCache()->clear();
                }
-               \OC\Files\Filesystem::clearMounts();
-               \OC\Files\Filesystem::mount($this->originalStorage, array(), '/');
 
+               $this->logout();
                parent::tearDown();
        }
 
index 65ddfe47514cca9a9880189644f86b1149c7f9d1..dfc683c1bcfc84b960389125794bdc1492fd3950 100644 (file)
@@ -39,18 +39,14 @@ class TestScanner extends \OC\Files\Utils\Scanner {
 }
 
 class Scanner extends \Test\TestCase {
-       /** @var \OC\Files\Storage\Storage */
-       private $originalStorage;
-
        protected function setUp() {
                parent::setUp();
 
-               $this->originalStorage = \OC\Files\Filesystem::getStorage('/');
+               $this->loginAsUser();
        }
 
        protected function tearDown() {
-               \OC\Files\Filesystem::mount($this->originalStorage, array(), '/');
-
+               $this->logout();
                parent::tearDown();
        }
 
index cd9f2d4afd162d10281f8ab66261f50e59003410..2ea9e8de78f2c2b6cab13bbcd1a910c5be3d213a 100644 (file)
@@ -27,9 +27,6 @@ class View extends \Test\TestCase {
        /** @var \OC\Files\Storage\Storage */
        private $tempStorage;
 
-       /** @var \OC\Files\Storage\Storage */
-       private $originalStorage;
-
        protected function setUp() {
                parent::setUp();
 
@@ -39,9 +36,10 @@ class View extends \Test\TestCase {
                //login
                \OC_User::createUser('test', 'test');
                $this->user = \OC_User::getUser();
-               \OC_User::setUserId('test');
 
-               $this->originalStorage = \OC\Files\Filesystem::getStorage('/');
+               $this->loginAsUser('test');
+               // clear mounts but somehow keep the root storage
+               // that was initialized above...
                \OC\Files\Filesystem::clearMounts();
 
                $this->tempStorage = null;
@@ -59,9 +57,7 @@ class View extends \Test\TestCase {
                        system('rm -rf ' . escapeshellarg($this->tempStorage->getDataDir()));
                }
 
-               \OC\Files\Filesystem::clearMounts();
-               \OC\Files\Filesystem::mount($this->originalStorage, array(), '/');
-
+               $this->logout();
                parent::tearDown();
        }
 
index 003ecedb65a034b23b56d1ee423a9d2c54b34ce2..ea9de9b777e54c92ab2147ed0d7e67176b021aaa 100644 (file)
@@ -26,6 +26,8 @@ class Preview extends TestCase {
        protected function setUp() {
                parent::setUp();
 
+               // FIXME: use proper tearDown with $this->loginAsUser() and $this->logout()
+               // (would currently break the tests for some reason)
                $this->originalStorage = \OC\Files\Filesystem::getStorage('/');
 
                // create a new user with his own filesystem view
index fc3d02acae7218e1b65e2273c71c2cdccfdcabad..6216c5a4be89023598a2fbe21fbc0166591771b6 100644 (file)
@@ -72,6 +72,8 @@ class Test_StreamWrappers extends \Test\TestCase {
        }
 
        public function testOC() {
+               // FIXME: use proper tearDown with $this->loginAsUser() and $this->logout()
+               // (would currently break the tests for some reason)
                $originalStorage = \OC\Files\Filesystem::getStorage('/');
                \OC\Files\Filesystem::clearMounts();
 
index a83be713194a91ca6c331889fbd57edce283645f..e66dfb13353244a8ea307adc4e005d80758ef1fc 100644 (file)
@@ -167,9 +167,9 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase {
         * Login and setup FS as a given user,
         * sets the given user as the current user.
         *
-        * @param string $user user id
+        * @param string $user user id or empty for a generic FS
         */
-       static protected function loginAsUser($user) {
+       static protected function loginAsUser($user = '') {
                self::logout();
                \OC\Files\Filesystem::tearDown();
                \OC_User::setUserId($user);