diff options
Diffstat (limited to 'tests/lib/files/view.php')
-rw-r--r-- | tests/lib/files/view.php | 67 |
1 files changed, 63 insertions, 4 deletions
diff --git a/tests/lib/files/view.php b/tests/lib/files/view.php index 382c033f19c..bb42f385fc5 100644 --- a/tests/lib/files/view.php +++ b/tests/lib/files/view.php @@ -44,8 +44,22 @@ class View extends \Test\TestCase { * @var \OC\Files\Storage\Storage[] $storages */ private $storages = array(); + + /** + * @var string + */ private $user; + /** + * @var \OCP\IUser + */ + private $userObject; + + /** + * @var \OCP\IGroup + */ + private $groupObject; + /** @var \OC\Files\Storage\Storage */ private $tempStorage; @@ -57,10 +71,15 @@ class View extends \Test\TestCase { \OC_User::useBackend(new \OC_User_Dummy()); //login - \OC_User::createUser('test', 'test'); + $userManager = \OC::$server->getUserManager(); + $groupManager = \OC::$server->getGroupManager(); + $this->user = 'test'; + $this->userObject = $userManager->createUser('test', 'test'); - $this->loginAsUser('test'); - $this->user = \OC_User::getUser(); + $this->groupObject = $groupManager->createGroup('group1'); + $this->groupObject->addUser($this->userObject); + + $this->loginAsUser($this->user); // clear mounts but somehow keep the root storage // that was initialized above... \OC\Files\Filesystem::clearMounts(); @@ -81,6 +100,10 @@ class View extends \Test\TestCase { } $this->logout(); + + $this->userObject->delete(); + $this->groupObject->delete(); + parent::tearDown(); } @@ -208,6 +231,40 @@ class View extends \Test\TestCase { $this->assertEquals(4, count($folderContent)); } + public function sharingDisabledPermissionProvider() { + return [ + ['no', '', true], + ['yes', 'group1', false], + ]; + } + + /** + * @dataProvider sharingDisabledPermissionProvider + */ + public function testRemoveSharePermissionWhenSharingDisabledForUser($excludeGroups, $excludeGroupsList, $expectedShareable) { + $appConfig = \OC::$server->getAppConfig(); + $oldExcludeGroupsFlag = $appConfig->getValue('core', 'shareapi_exclude_groups', 'no'); + $oldExcludeGroupsList = $appConfig->getValue('core', 'shareapi_exclude_groups_list', ''); + $appConfig->setValue('core', 'shareapi_exclude_groups', $excludeGroups); + $appConfig->setValue('core', 'shareapi_exclude_groups_list', $excludeGroupsList); + + $storage1 = $this->getTestStorage(); + $storage2 = $this->getTestStorage(); + \OC\Files\Filesystem::mount($storage1, array(), '/'); + \OC\Files\Filesystem::mount($storage2, array(), '/mount'); + + $view = new \OC\Files\View('/'); + + $folderContent = $view->getDirectoryContent(''); + $this->assertEquals($expectedShareable, $folderContent[0]->isShareable()); + + $folderContent = $view->getDirectoryContent('mount'); + $this->assertEquals($expectedShareable, $folderContent[0]->isShareable()); + + $appConfig->setValue('core', 'shareapi_exclude_groups', $oldExcludeGroupsFlag); + $appConfig->setValue('core', 'shareapi_exclude_groups_list', $oldExcludeGroupsList); + } + function testCacheIncompleteFolder() { $storage1 = $this->getTestStorage(false); \OC\Files\Filesystem::clearMounts(); @@ -1329,7 +1386,9 @@ class View extends \Test\TestCase { ['/foo/files/bar', '/foo', true], ['/foo', '/foo', false], ['/foo', '/files/foo', true], - ['/foo', 'filesfoo', false] + ['/foo', 'filesfoo', false], + ['', '/foo/files', true], + ['', '/foo/files/bar.txt', true] ]; } |