]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fix tests, add test for the new feature
authorCôme Chilliet <come.chilliet@nextcloud.com>
Mon, 7 Aug 2023 14:07:20 +0000 (16:07 +0200)
committerbackportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com>
Mon, 28 Aug 2023 13:50:26 +0000 (13:50 +0000)
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
tests/lib/Share20/ManagerTest.php

index 0e56592e1a524f59402abe7f48d075e53a6d6dc2..55d95ea4515c7bf989b02793668a80ce1703513e 100644 (file)
@@ -2714,10 +2714,12 @@ class ManagerTest extends \Test\TestCase {
 
        public function testGetShareByToken() {
                $this->config
-                       ->expects($this->once())
+                       ->expects($this->exactly(2))
                        ->method('getAppValue')
-                       ->with('core', 'shareapi_allow_links', 'yes')
-                       ->willReturn('yes');
+                       ->willReturnMap([
+                               ['core', 'shareapi_allow_links', 'yes', 'yes'],
+                               ['files_sharing', 'hide_disabled_user_shares', 'no', 'no'],
+                       ]);
 
                $factory = $this->createMock(IProviderFactory::class);
 
@@ -2760,10 +2762,12 @@ class ManagerTest extends \Test\TestCase {
 
        public function testGetShareByTokenRoom() {
                $this->config
-                       ->expects($this->once())
+                       ->expects($this->exactly(2))
                        ->method('getAppValue')
-                       ->with('core', 'shareapi_allow_links', 'yes')
-                       ->willReturn('no');
+                       ->willReturnMap([
+                               ['core', 'shareapi_allow_links', 'yes', 'no'],
+                               ['files_sharing', 'hide_disabled_user_shares', 'no', 'no'],
+                       ]);
 
                $factory = $this->createMock(IProviderFactory::class);
 
@@ -2813,10 +2817,12 @@ class ManagerTest extends \Test\TestCase {
 
        public function testGetShareByTokenWithException() {
                $this->config
-                       ->expects($this->once())
+                       ->expects($this->exactly(2))
                        ->method('getAppValue')
-                       ->with('core', 'shareapi_allow_links', 'yes')
-                       ->willReturn('yes');
+                       ->willReturnMap([
+                               ['core', 'shareapi_allow_links', 'yes', 'yes'],
+                               ['files_sharing', 'hide_disabled_user_shares', 'no', 'no'],
+                       ]);
 
                $factory = $this->createMock(IProviderFactory::class);
 
@@ -2864,6 +2870,61 @@ class ManagerTest extends \Test\TestCase {
        }
 
 
+       public function testGetShareByTokenHideDisabledUser() {
+               $this->expectException(\OCP\Share\Exceptions\ShareNotFound::class);
+               $this->expectExceptionMessage('The requested share comes from a disabled user');
+
+               $this->config
+                       ->expects($this->exactly(2))
+                       ->method('getAppValue')
+                       ->willReturnMap([
+                               ['core', 'shareapi_allow_links', 'yes', 'yes'],
+                               ['files_sharing', 'hide_disabled_user_shares', 'no', 'yes'],
+                       ]);
+
+               $this->l->expects($this->once())
+                       ->method('t')
+                       ->willReturnArgument(0);
+
+               $manager = $this->createManagerMock()
+                       ->setMethods(['deleteShare'])
+                       ->getMock();
+
+               $date = new \DateTime();
+               $date->setTime(0, 0, 0);
+               $date->add(new \DateInterval('P2D'));
+               $share = $this->manager->newShare();
+               $share->setExpirationDate($date);
+               $share->setShareOwner('owner');
+               $share->setSharedBy('sharedBy');
+
+               $sharedBy = $this->createMock(IUser::class);
+               $owner = $this->createMock(IUser::class);
+
+               $this->userManager->method('get')->willReturnMap([
+                       ['sharedBy', $sharedBy],
+                       ['owner', $owner],
+               ]);
+
+               $owner->expects($this->once())
+                       ->method('isEnabled')
+                       ->willReturn(true);
+               $sharedBy->expects($this->once())
+                       ->method('isEnabled')
+                       ->willReturn(false);
+
+               $this->defaultProvider->expects($this->once())
+                       ->method('getShareByToken')
+                       ->with('expiredToken')
+                       ->willReturn($share);
+
+               $manager->expects($this->never())
+                       ->method('deleteShare');
+
+               $manager->getShareByToken('expiredToken');
+       }
+
+
        public function testGetShareByTokenExpired() {
                $this->expectException(\OCP\Share\Exceptions\ShareNotFound::class);
                $this->expectExceptionMessage('The requested share does not exist anymore');
@@ -2901,10 +2962,12 @@ class ManagerTest extends \Test\TestCase {
 
        public function testGetShareByTokenNotExpired() {
                $this->config
-                       ->expects($this->once())
+                       ->expects($this->exactly(2))
                        ->method('getAppValue')
-                       ->with('core', 'shareapi_allow_links', 'yes')
-                       ->willReturn('yes');
+                       ->willReturnMap([
+                               ['core', 'shareapi_allow_links', 'yes', 'yes'],
+                               ['files_sharing', 'hide_disabled_user_shares', 'no', 'no'],
+                       ]);
 
                $date = new \DateTime();
                $date->setTime(0, 0, 0);
@@ -2936,11 +2999,12 @@ class ManagerTest extends \Test\TestCase {
 
        public function testGetShareByTokenPublicUploadDisabled() {
                $this->config
-                       ->expects($this->exactly(2))
+                       ->expects($this->exactly(3))
                        ->method('getAppValue')
                        ->willReturnMap([
                                ['core', 'shareapi_allow_links', 'yes', 'yes'],
                                ['core', 'shareapi_allow_public_upload', 'yes', 'no'],
+                               ['files_sharing', 'hide_disabled_user_shares', 'no', 'no'],
                        ]);
 
                $share = $this->manager->newShare();