diff options
author | Olivier Paroz <github@oparoz.com> | 2015-08-06 03:44:19 +0300 |
---|---|---|
committer | Olivier Paroz <github@oparoz.com> | 2015-08-06 03:45:06 +0300 |
commit | 8bcba705e317bc163d5ba0984acb1235edba3ff3 (patch) | |
tree | 670451340293963dac5480668c4cd37aadfcd996 /tests/integration | |
parent | 2913af616df6559f7bd52fcdc9ba3456e09ebfcf (diff) |
More integration tests for Environment
Diffstat (limited to 'tests/integration')
-rw-r--r-- | tests/integration/appinfo/AppTest.php | 2 | ||||
-rw-r--r-- | tests/integration/bootstrap.php | 26 | ||||
-rw-r--r-- | tests/integration/environment/EnvironmentTest.php | 138 |
3 files changed, 144 insertions, 22 deletions
diff --git a/tests/integration/appinfo/AppTest.php b/tests/integration/appinfo/AppTest.php index 1b0bd5ab..741b97b3 100644 --- a/tests/integration/appinfo/AppTest.php +++ b/tests/integration/appinfo/AppTest.php @@ -25,4 +25,4 @@ class AppTest extends GalleryIntegrationTest { $appManager = $this->container->query('OCP\App\IAppManager'); $this->assertTrue($appManager->isInstalled('gallery')); } -}
\ No newline at end of file +} diff --git a/tests/integration/bootstrap.php b/tests/integration/bootstrap.php index 8f45fa78..f22aa896 100644 --- a/tests/integration/bootstrap.php +++ b/tests/integration/bootstrap.php @@ -66,13 +66,12 @@ class GalleryIntegrationTest extends TestCase { $this->rootFolder = $this->server->getRootFolder(); /** - * FIXME Anybody is welcome to fix the class to make it work with encryption + * Logging hooks are missing at the moment, so we need to disable encryption * - * This is the exception being thrown when trying to write to the filesystem - * OCA\Encryption\Exceptions\PrivateKeyMissingException: Private Key missing for user: please try to log-out and log-in again + * @link https://github.com/owncloud/core/issues/18085#issuecomment-128093797 */ - $this->server->getAppManager() - ->disableApp('encryption'); + $this->server->getConfig() + ->setAppValue('core', 'encryption_enabled', 'no'); // This is because the filesystem is not properly cleaned up sometimes $this->server->getAppManager() @@ -136,7 +135,7 @@ class GalleryIntegrationTest extends TestCase { } /** - * @param strong $token + * @param string $token * * @return mixed */ @@ -152,7 +151,7 @@ class GalleryIntegrationTest extends TestCase { /** * Creates a token for a file * - * @return bool|string + * @return array<bool|string|File> */ protected function prepareFileToken() { $sharedFolder = $this->createEnv($this->sharerUserId, $this->sharerPassword); @@ -167,13 +166,13 @@ class GalleryIntegrationTest extends TestCase { $this->logout(); - return $token; + return [$token, $sharedFile]; } /** * Creates a token for a folder * - * @return bool|string + * @return array<bool|string|Folder> */ protected function prepareFolderToken() { $sharedFolder = $this->createEnv($this->sharerUserId, $this->sharerPassword); @@ -183,7 +182,7 @@ class GalleryIntegrationTest extends TestCase { $this->logout(); - return $token; + return [$token, $sharedFolder]; } /** @@ -222,6 +221,9 @@ class GalleryIntegrationTest extends TestCase { private function createEnv($userId, $userPassword) { $this->setupUser($userId, $userPassword); $userFolder = $this->server->getUserFolder($userId); + $user = $this->server->getUserManager() + ->get($userId); + $user->setDisplayName('UberTester (' . $userId . ')'); $folder1 = $userFolder->newFolder('folder1'); $folder1->newFile('file1'); @@ -243,9 +245,9 @@ class GalleryIntegrationTest extends TestCase { ->setAppValue('core', 'shareapi_allow_links', 'yes'); return Share::shareItem( - $nodeType, $nodeId, \OCP\Share::SHARE_TYPE_LINK, $this->userId, + $nodeType, $nodeId, \OCP\Share::SHARE_TYPE_LINK, 'sh@red p@ssw0rd', \OCP\Constants::PERMISSION_ALL ); } -}
\ No newline at end of file +} diff --git a/tests/integration/environment/EnvironmentTest.php b/tests/integration/environment/EnvironmentTest.php index bf503da8..5d034d98 100644 --- a/tests/integration/environment/EnvironmentTest.php +++ b/tests/integration/environment/EnvironmentTest.php @@ -12,6 +12,9 @@ namespace OCA\Gallery\Environment; +use OCP\Files\Folder; +use OCP\Files\Node; + use \OCA\Gallery\Tests\Integration\GalleryIntegrationTest; /** @@ -39,7 +42,7 @@ class EnvironmentTest extends GalleryIntegrationTest { * Tests is setting up the environment using a token works */ public function testSetTokenBasedEnv() { - $token = $this->prepareFolderToken(); + list($token) = $this->prepareFolderToken(); $this->environment = $this->setTokenBasedEnv($token); } @@ -56,7 +59,7 @@ class EnvironmentTest extends GalleryIntegrationTest { } public function testGetResourceFromIdAsATokenUser() { - $token = $this->prepareFolderToken(); + list($token) = $this->prepareFolderToken(); $this->environment = $this->setTokenBasedEnv($token); $sharedFolder = $this->rootFolder->get($this->sharerUserId . '/files/folder1'); @@ -69,7 +72,7 @@ class EnvironmentTest extends GalleryIntegrationTest { } public function testGetSharedNodeAsATokenUser() { - $token = $this->prepareFolderToken(); + list($token) = $this->prepareFolderToken(); $this->environment = $this->setTokenBasedEnv($token); $sharedFolder = $this->rootFolder->get($this->sharerUserId . '/files/folder1'); @@ -86,7 +89,7 @@ class EnvironmentTest extends GalleryIntegrationTest { * @expects EnvironmentException */ public function testGetSharedNodeAsATokenUserWhenGivenFileToken() { - $token = $this->prepareFileToken(); + list($token) = $this->prepareFileToken(); $this->environment = $this->setTokenBasedEnv($token); $this->environment->getSharedNode(); @@ -96,14 +99,15 @@ class EnvironmentTest extends GalleryIntegrationTest { $this->environment = $this->setUserBasedEnv(); $result = $this->environment->getVirtualRootFolder(); - $userFolderId = $this->server->getUserFolder($this->userId) - ->getId(); + /*$userFolderId = $this->server->getUserFolder($this->userId) + ->getId();*/ + $userFolderId = $this->userFolder->getId(); $this->assertEquals($userFolderId, $result->getId()); } public function testGetVirtualRootFolderAsATokenUser() { - $token = $this->prepareFolderToken(); + list($token) = $this->prepareFolderToken(); $this->environment = $this->setTokenBasedEnv($token); $result = $this->environment->getVirtualRootFolder(); @@ -123,10 +127,126 @@ class EnvironmentTest extends GalleryIntegrationTest { } public function testGetUserIdAsATokenUser() { - $token = $this->prepareFolderToken(); + list($token) = $this->prepareFolderToken(); $this->environment = $this->setTokenBasedEnv($token); $result = $this->environment->getUserId(); $this->assertEquals($this->sharerUserId, $result); } -}
\ No newline at end of file + + public function testGetSharedFolderNameAsATokenUser() { + list($token, $sharedFolder) = $this->prepareFolderToken(); + $this->environment = $this->setTokenBasedEnv($token); + + $result = $this->environment->getSharedFolderName(); + $this->assertEquals($sharedFolder->getName(), $result); + } + + public function testGetSharePasswordAsATokenUser() { + /** @type Node $sharedFolder */ + list($token) = $this->prepareFolderToken(); + $this->environment = $this->setTokenBasedEnv($token); + + $result = $this->environment->getSharePassword(); + + // The password is defined in the bootstrap + $this->assertTrue( + $this->server->getHasher() + ->verify('sh@red p@ssw0rd', $result) + ); + } + + public function testGetPathFromVirtualRootAsALoggedInUser() { + $this->environment = $this->setUserBasedEnv(); + $result = + $this->environment->getPathFromVirtualRoot( + $this->userFolder->get('folder1/folder1.1/file1.1') + ); + + $this->assertEquals('folder1/folder1.1/file1.1', $result); + } + + public function testGetPathFromVirtualRootAsATokenUser() { + /** @type Folder $sharedFolder */ + list($token, $sharedFolder) = $this->prepareFolderToken(); + $this->environment = $this->setTokenBasedEnv($token); + + $result = + $this->environment->getPathFromVirtualRoot($sharedFolder->get('folder1.1/file1.1')); + + $this->assertEquals('folder1.1/file1.1', $result); + } + + public function testGetPathFromUserFolderAsALoggedInUser() { + $this->environment = $this->setUserBasedEnv(); + + $result = + $this->environment->getPathFromUserFolder( + $this->userFolder->get('folder1/folder1.1/file1.1') + ); + + $this->assertEquals('folder1/folder1.1/file1.1', $result); + } + + public function testGetPathFromUserFolderAsATokenUser() { + /** @type Folder $sharedFolder */ + list($token, $sharedFolder) = $this->prepareFolderToken(); + $this->environment = $this->setTokenBasedEnv($token); + + $result = + $this->environment->getPathFromUserFolder($sharedFolder->get('folder1.1/file1.1')); + + $this->assertEquals('folder1/folder1.1/file1.1', $result); + } + + public function testGetDisplayNameAsATokenUser() { + list($token) = $this->prepareFolderToken(); + $this->environment = $this->setTokenBasedEnv($token); + + $result = $this->environment->getDisplayName(); + + $this->assertEquals('UberTester (' . $this->sharerUserId . ')', $result); + } + + public function testGetNodeFromVirtualRootAsALoggedInUser() { + $this->environment = $this->setUserBasedEnv(); + $result = $this->environment->getNodeFromVirtualRoot('folder1/folder1.1/file1.1'); + + $file = $this->userFolder->get('folder1/folder1.1/file1.1'); + + $this->assertEquals($file, $result); + } + + public function testGetNodeFromVirtualRootAsATokenUser() { + /** @type Folder $sharedFolder */ + list($token, $sharedFolder) = $this->prepareFolderToken(); + $this->environment = $this->setTokenBasedEnv($token); + + $result = $this->environment->getNodeFromVirtualRoot('folder1.1/file1.1'); + + $file = $sharedFolder->get('folder1.1/file1.1'); + + $this->assertEquals($file, $result); + } + + public function testGetNodeFromUserFolderAsALoggedInUser() { + $this->environment = $this->setUserBasedEnv(); + $result = $this->environment->getNodeFromUserFolder('folder1/folder1.1/file1.1'); + + $file = $this->userFolder->get('folder1/folder1.1/file1.1'); + + $this->assertEquals($file, $result); + } + + public function testGetNodeFromUserFolderAsATokenUser() { + /** @type Folder $sharedFolder */ + list($token, $sharedFolder) = $this->prepareFolderToken(); + $this->environment = $this->setTokenBasedEnv($token); + + $result = $this->environment->getNodeFromUserFolder('folder1/folder1.1/file1.1'); + + $file = $sharedFolder->get('folder1.1/file1.1'); + + $this->assertEquals($file, $result); + } +} |