diff options
Diffstat (limited to 'apps/files_encryption/tests/helper.php')
-rw-r--r-- | apps/files_encryption/tests/helper.php | 339 |
1 files changed, 0 insertions, 339 deletions
diff --git a/apps/files_encryption/tests/helper.php b/apps/files_encryption/tests/helper.php deleted file mode 100644 index 8fbd4f419a9..00000000000 --- a/apps/files_encryption/tests/helper.php +++ /dev/null @@ -1,339 +0,0 @@ -<?php -/** - * @author Björn Schießle <schiessle@owncloud.com> - * @author Joas Schilling <nickvergessen@owncloud.com> - * @author Jörn Friedrich Dreyer <jfd@butonic.de> - * @author Morris Jobke <hey@morrisjobke.de> - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * - */ - -namespace OCA\Files_Encryption\Tests; - -use OCA\Files_Encryption; -use OCA\Files_Encryption\Helper; - -/** - * Class Helper - */ -class TestHelper extends TestCase { - - const TEST_ENCRYPTION_HELPER_USER1 = "test-helper-user1"; - const TEST_ENCRYPTION_HELPER_USER2 = "test-helper-user2"; - - protected function setUpUsers() { - // create test user - self::loginHelper(self::TEST_ENCRYPTION_HELPER_USER2, true); - self::loginHelper(self::TEST_ENCRYPTION_HELPER_USER1, true); - } - - protected function cleanUpUsers() { - // cleanup test user - \OC_User::deleteUser(self::TEST_ENCRYPTION_HELPER_USER1); - \OC_User::deleteUser(self::TEST_ENCRYPTION_HELPER_USER2); - } - - public static function setupHooks() { - // Filesystem related hooks - Helper::registerFilesystemHooks(); - - // clear and register hooks - \OC_FileProxy::clearProxies(); - \OC_FileProxy::register(new Files_Encryption\Proxy()); - } - - public static function tearDownAfterClass() { - parent::tearDownAfterClass(); - } - - /** - * @medium - */ - function testStripPartialFileExtension() { - - $partFilename = 'testfile.txt.part'; - $filename = 'testfile.txt'; - - $this->assertTrue(Helper::isPartialFilePath($partFilename)); - - $this->assertEquals('testfile.txt', Helper::stripPartialFileExtension($partFilename)); - - $this->assertFalse(Helper::isPartialFilePath($filename)); - - $this->assertEquals('testfile.txt', Helper::stripPartialFileExtension($filename)); - } - - - /** - * @medium - */ - function testStripPartialFileExtensionWithTransferIdPath() { - - $partFilename = 'testfile.txt.ocTransferId643653835.part'; - $filename = 'testfile.txt'; - - $this->assertTrue(Helper::isPartialFilePath($partFilename)); - - $this->assertEquals('testfile.txt', Helper::stripPartialFileExtension($partFilename)); - - $this->assertFalse(Helper::isPartialFilePath($filename)); - - $this->assertEquals('testfile.txt', Helper::stripPartialFileExtension($filename)); - } - - /** - * @dataProvider dataVersionsPathPositive - */ - function testGetPathFromVersionPositive($path, $expected) { - $result = Helper::getPathFromVersion($path); - $this->assertSame($expected, $result); - } - - function dataVersionsPathPositive() { - return array( - array('/user/files_versions/foo/bar/test.txt.v456756835', 'foo/bar/test.txt'), - array('user/files_versions/foo/bar/test.txt.v456756835', 'foo/bar/test.txt'), - array('user/files_versions//foo/bar/test.txt.v456756835', 'foo/bar/test.txt'), - array('user/files_versions/test.txt.v456756835', 'test.txt'), - ); - } - - /** - * @dataProvider dataVersionsPathNegative - * @expectedException \OCA\Files_Encryption\Exception\EncryptionException - */ - function testGetPathFromVersionNegative($path) { - Helper::getPathFromVersion($path); - } - - function dataVersionsPathNegative() { - return array( - array('/user/files_versions/'), - array('/user/files_versions'), - ); - } - - /** - * @dataProvider dataPathsCachedFilePositive - */ - function testGetPathFromCachedFilePositive($path, $expected) { - $result = Helper::getPathFromCachedFile($path); - $this->assertEquals($expected, $result); - } - - function dataPathsCachedFilePositive() { - return array( - array('/user/cache/transferid636483/foo/bar/test.txt', 'foo/bar/test.txt'), - array('/user/cache/transferid636483//test.txt', 'test.txt'), - array('user/cache/transferid636483//test.txt', 'test.txt'), - ); - } - - - /** - * @dataProvider dataPathsCachedFileNegative - * @expectedException \OCA\Files_Encryption\Exception\EncryptionException - */ - function testGetPathFromCachedFileNegative($path) { - Helper::getPathFromCachedFile($path); - } - - function dataPathsCachedFileNegative() { - return array( - array('/user/cache/transferid636483/'), - array('/user/cache/transferid636483'), - array('/user/cache/transferid636483//'), - array('/user/cache'), - ); - } - - 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; - - 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, Helper::getUser($path1)); - $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Helper::getUser($path2)); - $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Helper::getUser($path3)); - $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Helper::getUser($path4)); - - // now log out - self::logoutHelper(); - - // now we should only get the user from /user/files and user/cache paths - $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Helper::getUser($path1)); - $this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Helper::getUser($path2)); - - try { - $this->assertFalse(Helper::getUser($path3)); - $this->assertFalse(true, '"OCA\Files_Encryption\Exception\EncryptionException: Could not determine user expected"'); - } catch (Files_Encryption\Exception\EncryptionException $e) { - $this->assertSame('Could not determine user', $e->getMessage()); - } - try { - $this->assertFalse(Helper::getUser($path4)); - $this->assertFalse(true, '"OCA\Files_Encryption\Exception\EncryptionException: Could not determine user expected"'); - } catch (Files_Encryption\Exception\EncryptionException $e) { - $this->assertSame('Could not determine user', $e->getMessage()); - } - - // Log-in again - self::loginHelper(self::TEST_ENCRYPTION_HELPER_USER1); - self::cleanUpUsers(); - } - - /** - * @dataProvider dataStripUserFilesPath - */ - function testStripUserFilesPath($path, $expected) { - $result = Helper::stripUserFilesPath($path); - $this->assertSame($expected, $result); - } - - function dataStripUserFilesPath() { - return array( - array('/user/files/foo.txt', 'foo.txt'), - array('//user/files/foo.txt', 'foo.txt'), - array('user//files/foo/bar.txt', 'foo/bar.txt'), - array('user//files/', false), - array('/user', false), - array('', false), - ); - } - - /** - * @dataProvider dataStripUserFilesPathPositive - */ - function testGetUserFromPathPositive($path, $expected) { - self::setUpUsers(); - $result = Helper::getUserFromPath($path); - $this->assertSame($expected, $result); - self::cleanUpUsers(); - } - - function dataStripUserFilesPathPositive() { - return array( - array('/' . self::TEST_ENCRYPTION_HELPER_USER1 . '/files/foo.txt', self::TEST_ENCRYPTION_HELPER_USER1), - array('//' . self::TEST_ENCRYPTION_HELPER_USER2 . '/files_versions/foo.txt', self::TEST_ENCRYPTION_HELPER_USER2), - array('/' . self::TEST_ENCRYPTION_HELPER_USER1 . '/files_trashbin/', self::TEST_ENCRYPTION_HELPER_USER1), - array(self::TEST_ENCRYPTION_HELPER_USER1 . '//cache/foo/bar.txt', self::TEST_ENCRYPTION_HELPER_USER1), - ); - } - - /** - * @dataProvider dataStripUserFilesPathNegative - * @expectedException \OCA\Files_Encryption\Exception\EncryptionException - */ - function testGetUserFromPathNegative($path) { - Helper::getUserFromPath($path); - } - - function dataStripUserFilesPathNegative() { - return array( - array('/unknown_user/files/foo.txt'), - array('/' . self::TEST_ENCRYPTION_HELPER_USER2 . '/unknown_folder/foo.txt'), - array('/' . self::TEST_ENCRYPTION_HELPER_USER1), - array(''), - ); - } - - /** - * @dataProvider dataPaths - */ - function testMkdirr($path, $expected) { - self::setUpUsers(); - Helper::mkdirr($path, new \OC\Files\View('/' . self::TEST_ENCRYPTION_HELPER_USER1 . '/files')); - // ignore the filename because we only check for the directories - $dirParts = array_slice($expected, 0, -1); - $expectedPath = implode('/', $dirParts); - $this->assertTrue(\OC\Files\Filesystem::is_dir($expectedPath)); - - // cleanup - \OC\Files\Filesystem::unlink('/' . $expected[0]); - self::cleanUpUsers(); - } - - /** - * @dataProvider dataDetectFileTypePositive - */ - function testDetectFileTypePositive($path, $expected) { - $result = Helper::detectFileType($path); - $this->assertSame($expected, $result); - } - - function dataDetectFileTypePositive() { - return array( - array(self::TEST_ENCRYPTION_HELPER_USER1 . '/files', Files_Encryption\Util::FILE_TYPE_FILE), - array(self::TEST_ENCRYPTION_HELPER_USER1 . '/files/foo/bar', Files_Encryption\Util::FILE_TYPE_FILE), - array('/' . self::TEST_ENCRYPTION_HELPER_USER1 . '/files/foo/bar', Files_Encryption\Util::FILE_TYPE_FILE), - array(self::TEST_ENCRYPTION_HELPER_USER1 . '/files_versions', Files_Encryption\Util::FILE_TYPE_VERSION), - array('/' . self::TEST_ENCRYPTION_HELPER_USER1 . '//files_versions/foo/bar', Files_Encryption\Util::FILE_TYPE_VERSION), - array('/' . self::TEST_ENCRYPTION_HELPER_USER1 . '//cache/foo/bar', Files_Encryption\Util::FILE_TYPE_CACHE), - ); - } - - /** - * @dataProvider dataDetectFileTypeNegative - * @expectedException \OCA\Files_Encryption\Exception\EncryptionException - */ - function testDetectFileTypeNegative($path) { - Helper::detectFileType($path); - } - - function dataDetectFileTypeNegative() { - return array( - array('/files'), - array('/' . self::TEST_ENCRYPTION_HELPER_USER1 . '/unsuported_dir/foo/bar'), - ); - } - - /** - * @dataProvider dataPaths - */ - function testSplitPath($path, $expected) { - $result = Helper::splitPath($path); - $this->compareArray($result, $expected); - } - - function dataPaths() { - return array( - array('foo/bar/test.txt', array('', 'foo', 'bar', 'test.txt')), - array('/foo/bar/test.txt', array('', 'foo', 'bar', 'test.txt')), - array('/foo/bar//test.txt', array('', 'foo', 'bar', 'test.txt')), - array('//foo/bar/test.txt', array('', 'foo', 'bar', 'test.txt')), - array('foo', array('', 'foo')), - array('/foo', array('', 'foo')), - array('//foo', array('', 'foo')), - ); - } - - function compareArray($result, $expected) { - $this->assertSame(count($expected), count($result)); - - foreach ($expected as $key => $value) { - $this->assertArrayHasKey($key, $result); - $this->assertSame($value, $result[$key]); - } - } - -} |