From dd3307dd19bb2b61b194ba7962035a6ceae64249 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Thu, 19 Mar 2015 10:47:09 +0100 Subject: [PATCH] Added unit test Tests added to make sure that removing an expire date when this is enforced is not allowed. --- apps/files_sharing/tests/api.php | 18 ++++++++++++++++ tests/lib/share/share.php | 35 ++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/apps/files_sharing/tests/api.php b/apps/files_sharing/tests/api.php index 9256f9bcc85..371c94a8c88 100644 --- a/apps/files_sharing/tests/api.php +++ b/apps/files_sharing/tests/api.php @@ -1079,6 +1079,24 @@ class Test_Files_Sharing_Api extends TestCase { $this->assertTrue(is_array($updatedLinkShare)); $this->assertEquals($dateWithinRange->format('Y-m-d') . ' 00:00:00', $updatedLinkShare['expiration']); + + // Try to remove expire date + $params = array(); + $params['id'] = $linkShare['id']; + $params['_put'] = ['expireDate' => '']; + + $result = \OCA\Files_Sharing\API\Local::updateShare($params); + + $this->assertFalse($result->succeeded()); + + $items = \OCP\Share::getItemShared('file', $linkShare['file_source']); + + $updatedLinkShare = reset($items); + + // date shouldn't be changed + $this->assertTrue(is_array($updatedLinkShare)); + $this->assertEquals($dateWithinRange->format('Y-m-d') . ' 00:00:00', $updatedLinkShare['expiration']); + // cleanup $config->setAppValue('core', 'shareapi_default_expire_date', 'no'); $config->setAppValue('core', 'shareapi_enforce_expire_date', 'no'); diff --git a/tests/lib/share/share.php b/tests/lib/share/share.php index 1ef62dc2b07..42bb82968af 100644 --- a/tests/lib/share/share.php +++ b/tests/lib/share/share.php @@ -1051,6 +1051,41 @@ class Test_Share extends \Test\TestCase { ), ); } + + /** + * Ensure that we do not allow removing a an expiration date from a link share if this + * is enforced by the settings. + */ + public function testClearExpireDateWhileEnforced() { + OC_User::setUserId($this->user1); + + \OC_Appconfig::setValue('core', 'shareapi_default_expire_date', 'yes'); + \OC_Appconfig::setValue('core', 'shareapi_expire_after_n_days', '2'); + \OC_Appconfig::setValue('core', 'shareapi_enforce_expire_date', 'yes'); + + $token = OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_LINK, null, \OCP\Constants::PERMISSION_READ); + $this->assertInternalType( + 'string', + $token, + 'Failed asserting that user 1 successfully shared text.txt as link with token.' + ); + + $setExpireDateFailed = false; + try { + $this->assertTrue( + OCP\Share::setExpirationDate('test', 'test.txt', '', ''), + 'Failed asserting that user 1 successfully set an expiration date for the test.txt share.' + ); + } catch (\Exception $e) { + $setExpireDateFailed = true; + } + + $this->assertTrue($setExpireDateFailed); + + \OC_Appconfig::deleteKey('core', 'shareapi_default_expire_date'); + \OC_Appconfig::deleteKey('core', 'shareapi_expire_after_n_days'); + \OC_Appconfig::deleteKey('core', 'shareapi_enforce_expire_date'); + } } class DummyShareClass extends \OC\Share\Share { -- 2.39.5