summaryrefslogtreecommitdiffstats
path: root/apps/files_sharing
diff options
context:
space:
mode:
authorBjörn Schießle <schiessle@owncloud.com>2014-05-16 14:57:11 -0400
committerBjörn Schießle <schiessle@owncloud.com>2014-05-16 14:57:11 -0400
commit42b99b6d0fbcaf54b3cf3b3c9be5bc8a9c7a2e12 (patch)
treee5eef49dd4ca7a5bb71ef5f2cae583639f79202b /apps/files_sharing
parentb52cb8f5570f4ec0e73aa5b2e1a5dbd178135382 (diff)
parent7a48f24459a6e0f253c4893d5d08056e1f22dd43 (diff)
downloadnextcloud-server-42b99b6d0fbcaf54b3cf3b3c9be5bc8a9c7a2e12.tar.gz
nextcloud-server-42b99b6d0fbcaf54b3cf3b3c9be5bc8a9c7a2e12.zip
Merge pull request #8555 from owncloud/sharing_default_expire_only_public_links
use default expire date only for link shares
Diffstat (limited to 'apps/files_sharing')
-rw-r--r--apps/files_sharing/tests/api.php54
1 files changed, 54 insertions, 0 deletions
diff --git a/apps/files_sharing/tests/api.php b/apps/files_sharing/tests/api.php
index a908caf6632..7c5326f6539 100644
--- a/apps/files_sharing/tests/api.php
+++ b/apps/files_sharing/tests/api.php
@@ -1058,4 +1058,58 @@ class Test_Files_Sharing_Api extends Test_Files_Sharing_Base {
\OCP\Share::shareItem('file', $info->getId(), \OCP\Share::SHARE_TYPE_LINK, \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2, 31);
}
+
+ public function testDefaultExpireDate() {
+ \Test_Files_Sharing_Api::loginHelper(\Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER1);
+ \OC_Appconfig::setValue('core', 'shareapi_default_expire_date', 'yes');
+ \OC_Appconfig::setValue('core', 'shareapi_enforce_expire_date', 'yes');
+ \OC_Appconfig::setValue('core', 'shareapi_expire_after_n_days', '2');
+
+ // default expire date is set to 2 days
+ // the time when the share was created is set to 3 days in the past
+ // user defined expire date is set to +2 days from now on
+ // -> link should be already expired by the default expire date but the user
+ // share should still exists.
+ $now = time();
+ $dateFormat = 'Y-m-d H:i:s';
+ $shareCreated = $now - 3 * 24 * 60 * 60;
+ $expireDate = date($dateFormat, $now + 2 * 24 * 60 * 60);
+
+ $info = OC\Files\Filesystem::getFileInfo($this->filename);
+ $this->assertTrue($info instanceof \OC\Files\FileInfo);
+
+ $result = \OCP\Share::shareItem('file', $info->getId(), \OCP\Share::SHARE_TYPE_LINK, null, \OCP\PERMISSION_READ);
+ $this->assertTrue(is_string($result));
+
+ $result = \OCP\Share::shareItem('file', $info->getId(), \OCP\Share::SHARE_TYPE_USER, \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2, 31);
+ $this->assertTrue($result);
+
+ $result = \OCP\Share::setExpirationDate('file', $info->getId() , $expireDate);
+ $this->assertTrue($result);
+
+ //manipulate stime so that both shares are older then the default expire date
+ $statement = "UPDATE `*PREFIX*share` SET `stime` = ? WHERE `share_type` = ?";
+ $query = \OCP\DB::prepare($statement);
+ $result = $query->execute(array($shareCreated, \OCP\Share::SHARE_TYPE_LINK));
+ $this->assertSame(1, $result);
+ $statement = "UPDATE `*PREFIX*share` SET `stime` = ? WHERE `share_type` = ?";
+ $query = \OCP\DB::prepare($statement);
+ $result = $query->execute(array($shareCreated, \OCP\Share::SHARE_TYPE_USER));
+ $this->assertSame(1, $result);
+
+ // now the link share should expire because of enforced default expire date
+ // the user share should still exist
+ $result = \OCP\Share::getItemShared('file', $info->getId());
+ $this->assertTrue(is_array($result));
+ $this->assertSame(1, count($result));
+ $share = reset($result);
+ $this->assertSame(\OCP\Share::SHARE_TYPE_USER, $share['share_type']);
+
+ //cleanup
+ $result = \OCP\Share::unshare('file', $info->getId(), \OCP\Share::SHARE_TYPE_USER, \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2);
+ $this->assertTrue($result);
+ \OC_Appconfig::setValue('core', 'shareapi_default_expire_date', 'no');
+ \OC_Appconfig::setValue('core', 'shareapi_enforce_expire_date', 'no');
+
+ }
}