From 75e8d2ad6e42693653cc1ab215bfc587997a70df Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Thu, 6 Nov 2014 16:53:35 +0100 Subject: [PATCH] Fix single run of encryption tests and usages of uniqid() and fopen() Conflicts: apps/files_encryption/tests/crypt.php apps/files_encryption/tests/helper.php apps/files_encryption/tests/hooks.php apps/files_encryption/tests/keymanager.php apps/files_encryption/tests/proxy.php apps/files_encryption/tests/share.php apps/files_encryption/tests/stream.php apps/files_encryption/tests/trashbin.php apps/files_encryption/tests/webdav.php --- apps/files_encryption/lib/stream.php | 1 + apps/files_encryption/tests/crypt.php | 91 ++++++++------- apps/files_encryption/tests/helper.php | 44 ++++--- apps/files_encryption/tests/hooks.php | 45 +++---- apps/files_encryption/tests/keymanager.php | 18 ++- apps/files_encryption/tests/proxy.php | 15 ++- apps/files_encryption/tests/share.php | 121 ++++++++++--------- apps/files_encryption/tests/stream.php | 33 ++++-- apps/files_encryption/tests/testcase.php | 53 +++++++++ apps/files_encryption/tests/trashbin.php | 130 +++++++++++---------- apps/files_encryption/tests/util.php | 55 +++++---- apps/files_encryption/tests/webdav.php | 21 ++-- 12 files changed, 375 insertions(+), 252 deletions(-) create mode 100644 apps/files_encryption/tests/testcase.php diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php index f74812a7253..8aa1daaa797 100644 --- a/apps/files_encryption/lib/stream.php +++ b/apps/files_encryption/lib/stream.php @@ -573,6 +573,7 @@ class Stream { \OC_FileProxy::$enabled = false; if ($this->rootView->file_exists($this->rawPath) && $this->size === 0) { + fclose($this->handle); $this->rootView->unlink($this->rawPath); } diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php index 5adab9bc920..eb4029e8e19 100755 --- a/apps/files_encryption/tests/crypt.php +++ b/apps/files_encryption/tests/crypt.php @@ -23,7 +23,7 @@ use OCA\Encryption; /** * Class Test_Encryption_Crypt */ -class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Crypt extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_CRYPT_USER1 = "test-crypt-user1"; @@ -42,6 +42,8 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { public $genPublicKey; public static function setUpBeforeClass() { + parent::setUpBeforeClass(); + // reset backend \OC_User::clearBackends(); \OC_User::useBackend('database'); @@ -57,10 +59,12 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { \OC_FileProxy::register(new OCA\Encryption\Proxy()); // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Crypt::TEST_ENCRYPTION_CRYPT_USER1, true); + self::loginHelper(\Test_Encryption_Crypt::TEST_ENCRYPTION_CRYPT_USER1, true); } - function setUp() { + protected function setUp() { + parent::setUp(); + // set user id \OC_User::setUserId(\Test_Encryption_Crypt::TEST_ENCRYPTION_CRYPT_USER1); $this->userId = \Test_Encryption_Crypt::TEST_ENCRYPTION_CRYPT_USER1; @@ -88,7 +92,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { \OC_App::disable('files_trashbin'); } - function tearDown() { + protected function tearDown() { // reset app files_trashbin if ($this->stateFilesTrashbin) { OC_App::enable('files_trashbin'); @@ -98,6 +102,8 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { $this->assertTrue(\OC_FileProxy::$enabled); \OCP\Config::deleteSystemValue('cipher'); + + parent::tearDown(); } public static function tearDownAfterClass() { @@ -111,12 +117,14 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { $view = new \OC\Files\View('/'); $view->rmdir('public-keys'); $view->rmdir('owncloud_private_key'); + + parent::tearDownAfterClass(); } /** * @medium */ - function testGenerateKey() { + public function testGenerateKey() { # TODO: use more accurate (larger) string length for test confirmation @@ -126,7 +134,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { } - function testDecryptPrivateKey() { + public function testDecryptPrivateKey() { // test successful decrypt $crypted = Encryption\Crypt::symmetricEncryptFileContent($this->genPrivateKey, 'hat'); @@ -148,7 +156,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testSymmetricEncryptFileContent() { + public function testSymmetricEncryptFileContent() { # TODO: search in keyfile for actual content as IV will ensure this test always passes @@ -166,7 +174,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testSymmetricEncryptFileContentAes128() { + public function testSymmetricEncryptFileContentAes128() { # TODO: search in keyfile for actual content as IV will ensure this test always passes @@ -184,9 +192,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testSymmetricStreamEncryptShortFileContent() { + public function testSymmetricStreamEncryptShortFileContent() { - $filename = 'tmp-' . uniqid() . '.test'; + $filename = 'tmp-' . $this->getUniqueID() . '.test'; $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/'. $filename, $this->dataShort); @@ -221,9 +229,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testSymmetricStreamEncryptShortFileContentAes128() { + public function testSymmetricStreamEncryptShortFileContentAes128() { - $filename = 'tmp-' . uniqid() . '.test'; + $filename = 'tmp-' . $this->getUniqueID() . '.test'; \OCP\Config::setSystemValue('cipher', 'AES-128-CFB'); @@ -266,10 +274,10 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { * @note If this test fails with truncate content, check that enough array slices are being rejoined to form $e, as the crypt.php file may have gotten longer and broken the manual * reassembly of its data */ - function testSymmetricStreamEncryptLongFileContent() { + public function testSymmetricStreamEncryptLongFileContent() { // Generate a a random filename - $filename = 'tmp-' . uniqid() . '.test'; + $filename = 'tmp-' . $this->getUniqueID() . '.test'; // Save long data as encrypted file using stream wrapper $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/' . $filename, $this->dataLong . $this->dataLong); @@ -310,10 +318,10 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { * @note If this test fails with truncate content, check that enough array slices are being rejoined to form $e, as the crypt.php file may have gotten longer and broken the manual * reassembly of its data */ - function testSymmetricStreamEncryptLongFileContentAes128() { + public function testSymmetricStreamEncryptLongFileContentAes128() { // Generate a a random filename - $filename = 'tmp-' . uniqid() . '.test'; + $filename = 'tmp-' . $this->getUniqueID() . '.test'; \OCP\Config::setSystemValue('cipher', 'AES-128-CFB'); @@ -358,10 +366,10 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { * @note If this test fails with truncate content, check that enough array slices are being rejoined to form $e, as the crypt.php file may have gotten longer and broken the manual * reassembly of its data */ - function testStreamDecryptLongFileContentWithoutHeader() { + public function testStreamDecryptLongFileContentWithoutHeader() { // Generate a a random filename - $filename = 'tmp-' . uniqid() . '.test'; + $filename = 'tmp-' . $this->getUniqueID() . '.test'; \OCP\Config::setSystemValue('cipher', 'AES-128-CFB'); @@ -406,7 +414,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testIsEncryptedContent() { + public function testIsEncryptedContent() { $this->assertFalse(Encryption\Crypt::isCatfileContent($this->dataUrl)); @@ -421,7 +429,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @large */ - function testMultiKeyEncrypt() { + public function testMultiKeyEncrypt() { # TODO: search in keyfile for actual content as IV will ensure this test always passes @@ -475,9 +483,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testRenameFile() { + public function testRenameFile() { - $filename = 'tmp-' . uniqid(); + $filename = 'tmp-' . $this->getUniqueID(); // Save long data as encrypted file using stream wrapper $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/' . $filename, $this->dataLong); @@ -490,7 +498,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataLong, $decrypt); - $newFilename = 'tmp-new-' . uniqid(); + $newFilename = 'tmp-new-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); $view->rename($filename, $newFilename); @@ -506,9 +514,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testMoveFileIntoFolder() { + public function testMoveFileIntoFolder() { - $filename = 'tmp-' . uniqid(); + $filename = 'tmp-' . $this->getUniqueID(); // Save long data as encrypted file using stream wrapper $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/' . $filename, $this->dataLong); @@ -521,8 +529,8 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataLong, $decrypt); - $newFolder = '/newfolder' . uniqid(); - $newFilename = 'tmp-new-' . uniqid(); + $newFolder = '/newfolder' . $this->getUniqueID(); + $newFilename = 'tmp-new-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); $view->mkdir($newFolder); $view->rename($filename, $newFolder . '/' . $newFilename); @@ -539,12 +547,12 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testMoveFolder() { + public function testMoveFolder() { $view = new \OC\Files\View('/' . $this->userId . '/files'); - $filename = '/tmp-' . uniqid(); - $folder = '/folder' . uniqid(); + $filename = '/tmp-' . $this->getUniqueID(); + $folder = '/folder' . $this->getUniqueID(); $view->mkdir($folder); @@ -559,7 +567,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataLong, $decrypt); - $newFolder = '/newfolder/subfolder' . uniqid(); + $newFolder = '/newfolder/subfolder' . $this->getUniqueID(); $view->mkdir('/newfolder'); $view->rename($folder, $newFolder); @@ -577,8 +585,8 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testChangePassphrase() { - $filename = 'tmp-' . uniqid(); + public function testChangePassphrase() { + $filename = 'tmp-' . $this->getUniqueID(); // Save long data as encrypted file using stream wrapper $cryptedFile = file_put_contents('crypt:///' . $this->userId . '/files/' . $filename, $this->dataLong); @@ -614,9 +622,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testViewFilePutAndGetContents() { + public function testViewFilePutAndGetContents() { - $filename = '/tmp-' . uniqid(); + $filename = '/tmp-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); // Save short data as encrypted file using stream wrapper @@ -648,8 +656,8 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @large */ - function testTouchExistingFile() { - $filename = '/tmp-' . uniqid(); + public function testTouchExistingFile() { + $filename = '/tmp-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); // Save short data as encrypted file using stream wrapper @@ -672,8 +680,8 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testTouchFile() { - $filename = '/tmp-' . uniqid(); + public function testTouchFile() { + $filename = '/tmp-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); $view->touch($filename); @@ -696,8 +704,8 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { /** * @medium */ - function testFopenFile() { - $filename = '/tmp-' . uniqid(); + public function testFopenFile() { + $filename = '/tmp-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); // Save short data as encrypted file using stream wrapper @@ -714,6 +722,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataShort, $decrypt); // tear down + fclose($handle); $view->unlink($filename); } diff --git a/apps/files_encryption/tests/helper.php b/apps/files_encryption/tests/helper.php index df7ff8cdb11..9c6d165dc5d 100644 --- a/apps/files_encryption/tests/helper.php +++ b/apps/files_encryption/tests/helper.php @@ -5,35 +5,40 @@ * later. * See the COPYING-README file. */ - - require_once __DIR__ . '/../lib/helper.php'; -require_once __DIR__ . '/util.php'; use OCA\Encryption; /** * Class Test_Encryption_Helper */ -class Test_Encryption_Helper extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Helper extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_HELPER_USER1 = "test-helper-user1"; const TEST_ENCRYPTION_HELPER_USER2 = "test-helper-user2"; - public function setUp() { + protected function setUpUsers() { // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER2, true); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER1, true); + self::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER2, true); + self::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER1, true); } - public function tearDown() { + protected function cleanUpUsers() { // cleanup test user \OC_User::deleteUser(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER1); \OC_User::deleteUser(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER2); } - public static function tearDownAfterClass() { + public static function setupHooks() { + // Filesystem related hooks + \OCA\Encryption\Helper::registerFilesystemHooks(); + // clear and register hooks + \OC_FileProxy::clearProxies(); + \OC_FileProxy::register(new OCA\Encryption\Proxy()); + } + + public static function tearDownAfterClass() { \OC_Hook::clear(); \OC_FileProxy::clearProxies(); @@ -41,6 +46,8 @@ class Test_Encryption_Helper extends \PHPUnit_Framework_TestCase { $view = new \OC\Files\View('/'); $view->rmdir('public-keys'); $view->rmdir('owncloud_private_key'); + + parent::tearDownAfterClass(); } /** @@ -92,19 +99,20 @@ class Test_Encryption_Helper extends \PHPUnit_Framework_TestCase { } function testGetUser() { + self::setUpUsers(); $path1 = "/" . self::TEST_ENCRYPTION_HELPER_USER1 . "/files/foo/bar.txt"; $path2 = "/" . self::TEST_ENCRYPTION_HELPER_USER1 . "/cache/foo/bar.txt"; $path3 = "/" . self::TEST_ENCRYPTION_HELPER_USER2 . "/thumbnails/foo"; $path4 ="/" . "/" . self::TEST_ENCRYPTION_HELPER_USER1; - \Test_Encryption_Util::loginHelper(self::TEST_ENCRYPTION_HELPER_USER1); + self::loginHelper(self::TEST_ENCRYPTION_HELPER_USER1); // if we are logged-in every path should return the currently logged-in user $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Encryption\Helper::getUser($path3)); // now log out - \Test_Encryption_Util::logoutHelper(); + self::logoutHelper(); // now we should only get the user from /user/files and user/cache paths $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Encryption\Helper::getUser($path1)); @@ -114,12 +122,13 @@ class Test_Encryption_Helper extends \PHPUnit_Framework_TestCase { $this->assertFalse(Encryption\Helper::getUser($path4)); // Log-in again - \Test_Encryption_Util::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER1); + self::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER1); + self::cleanUpUsers(); } function userNamesProvider() { return array( - array('testuser' . uniqid()), + array('testuser' . $this->getUniqueID()), array('user.name.with.dots'), ); } @@ -130,12 +139,13 @@ class Test_Encryption_Helper extends \PHPUnit_Framework_TestCase { * @dataProvider userNamesProvider */ function testFindShareKeys($userName) { + self::setUpUsers(); // note: not using dataProvider as we want to make // sure that the correct keys are match and not any // other ones that might happen to have similar names - \Test_Encryption_Util::setupHooks(); - \Test_Encryption_Util::loginHelper($userName, true); - $testDir = 'testFindShareKeys' . uniqid() . '/'; + self::setupHooks(); + self::loginHelper($userName, true); + $testDir = 'testFindShareKeys' . $this->getUniqueID() . '/'; $baseDir = $userName . '/files/' . $testDir; $fileList = array( 't est.txt', @@ -166,6 +176,6 @@ class Test_Encryption_Helper extends \PHPUnit_Framework_TestCase { $result ); } + self::cleanUpUsers(); } - } diff --git a/apps/files_encryption/tests/hooks.php b/apps/files_encryption/tests/hooks.php index c7353deee22..1ff3ac6619b 100644 --- a/apps/files_encryption/tests/hooks.php +++ b/apps/files_encryption/tests/hooks.php @@ -26,7 +26,6 @@ require_once __DIR__ . '/../lib/keymanager.php'; require_once __DIR__ . '/../lib/stream.php'; require_once __DIR__ . '/../lib/util.php'; require_once __DIR__ . '/../appinfo/app.php'; -require_once __DIR__ . '/util.php'; use OCA\Encryption; @@ -34,16 +33,16 @@ use OCA\Encryption; * Class Test_Encryption_Hooks * this class provide basic hook app tests */ -class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Hooks extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_HOOKS_USER1 = "test-encryption-hooks-user1.dot"; const TEST_ENCRYPTION_HOOKS_USER2 = "test-encryption-hooks-user2.dot"; - /** - * @var \OC\Files\View - */ + /** @var \OC\Files\View */ public $user1View; // view on /data/user1/files + /** @var \OC\Files\View */ public $user2View; // view on /data/user2/files + /** @var \OC\Files\View */ public $rootView; // view on /data/user public $data; public $filename; @@ -52,6 +51,8 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { private static $testFiles; public static function setUpBeforeClass() { + parent::setUpBeforeClass(); + // note: not using a data provider because these // files all need to coexist to make sure the // share keys are found properly (pattern matching) @@ -92,13 +93,15 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { \OC_FileProxy::register(new OCA\Encryption\Proxy()); // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1, true); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2, true); + self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1, true); + self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2, true); } - function setUp() { + protected function setUp() { + parent::setUp(); + // set user id - \Test_Encryption_Util::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); + self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); \OC_User::setUserId(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); // init filesystem view @@ -108,8 +111,8 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { // init short data $this->data = 'hats'; - $this->filename = 'enc_hooks_tests-' . uniqid() . '.txt'; - $this->folder = 'enc_hooks_tests_folder-' . uniqid(); + $this->filename = 'enc_hooks_tests-' . $this->getUniqueID() . '.txt'; + $this->folder = 'enc_hooks_tests_folder-' . $this->getUniqueID(); } @@ -125,6 +128,8 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { $view = new \OC\Files\View('/'); $view->rmdir('public-keys'); $view->rmdir('owncloud_private_key'); + + parent::tearDownAfterClass(); } function testDisableHook() { @@ -146,7 +151,7 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { // relogin user to initialize the encryption again $user = \OCP\User::getUser(); - \Test_Encryption_Util::loginHelper($user); + self::loginHelper($user); } @@ -171,8 +176,8 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/keyfiles/' . $this->filename . '.key')); - \Test_Encryption_Util::logoutHelper(); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2); + self::logoutHelper(); + self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2); \OC_User::setUserId(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2); @@ -229,8 +234,8 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { function testDeleteHooksForSharedFiles() { - \Test_Encryption_Util::logoutHelper(); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); + self::logoutHelper(); + self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); \OC_User::setUserId(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); // remember files_trashbin state @@ -265,8 +270,8 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { self::TEST_ENCRYPTION_HOOKS_USER1 . '/files_encryption/share-keys/' . $this->filename . '.' . \Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2 . '.shareKey')); - \Test_Encryption_Util::logoutHelper(); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2); + self::logoutHelper(); + self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2); \OC_User::setUserId(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER2); // user2 update the shared file @@ -296,8 +301,8 @@ class Test_Encryption_Hooks extends \PHPUnit_Framework_TestCase { // cleanup - \Test_Encryption_Util::logoutHelper(); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); + self::logoutHelper(); + self::loginHelper(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); \OC_User::setUserId(\Test_Encryption_Hooks::TEST_ENCRYPTION_HOOKS_USER1); if ($stateFilesTrashbin) { diff --git a/apps/files_encryption/tests/keymanager.php b/apps/files_encryption/tests/keymanager.php index ad7d2cfcd45..d708f3e8170 100644 --- a/apps/files_encryption/tests/keymanager.php +++ b/apps/files_encryption/tests/keymanager.php @@ -14,14 +14,13 @@ require_once __DIR__ . '/../lib/stream.php'; require_once __DIR__ . '/../lib/util.php'; require_once __DIR__ . '/../lib/helper.php'; require_once __DIR__ . '/../appinfo/app.php'; -require_once __DIR__ . '/util.php'; use OCA\Encryption; /** * Class Test_Encryption_Keymanager */ -class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Keymanager extends \OCA\Files_Encryption\Tests\TestCase { const TEST_USER = "test-keymanager-user.dot"; @@ -36,6 +35,8 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { public $dataShort; public static function setUpBeforeClass() { + parent::setUpBeforeClass(); + // reset backend \OC_User::clearBackends(); \OC_User::useBackend('database'); @@ -58,10 +59,11 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { // create test user \OC_User::deleteUser(\Test_Encryption_Keymanager::TEST_USER); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Keymanager::TEST_USER, true); + parent::loginHelper(\Test_Encryption_Keymanager::TEST_USER, true); } - function setUp() { + protected function setUp() { + parent::setUp(); // set content for encrypting / decrypting in tests $this->dataLong = file_get_contents(__DIR__ . '/../lib/crypt.php'); $this->dataShort = 'hats'; @@ -76,7 +78,7 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { $this->view = new \OC\Files\View('/'); - \Test_Encryption_Util::loginHelper(Test_Encryption_Keymanager::TEST_USER); + self::loginHelper(Test_Encryption_Keymanager::TEST_USER); $this->userId = \Test_Encryption_Keymanager::TEST_USER; $this->pass = \Test_Encryption_Keymanager::TEST_USER; @@ -87,6 +89,8 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { function tearDown() { $this->view->deleteAll('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys'); $this->view->deleteAll('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/keyfiles'); + + parent::tearDown(); } public static function tearDownAfterClass() { @@ -106,6 +110,8 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { $view = new \OC\Files\View('/'); $view->rmdir('public-keys'); $view->rmdir('owncloud_private_key'); + + parent::tearDownAfterClass(); } /** @@ -171,7 +177,7 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase { $key = $this->randomKey; - $file = 'unittest-' . uniqid() . '.txt'; + $file = 'unittest-' . $this->getUniqueID() . '.txt'; $util = new Encryption\Util($this->view, $this->userId); diff --git a/apps/files_encryption/tests/proxy.php b/apps/files_encryption/tests/proxy.php index 56d6cd2f736..9e84f11e597 100644 --- a/apps/files_encryption/tests/proxy.php +++ b/apps/files_encryption/tests/proxy.php @@ -27,7 +27,6 @@ require_once __DIR__ . '/../lib/proxy.php'; require_once __DIR__ . '/../lib/stream.php'; require_once __DIR__ . '/../lib/util.php'; require_once __DIR__ . '/../appinfo/app.php'; -require_once __DIR__ . '/util.php'; use OCA\Encryption; @@ -35,7 +34,7 @@ use OCA\Encryption; * Class Test_Encryption_Proxy * this class provide basic proxy app tests */ -class Test_Encryption_Proxy extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Proxy extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_PROXY_USER1 = "test-proxy-user1"; @@ -51,6 +50,8 @@ class Test_Encryption_Proxy extends \PHPUnit_Framework_TestCase { public $filename; public static function setUpBeforeClass() { + parent::setUpBeforeClass(); + // reset backend \OC_User::clearBackends(); \OC_User::useBackend('database'); @@ -66,10 +67,12 @@ class Test_Encryption_Proxy extends \PHPUnit_Framework_TestCase { \OC_FileProxy::register(new OCA\Encryption\Proxy()); // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1, true); + self::loginHelper(\Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1, true); } - function setUp() { + protected function setUp() { + parent::setUp(); + // set user id \OC_User::setUserId(\Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1); $this->userId = \Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1; @@ -82,7 +85,7 @@ class Test_Encryption_Proxy extends \PHPUnit_Framework_TestCase { // init short data $this->data = 'hats'; $this->dataLong = file_get_contents(__DIR__ . '/../lib/crypt.php'); - $this->filename = 'enc_proxy_tests-' . uniqid() . '.txt'; + $this->filename = 'enc_proxy_tests-' . $this->getUniqueID() . '.txt'; } @@ -97,6 +100,8 @@ class Test_Encryption_Proxy extends \PHPUnit_Framework_TestCase { $view = new \OC\Files\View('/'); $view->rmdir('public-keys'); $view->rmdir('owncloud_private_key'); + + parent::tearDownAfterClass(); } /** diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php index abf8911c69c..9be4828c60e 100755 --- a/apps/files_encryption/tests/share.php +++ b/apps/files_encryption/tests/share.php @@ -29,14 +29,13 @@ require_once __DIR__ . '/../lib/stream.php'; require_once __DIR__ . '/../lib/util.php'; require_once __DIR__ . '/../lib/helper.php'; require_once __DIR__ . '/../appinfo/app.php'; -require_once __DIR__ . '/util.php'; use OCA\Encryption; /** * Class Test_Encryption_Share */ -class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Share extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_SHARE_USER1 = "test-share-user1"; const TEST_ENCRYPTION_SHARE_USER2 = "test-share-user2"; @@ -56,6 +55,8 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { public $subsubfolder; public static function setUpBeforeClass() { + parent::setUpBeforeClass(); + // reset backend \OC_User::clearBackends(); \OC_User::useBackend('database'); @@ -82,10 +83,10 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OC_FileProxy::register(new OCA\Encryption\Proxy()); // create users - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1, true); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, true); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3, true); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4, true); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1, true); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, true); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3, true); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4, true); // create group and assign users \OC_Group::createGroup(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1); @@ -93,7 +94,9 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OC_Group::addToGroup(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1); } - function setUp() { + protected function setUp() { + parent::setUp(); + $this->dataShort = 'hats'; $this->view = new \OC\Files\View('/'); @@ -110,16 +113,18 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OC_App::disable('files_trashbin'); // login as first user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); } - function tearDown() { + protected function tearDown() { // reset app files_trashbin if ($this->stateFilesTrashbin) { OC_App::enable('files_trashbin'); } else { OC_App::disable('files_trashbin'); } + + parent::tearDown(); } public static function tearDownAfterClass() { @@ -139,6 +144,8 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $view = new \OC\Files\View('/'); $view->rmdir('public-keys'); $view->rmdir('owncloud_private_key'); + + parent::tearDownAfterClass(); } @@ -148,7 +155,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { */ function testShareFile($withTeardown = true) { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // save file with content $cryptedFile = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); @@ -177,7 +184,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, OCP\PERMISSION_ALL); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // check if share key for user1 exists $this->assertTrue($this->view->file_exists( @@ -185,7 +192,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); // login as user1 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); // get file contents $retrievedCryptedFile = $this->view->file_get_contents( @@ -198,7 +205,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { if ($withTeardown) { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // unshare the file \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); @@ -228,7 +235,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->testShareFile(false); // login as user2 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); // get the file info $fileInfo = $this->view->getFileInfo( @@ -238,7 +245,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3, OCP\PERMISSION_ALL); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // check if share key for user2 exists $this->assertTrue($this->view->file_exists( @@ -246,7 +253,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); // login as user2 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); // get file contents $retrievedCryptedFile = $this->view->file_get_contents( @@ -259,13 +266,13 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { if ($withTeardown) { // login as user1 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); // unshare the file with user2 \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // check if share key not exists $this->assertFalse($this->view->file_exists( @@ -299,7 +306,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { */ function testShareFolder($withTeardown = true) { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // create folder structure $this->view->mkdir('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files' . $this->folder1); @@ -334,7 +341,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OCP\Share::shareItem('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, OCP\PERMISSION_ALL); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // check if share key for user1 exists $this->assertTrue($this->view->file_exists( @@ -343,7 +350,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); // login as user1 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); // get file contents $retrievedCryptedFile = $this->view->file_get_contents( @@ -357,7 +364,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { if ($withTeardown) { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // unshare the folder with user1 \OCP\Share::unshare('folder', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); @@ -391,7 +398,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $fileInfoFolder1 = $this->testShareFolder(false); // login as user2 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); // disable encryption proxy to prevent recursive calls $proxyStatus = \OC_FileProxy::$enabled; @@ -412,7 +419,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OCP\Share::shareItem('folder', $fileInfoSubFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3, OCP\PERMISSION_ALL); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // check if share key for user3 exists $this->assertTrue($this->view->file_exists( @@ -421,7 +428,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); // login as user3 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); // get file contents $retrievedCryptedFile = $this->view->file_get_contents( @@ -443,7 +450,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4, OCP\PERMISSION_ALL); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // check if share key for user3 exists $this->assertTrue($this->view->file_exists( @@ -452,7 +459,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); // login as user3 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4); // get file contents $retrievedCryptedFile = $this->view->file_get_contents( @@ -465,7 +472,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { if ($withTeardown) { // login as user2 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); // unshare the file with user3 \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4); @@ -477,7 +484,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); // login as user1 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); // unshare the folder with user2 \OCP\Share::unshare('folder', $fileInfoSubFolder['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); @@ -489,7 +496,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3 . '.shareKey')); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // unshare the folder1 with user1 \OCP\Share::unshare('folder', $fileInfoFolder1['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); @@ -516,7 +523,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { function testPublicShareFile() { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // save file with content $cryptedFile = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); @@ -545,7 +552,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_LINK, false, OCP\PERMISSION_ALL); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); $publicShareKeyId = \OC::$server->getAppConfig()->getValue('files_encryption', 'publicShareKeyId'); @@ -557,7 +564,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // some hacking to simulate public link //$GLOBALS['app'] = 'files_sharing'; //$GLOBALS['fileOwner'] = \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1; - \Test_Encryption_Util::logoutHelper(); + self::logoutHelper(); // get file contents $retrievedCryptedFile = file_get_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename); @@ -568,7 +575,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // tear down // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // unshare the file \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_LINK, null); @@ -594,7 +601,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { */ function testShareFileWithGroup() { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // save file with content $cryptedFile = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); @@ -623,7 +630,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1, OCP\PERMISSION_ALL); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // check if share key for user2 and user3 exists $this->assertTrue($this->view->file_exists( @@ -634,7 +641,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { . $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4 . '.shareKey')); // login as user1 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER3); // get file contents $retrievedCryptedFile = $this->view->file_get_contents( @@ -644,7 +651,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataShort, $retrievedCryptedFile); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // unshare the file \OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_GROUP1); @@ -675,13 +682,13 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { function testRecoveryFile() { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); \OCA\Encryption\Helper::adminEnableRecovery(null, 'test123'); $recoveryKeyId = \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryKeyId'); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); $util = new \OCA\Encryption\Util(new \OC\Files\View('/'), \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); @@ -781,7 +788,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { function testRecoveryForUser() { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); $result = \OCA\Encryption\Helper::adminEnableRecovery(null, 'test123'); $this->assertTrue($result); @@ -789,7 +796,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $recoveryKeyId = \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryKeyId'); // login as user2 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); $util = new \OCA\Encryption\Util(new \OC\Files\View('/'), \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); @@ -833,7 +840,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { . $this->filename . '.' . $recoveryKeyId . '.shareKey')); // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // change password \OC_User::setPassword(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, 'test', 'test123'); @@ -843,7 +850,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { \OCA\Encryption\Hooks::setPassphrase($params); // login as user2 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, false, 'test'); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, false, 'test'); // get file contents $retrievedCryptedFile1 = file_get_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename); @@ -895,7 +902,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { */ function testFailShareFile() { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // save file with content $cryptedFile = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); @@ -933,7 +940,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // check if share key for user1 not exists $this->assertFalse($this->view->file_exists( @@ -978,7 +985,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { function testRename() { // login as admin - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // save file with content $cryptedFile = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); @@ -1003,7 +1010,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { // login as user2 - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); $this->assertTrue($this->view->file_exists('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename)); @@ -1026,7 +1033,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataShort, $retrievedRenamedFile); // cleanup - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); $this->view->unlink('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename); } @@ -1038,8 +1045,8 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $view = new \OC\Files\View('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); - $filename = '/tmp-' . uniqid(); - $folder = '/folder' . uniqid(); + $filename = '/tmp-' . $this->getUniqueID(); + $folder = '/folder' . $this->getUniqueID(); \OC\Files\Filesystem::mkdir($folder); @@ -1054,7 +1061,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataShort, $decrypt); - $newFolder = '/newfolder/subfolder' . uniqid(); + $newFolder = '/newfolder/subfolder' . $this->getUniqueID(); \OC\Files\Filesystem::mkdir('/newfolder'); // get the file info from previous created file @@ -1096,8 +1103,8 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { function testMoveFileToFolder($userId) { $view = new \OC\Files\View('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); - $filename = '/tmp-' . uniqid(); - $folder = '/folder' . uniqid(); + $filename = '/tmp-' . $this->getUniqueID(); + $folder = '/folder' . $this->getUniqueID(); \OC\Files\Filesystem::mkdir($folder); @@ -1112,7 +1119,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->assertEquals($this->dataShort, $decrypt); - $subFolder = $folder . '/subfolder' . uniqid(); + $subFolder = $folder . '/subfolder' . $this->getUniqueID(); \OC\Files\Filesystem::mkdir($subFolder); // get the file info from previous created file @@ -1127,9 +1134,9 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { $this->assertTrue($view->file_exists('files_encryption/share-keys' . $folder . '/' . $filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); // move the file into the subfolder as the test user - \Test_Encryption_Util::loginHelper($userId); + self::loginHelper($userId); \OC\Files\Filesystem::rename($folder . $filename, $subFolder . $filename); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); + self::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); // Get file decrypted contents $newDecrypt = \OC\Files\Filesystem::file_get_contents($subFolder . $filename); diff --git a/apps/files_encryption/tests/stream.php b/apps/files_encryption/tests/stream.php index f871b3b4c61..3bc2a3b29fc 100644 --- a/apps/files_encryption/tests/stream.php +++ b/apps/files_encryption/tests/stream.php @@ -27,7 +27,6 @@ require_once __DIR__ . '/../lib/proxy.php'; require_once __DIR__ . '/../lib/stream.php'; require_once __DIR__ . '/../lib/util.php'; require_once __DIR__ . '/../appinfo/app.php'; -require_once __DIR__ . '/util.php'; use OCA\Encryption; @@ -35,7 +34,7 @@ use OCA\Encryption; * Class Test_Encryption_Stream * this class provide basic stream tests */ -class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Stream extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_STREAM_USER1 = "test-stream-user1"; @@ -49,6 +48,8 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { public $stateFilesTrashbin; public static function setUpBeforeClass() { + parent::setUpBeforeClass(); + // reset backend \OC_User::clearBackends(); \OC_User::useBackend('database'); @@ -61,10 +62,12 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { \OC_FileProxy::register(new OCA\Encryption\Proxy()); // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Stream::TEST_ENCRYPTION_STREAM_USER1, true); + self::loginHelper(\Test_Encryption_Stream::TEST_ENCRYPTION_STREAM_USER1, true); } - function setUp() { + protected function setUp() { + parent::setUp(); + // set user id \OC_User::setUserId(\Test_Encryption_Stream::TEST_ENCRYPTION_STREAM_USER1); $this->userId = \Test_Encryption_Stream::TEST_ENCRYPTION_STREAM_USER1; @@ -83,7 +86,7 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { \OC_App::disable('files_trashbin'); } - function tearDown() { + protected function tearDown() { // reset app files_trashbin if ($this->stateFilesTrashbin) { OC_App::enable('files_trashbin'); @@ -91,6 +94,8 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { else { OC_App::disable('files_trashbin'); } + + parent::tearDown(); } public static function tearDownAfterClass() { @@ -104,10 +109,12 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { $view = new \OC\Files\View('/'); $view->rmdir('public-keys'); $view->rmdir('owncloud_private_key'); + + parent::tearDownAfterClass(); } function testStreamOptions() { - $filename = '/tmp-' . uniqid(); + $filename = '/tmp-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); // Save short data as encrypted file using stream wrapper @@ -125,12 +132,14 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { $this->assertTrue(flock($handle, LOCK_SH)); $this->assertTrue(flock($handle, LOCK_UN)); + fclose($handle); + // tear down $view->unlink($filename); } function testStreamSetBlocking() { - $filename = '/tmp-' . uniqid(); + $filename = '/tmp-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); // Save short data as encrypted file using stream wrapper @@ -161,7 +170,7 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { * @medium */ function testStreamSetTimeout() { - $filename = '/tmp-' . uniqid(); + $filename = '/tmp-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); // Save short data as encrypted file using stream wrapper @@ -182,7 +191,7 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { } function testStreamSetWriteBuffer() { - $filename = '/tmp-' . uniqid(); + $filename = '/tmp-' . $this->getUniqueID(); $view = new \OC\Files\View('/' . $this->userId . '/files'); // Save short data as encrypted file using stream wrapper @@ -208,9 +217,9 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { */ function testStreamFromLocalFile() { - $filename = '/' . $this->userId . '/files/' . 'tmp-' . uniqid().'.txt'; + $filename = '/' . $this->userId . '/files/' . 'tmp-' . $this->getUniqueID().'.txt'; - $tmpFilename = "/tmp/" . uniqid() . ".txt"; + $tmpFilename = "/tmp/" . $this->getUniqueID() . ".txt"; // write an encrypted file $cryptedFile = $this->view->file_put_contents($filename, $this->dataShort); @@ -235,6 +244,8 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase { // check if it was successful $this->assertEquals($this->dataShort, $contentFromTmpFile); + fclose($handle); + // clean up unlink($tmpFilename); $this->view->unlink($filename); diff --git a/apps/files_encryption/tests/testcase.php b/apps/files_encryption/tests/testcase.php new file mode 100644 index 00000000000..3106aeda8ea --- /dev/null +++ b/apps/files_encryption/tests/testcase.php @@ -0,0 +1,53 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OCA\Files_Encryption\Tests; + +use OCA\Encryption; + +/** + * Class Test_Encryption_TestCase + */ +abstract class TestCase extends \Test\TestCase { + /** + * @param string $user + * @param bool $create + * @param bool $password + */ + public static function loginHelper($user, $create = false, $password = false, $loadEncryption = true) { + if ($create) { + try { + \OC_User::createUser($user, $user); + } catch (\Exception $e) { + // catch username is already being used from previous aborted runs + } + } + + if ($password === false) { + $password = $user; + } + + \OC_Util::tearDownFS(); + \OC_User::setUserId(''); + \OC\Files\Filesystem::tearDown(); + \OC_User::setUserId($user); + \OC_Util::setupFS($user); + + if ($loadEncryption) { + $params['uid'] = $user; + $params['password'] = $password; + \OCA\Encryption\Hooks::login($params); + } + } + + public static function logoutHelper() { + \OC_Util::tearDownFS(); + \OC_User::setUserId(false); + \OC\Files\Filesystem::tearDown(); + } +} diff --git a/apps/files_encryption/tests/trashbin.php b/apps/files_encryption/tests/trashbin.php index 5890292cd7b..1fd8ff4c940 100755 --- a/apps/files_encryption/tests/trashbin.php +++ b/apps/files_encryption/tests/trashbin.php @@ -28,7 +28,6 @@ require_once __DIR__ . '/../lib/stream.php'; require_once __DIR__ . '/../lib/util.php'; require_once __DIR__ . '/../appinfo/app.php'; require_once __DIR__ . '/../../files_trashbin/appinfo/app.php'; -require_once __DIR__ . '/util.php'; use OCA\Encryption; @@ -36,7 +35,7 @@ use OCA\Encryption; * Class Test_Encryption_Trashbin * this class provide basic trashbin app tests */ -class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Trashbin extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_TRASHBIN_USER1 = "test-trashbin-user1"; @@ -53,6 +52,8 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { public $subsubfolder; public static function setUpBeforeClass() { + parent::setUpBeforeClass(); + // reset backend \OC_User::clearBackends(); \OC_User::useBackend('database'); @@ -71,14 +72,16 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { \OC_FileProxy::register(new OCA\Encryption\Proxy()); // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1, true); + self::loginHelper(self::TEST_ENCRYPTION_TRASHBIN_USER1, true); } - function setUp() { + protected function setUp() { + parent::setUp(); + // set user id - \OC_User::setUserId(\Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1); - $this->userId = \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1; - $this->pass = \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1; + \OC_User::setUserId(self::TEST_ENCRYPTION_TRASHBIN_USER1); + $this->userId = self::TEST_ENCRYPTION_TRASHBIN_USER1; + $this->pass = self::TEST_ENCRYPTION_TRASHBIN_USER1; // init filesystem view $this->view = new \OC\Files\View('/'); @@ -97,7 +100,7 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { \OC_App::enable('files_trashbin'); } - function tearDown() { + protected function tearDown() { // reset app files_trashbin if ($this->stateFilesTrashbin) { OC_App::enable('files_trashbin'); @@ -105,11 +108,13 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { else { OC_App::disable('files_trashbin'); } + + parent::tearDown(); } public static function tearDownAfterClass() { // cleanup test user - \OC_User::deleteUser(\Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1); + \OC_User::deleteUser(self::TEST_ENCRYPTION_TRASHBIN_USER1); \OC_Hook::clear(); \OC_FileProxy::clearProxies(); @@ -118,6 +123,8 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { $view = new \OC\Files\View('/'); $view->rmdir('public-keys'); $view->rmdir('owncloud_private_key'); + + parent::tearDownAfterClass(); } /** @@ -127,12 +134,12 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { function testDeleteFile() { // generate filename - $filename = 'tmp-' . uniqid() . '.txt'; + $filename = 'tmp-' . $this->getUniqueID() . '.txt'; $filename2 = $filename . '.backup'; // a second file with similar name // save file with content - $cryptedFile = file_put_contents('crypt:///' .\Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename, $this->dataShort); - $cryptedFile2 = file_put_contents('crypt:///' .\Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename2, $this->dataShort); + $cryptedFile = file_put_contents('crypt:///' .self::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename, $this->dataShort); + $cryptedFile2 = file_put_contents('crypt:///' .self::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename2, $this->dataShort); // test that data was successfully written $this->assertTrue(is_int($cryptedFile)); @@ -140,59 +147,59 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { // check if key for admin exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename . '.key')); $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename2 + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename2 . '.key')); // check if share key for admin exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' - . $filename . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' + . $filename . '.' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' - . $filename2 . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' + . $filename2 . '.' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); // delete first file \OC\FIles\Filesystem::unlink($filename); // check if file not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename)); // check if key for admin not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename . '.key')); // check if share key for admin not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' - . $filename . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' + . $filename . '.' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); // check that second file still exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename2)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename2)); // check that key for second file still exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename2 + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename2 . '.key')); // check that share key for second file still exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' - . $filename2 . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' + . $filename2 . '.' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); // get files $trashFiles = $this->view->getDirectoryContent( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/files/'); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/files/'); $trashFileSuffix = null; // find created file with timestamp foreach ($trashFiles as $file) { - if (strncmp($file['path'], $filename, strlen($filename))) { + if (strpos($file['path'], $filename . '.d') !== false) { $path_parts = pathinfo($file['name']); $trashFileSuffix = $path_parts['extension']; } @@ -203,13 +210,13 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { // check if key for admin not exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keyfiles/' . $filename + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keyfiles/' . $filename . '.key.' . $trashFileSuffix)); // check if share key for admin not exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/share-keys/' . $filename - . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey.' . $trashFileSuffix)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/share-keys/' . $filename + . '.' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey.' . $trashFileSuffix)); } /** @@ -218,32 +225,27 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { */ function testRestoreFile() { // generate filename - $filename = 'tmp-' . uniqid() . '.txt'; + $filename = 'tmp-' . $this->getUniqueID() . '.txt'; $filename2 = $filename . '.backup'; // a second file with similar name // save file with content - $cryptedFile = file_put_contents('crypt:///' .\Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename, $this->dataShort); - $cryptedFile2 = file_put_contents('crypt:///' .\Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename2, $this->dataShort); + $cryptedFile = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename, $this->dataShort); + $cryptedFile2 = file_put_contents('crypt:///' . self::TEST_ENCRYPTION_TRASHBIN_USER1. '/files/'. $filename2, $this->dataShort); // delete both files \OC\Files\Filesystem::unlink($filename); \OC\Files\Filesystem::unlink($filename2); - $trashFiles = $this->view->getDirectoryContent( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/files/'); + $trashFiles = $this->view->getDirectoryContent('/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/files/'); $trashFileSuffix = null; $trashFileSuffix2 = null; // find created file with timestamp foreach ($trashFiles as $file) { - if (strncmp($file['path'], $filename, strlen($filename))) { + if (strpos($file['path'], $filename . '.d') !== false) { $path_parts = pathinfo($file['name']); $trashFileSuffix = $path_parts['extension']; } - if (strncmp($file['path'], $filename2, strlen($filename2))) { - $path_parts = pathinfo($file['name']); - $trashFileSuffix2 = $path_parts['extension']; - } } // prepare file information @@ -254,31 +256,31 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { // check if file exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename)); // check if key for admin exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename . '.key')); // check if share key for admin exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' - . $filename . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' + . $filename . '.' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); // check that second file was NOT restored $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename2)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename2)); // check if key for admin exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename2 . '.key')); // check if share key for admin exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' - . $filename2 . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' + . $filename2 . '.' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); } /** @@ -288,7 +290,7 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { function testPermanentDeleteFile() { // generate filename - $filename = 'tmp-' . uniqid() . '.txt'; + $filename = 'tmp-' . $this->getUniqueID() . '.txt'; // save file with content $cryptedFile = file_put_contents('crypt:///' .$this->userId. '/files/' . $filename, $this->dataShort); @@ -298,30 +300,30 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { // check if key for admin exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename . '.key')); // check if share key for admin exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' - . $filename . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' + . $filename . '.' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); // delete file \OC\Files\Filesystem::unlink($filename); // check if file not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files/' . $filename)); // check if key for admin not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/keyfiles/' . $filename . '.key')); // check if share key for admin not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' - . $filename . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_encryption/share-keys/' + . $filename . '.' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey')); // find created file with timestamp $query = \OC_DB::prepare('SELECT `timestamp`,`type` FROM `*PREFIX*files_trash`' @@ -335,13 +337,13 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { // check if key for admin exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keyfiles/' . $filename + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keyfiles/' . $filename . '.key.' . $trashFileSuffix)); // check if share key for admin exists $this->assertTrue($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/share-keys/' . $filename - . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey.' . $trashFileSuffix)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/share-keys/' . $filename + . '.' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey.' . $trashFileSuffix)); // get timestamp from file $timestamp = str_replace('d', '', $trashFileSuffix); @@ -351,18 +353,18 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase { // check if key for admin not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/files/' . $filename . '.' + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/files/' . $filename . '.' . $trashFileSuffix)); // check if key for admin not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keyfiles/' . $filename + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/keyfiles/' . $filename . '.key.' . $trashFileSuffix)); // check if share key for admin not exists $this->assertFalse($this->view->file_exists( - '/' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/share-keys/' . $filename - . '.' . \Test_Encryption_Trashbin::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey.' . $trashFileSuffix)); + '/' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '/files_trashbin/share-keys/' . $filename + . '.' . self::TEST_ENCRYPTION_TRASHBIN_USER1 . '.shareKey.' . $trashFileSuffix)); } } diff --git a/apps/files_encryption/tests/util.php b/apps/files_encryption/tests/util.php index 83d2c6b0f92..d7713259ce2 100755 --- a/apps/files_encryption/tests/util.php +++ b/apps/files_encryption/tests/util.php @@ -19,7 +19,7 @@ use OCA\Encryption; /** * Class Test_Encryption_Util */ -class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Util extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_UTIL_USER1 = "test-util-user1"; const TEST_ENCRYPTION_UTIL_USER2 = "test-util-user2"; @@ -49,6 +49,8 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { public $stateFilesTrashbin; public static function setUpBeforeClass() { + parent::setUpBeforeClass(); + // reset backend \OC_User::clearBackends(); \OC_User::useBackend('database'); @@ -56,9 +58,9 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { self::setupHooks(); // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1, true); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER2, true); - \Test_Encryption_Util::loginHelper(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_LEGACY_USER, true); + self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER1, true); + self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER2, true); + self::loginHelper(self::TEST_ENCRYPTION_UTIL_LEGACY_USER, true); // create groups \OC_Group::createGroup(self::TEST_ENCRYPTION_UTIL_GROUP1); @@ -68,13 +70,14 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { \OC_Group::addToGroup(self::TEST_ENCRYPTION_UTIL_USER1, self::TEST_ENCRYPTION_UTIL_GROUP1); } + protected function setUp() { + parent::setUp(); - function setUp() { // login user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1); - \OC_User::setUserId(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1); - $this->userId = \Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1; - $this->pass = \Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1; + self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER1); + \OC_User::setUserId(self::TEST_ENCRYPTION_UTIL_USER1); + $this->userId = self::TEST_ENCRYPTION_UTIL_USER1; + $this->pass = self::TEST_ENCRYPTION_UTIL_USER1; // set content for encrypting / decrypting in tests $this->dataUrl = __DIR__ . '/../lib/crypt.php'; @@ -109,7 +112,7 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { \OC_App::disable('files_trashbin'); } - function tearDown() { + protected function tearDown() { // reset app files_trashbin if ($this->stateFilesTrashbin) { OC_App::enable('files_trashbin'); @@ -117,13 +120,15 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { else { OC_App::disable('files_trashbin'); } + + parent::tearDown(); } public static function tearDownAfterClass() { // cleanup test user - \OC_User::deleteUser(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1); - \OC_User::deleteUser(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER2); - \OC_User::deleteUser(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_LEGACY_USER); + \OC_User::deleteUser(self::TEST_ENCRYPTION_UTIL_USER1); + \OC_User::deleteUser(self::TEST_ENCRYPTION_UTIL_USER2); + \OC_User::deleteUser(self::TEST_ENCRYPTION_UTIL_LEGACY_USER); //cleanup groups \OC_Group::deleteGroup(self::TEST_ENCRYPTION_UTIL_GROUP1); @@ -136,6 +141,8 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { $view = new \OC\Files\View('/'); $view->rmdir('public-keys'); $view->rmdir('owncloud_private_key'); + + parent::tearDownAfterClass(); } public static function setupHooks() { @@ -172,8 +179,8 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { self::loginHelper($this->userId); - $unencryptedFile = '/tmpUnencrypted-' . uniqid() . '.txt'; - $encryptedFile = '/tmpEncrypted-' . uniqid() . '.txt'; + $unencryptedFile = '/tmpUnencrypted-' . $this->getUniqueID() . '.txt'; + $encryptedFile = '/tmpEncrypted-' . $this->getUniqueID() . '.txt'; // Disable encryption proxy to write a unencrypted file $proxyStatus = \OC_FileProxy::$enabled; @@ -280,9 +287,9 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { */ function testGetUidAndFilename() { - \OC_User::setUserId(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1); + \OC_User::setUserId(self::TEST_ENCRYPTION_UTIL_USER1); - $filename = '/tmp-' . uniqid() . '.test'; + $filename = '/tmp-' . $this->getUniqueID() . '.test'; // Disable encryption proxy to prevent recursive calls $proxyStatus = \OC_FileProxy::$enabled; @@ -297,7 +304,7 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { list($fileOwnerUid, $file) = $util->getUidAndFilename($filename); - $this->assertEquals(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1, $fileOwnerUid); + $this->assertEquals(self::TEST_ENCRYPTION_UTIL_USER1, $fileOwnerUid); $this->assertEquals($file, $filename); @@ -308,9 +315,9 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { < * Test that data that is read by the crypto stream wrapper */ function testGetFileSize() { - \Test_Encryption_Util::loginHelper(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1); + self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER1); - $filename = 'tmp-' . uniqid(); + $filename = 'tmp-' . $this->getUniqueID(); $externalFilename = '/' . $this->userId . '/files/' . $filename; // Test for 0 byte files @@ -334,7 +341,7 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { function testEncryptAll() { - $filename = "/encryptAll" . uniqid() . ".txt"; + $filename = "/encryptAll" . $this->getUniqueID() . ".txt"; $util = new Encryption\Util($this->view, $this->userId); // disable encryption to upload a unencrypted file @@ -365,7 +372,7 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { function testDecryptAll() { - $filename = "/decryptAll" . uniqid() . ".txt"; + $filename = "/decryptAll" . $this->getUniqueID() . ".txt"; $datadir = \OC_Config::getValue('datadirectory', \OC::$SERVERROOT . '/data/'); $userdir = $datadir . '/' . $this->userId . '/files/'; @@ -484,8 +491,8 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase { function testDescryptAllWithBrokenFiles() { - $file1 = "/decryptAll1" . uniqid() . ".txt"; - $file2 = "/decryptAll2" . uniqid() . ".txt"; + $file1 = "/decryptAll1" . $this->getUniqueID() . ".txt"; + $file2 = "/decryptAll2" . $this->getUniqueID() . ".txt"; $util = new Encryption\Util($this->view, $this->userId); diff --git a/apps/files_encryption/tests/webdav.php b/apps/files_encryption/tests/webdav.php index cc0cff9aa5c..c519e4c46d6 100755 --- a/apps/files_encryption/tests/webdav.php +++ b/apps/files_encryption/tests/webdav.php @@ -27,7 +27,6 @@ require_once __DIR__ . '/../lib/proxy.php'; require_once __DIR__ . '/../lib/stream.php'; require_once __DIR__ . '/../lib/util.php'; require_once __DIR__ . '/../appinfo/app.php'; -require_once __DIR__ . '/util.php'; use OCA\Encryption; @@ -36,7 +35,7 @@ use OCA\Encryption; * * this class provide basic webdav tests for PUT,GET and DELETE */ -class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase { +class Test_Encryption_Webdav extends \OCA\Files_Encryption\Tests\TestCase { const TEST_ENCRYPTION_WEBDAV_USER1 = "test-webdav-user1"; @@ -52,6 +51,8 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase { private $storage; public static function setUpBeforeClass() { + parent::setUpBeforeClass(); + // reset backend \OC_User::clearBackends(); \OC_User::useBackend('database'); @@ -67,11 +68,13 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase { \OC_FileProxy::register(new OCA\Encryption\Proxy()); // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Webdav::TEST_ENCRYPTION_WEBDAV_USER1, true); + self::loginHelper(\Test_Encryption_Webdav::TEST_ENCRYPTION_WEBDAV_USER1, true); } - function setUp() { + protected function setUp() { + parent::setUp(); + // reset backend \OC_User::useBackend('database'); @@ -93,16 +96,18 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase { \OC_App::disable('files_trashbin'); // create test user - \Test_Encryption_Util::loginHelper(\Test_Encryption_Webdav::TEST_ENCRYPTION_WEBDAV_USER1); + self::loginHelper(\Test_Encryption_Webdav::TEST_ENCRYPTION_WEBDAV_USER1); } - function tearDown() { + protected function tearDown() { // reset app files_trashbin if ($this->stateFilesTrashbin) { OC_App::enable('files_trashbin'); } else { OC_App::disable('files_trashbin'); } + + parent::tearDown(); } public static function tearDownAfterClass() { @@ -116,6 +121,8 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase { $view = new \OC\Files\View('/'); $view->rmdir('public-keys'); $view->rmdir('owncloud_private_key'); + + parent::tearDownAfterClass(); } /** @@ -124,7 +131,7 @@ class Test_Encryption_Webdav extends \PHPUnit_Framework_TestCase { function testWebdavPUT() { // generate filename - $filename = '/tmp-' . uniqid() . '.txt'; + $filename = '/tmp-' . $this->getUniqueID() . '.txt'; // set server vars $_SERVER['REQUEST_METHOD'] = 'OPTIONS'; -- 2.39.5