aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/share
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@owncloud.com>2013-09-23 12:44:11 +0200
committerAndreas Fischer <bantu@owncloud.com>2013-09-23 12:44:11 +0200
commit4a9f1cc74d7323b43983023c2b5b28e550e8c85d (patch)
tree13b09a7b9bc56eaffa3872de0260896b2916ca30 /tests/lib/share
parent2a17025d537c41b9366c9592c985b911d9394337 (diff)
parent9851f0f4f2a97dc6ac1382bcd533eb23feffa4e0 (diff)
downloadnextcloud-server-4a9f1cc74d7323b43983023c2b5b28e550e8c85d.tar.gz
nextcloud-server-4a9f1cc74d7323b43983023c2b5b28e550e8c85d.zip
Merge remote-tracking branch 'owncloud/master' into fixing-4866-master
* owncloud/master: (98 commits) [tx-robot] updated from transifex files: when filtering search results, ensure results are children of the fakeroot not just path starting the same setting a default on filecache column unencrypted_size [tx-robot] updated from transifex remove unneccessary lib in namespace namespaces use upcasefirst parts when _ is left in namespace and files are named after their classes the autoloader will also find classes in the lib folder of an app its magic! initialize variable calculate correct permissions while toggle the password protection make sure that both $permissions and $oldPermissions have the same type Add copyright, remove starting blank line update inherit docs comment Fix insert/update/delete helper functions for oracle Add missing return true statements to legacy preferences functions Add missing static Convert OC_Preference to object interface fix race condition in lazy preview loading use {count} instead of 'One' for more versatile translation fix double translation of error message use n to translate title fixing typos and l10n ... Conflicts: tests/lib/files/cache/scanner.php
Diffstat (limited to 'tests/lib/share')
-rw-r--r--tests/lib/share/share.php145
1 files changed, 135 insertions, 10 deletions
diff --git a/tests/lib/share/share.php b/tests/lib/share/share.php
index e7d441a7e78..e02b0e4354d 100644
--- a/tests/lib/share/share.php
+++ b/tests/lib/share/share.php
@@ -29,6 +29,8 @@ class Test_Share extends PHPUnit_Framework_TestCase {
protected $group1;
protected $group2;
protected $resharing;
+ protected $dateInFuture;
+ protected $dateInPast;
public function setUp() {
OC_User::clearBackends();
@@ -58,6 +60,12 @@ class Test_Share extends PHPUnit_Framework_TestCase {
OC::registerShareHooks();
$this->resharing = OC_Appconfig::getValue('core', 'shareapi_allow_resharing', 'yes');
OC_Appconfig::setValue('core', 'shareapi_allow_resharing', 'yes');
+
+ // 20 Minutes in the past, 20 minutes in the future.
+ $now = time();
+ $dateFormat = 'Y-m-d H:i:s';
+ $this->dateInPast = date($dateFormat, $now - 20 * 60);
+ $this->dateInFuture = date($dateFormat, $now + 20 * 60);
}
public function tearDown() {
@@ -121,6 +129,26 @@ class Test_Share extends PHPUnit_Framework_TestCase {
}
}
+ protected function shareUserOneTestFileWithUserTwo() {
+ OC_User::setUserId($this->user1);
+ $this->assertTrue(
+ OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_USER, $this->user2, OCP\PERMISSION_READ),
+ 'Failed asserting that user 1 successfully shared text.txt with user 2.'
+ );
+ $this->assertEquals(
+ array('test.txt'),
+ OCP\Share::getItemShared('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE),
+ 'Failed asserting that test.txt is a shared file of user 1.'
+ );
+
+ OC_User::setUserId($this->user2);
+ $this->assertEquals(
+ array('test.txt'),
+ OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE),
+ 'Failed asserting that user 2 has access to test.txt after initial sharing.'
+ );
+ }
+
public function testShareWithUser() {
// Invalid shares
$message = 'Sharing test.txt failed, because the user '.$this->user1.' is the item owner';
@@ -146,10 +174,7 @@ class Test_Share extends PHPUnit_Framework_TestCase {
}
// Valid share
- $this->assertTrue(OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_USER, $this->user2, OCP\PERMISSION_READ));
- $this->assertEquals(array('test.txt'), OCP\Share::getItemShared('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE));
- OC_User::setUserId($this->user2);
- $this->assertEquals(array('test.txt'), OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE));
+ $this->shareUserOneTestFileWithUserTwo();
// Attempt to share again
OC_User::setUserId($this->user1);
@@ -264,6 +289,66 @@ class Test_Share extends PHPUnit_Framework_TestCase {
$this->assertEquals(array('test1.txt'), OCP\Share::getItemsSharedWith('test', Test_Share_Backend::FORMAT_TARGET));
}
+ public function testShareWithUserExpirationExpired() {
+ $this->shareUserOneTestFileWithUserTwo();
+
+ OC_User::setUserId($this->user1);
+ $this->assertTrue(
+ OCP\Share::setExpirationDate('test', 'test.txt', $this->dateInPast),
+ 'Failed asserting that user 1 successfully set an expiration date for the test.txt share.'
+ );
+
+ OC_User::setUserId($this->user2);
+ $this->assertFalse(
+ OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE),
+ 'Failed asserting that user 2 no longer has access to test.txt after expiration.'
+ );
+ }
+
+ public function testShareWithUserExpirationValid() {
+ $this->shareUserOneTestFileWithUserTwo();
+
+ OC_User::setUserId($this->user1);
+ $this->assertTrue(
+ OCP\Share::setExpirationDate('test', 'test.txt', $this->dateInFuture),
+ 'Failed asserting that user 1 successfully set an expiration date for the test.txt share.'
+ );
+
+ OC_User::setUserId($this->user2);
+ $this->assertEquals(
+ array('test.txt'),
+ OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE),
+ 'Failed asserting that user 2 still has access to test.txt after expiration date has been set.'
+ );
+ }
+
+ protected function shareUserOneTestFileWithGroupOne() {
+ OC_User::setUserId($this->user1);
+ $this->assertTrue(
+ OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_GROUP, $this->group1, OCP\PERMISSION_READ),
+ 'Failed asserting that user 1 successfully shared text.txt with group 1.'
+ );
+ $this->assertEquals(
+ array('test.txt'),
+ OCP\Share::getItemShared('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE),
+ 'Failed asserting that test.txt is a shared file of user 1.'
+ );
+
+ OC_User::setUserId($this->user2);
+ $this->assertEquals(
+ array('test.txt'),
+ OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE),
+ 'Failed asserting that user 2 has access to test.txt after initial sharing.'
+ );
+
+ OC_User::setUserId($this->user3);
+ $this->assertEquals(
+ array('test.txt'),
+ OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE),
+ 'Failed asserting that user 3 has access to test.txt after initial sharing.'
+ );
+ }
+
public function testShareWithGroup() {
// Invalid shares
$message = 'Sharing test.txt failed, because the group foobar does not exist';
@@ -285,12 +370,7 @@ class Test_Share extends PHPUnit_Framework_TestCase {
OC_Appconfig::setValue('core', 'shareapi_share_policy', $policy);
// Valid share
- $this->assertTrue(OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_GROUP, $this->group1, OCP\PERMISSION_READ));
- $this->assertEquals(array('test.txt'), OCP\Share::getItemShared('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE));
- OC_User::setUserId($this->user2);
- $this->assertEquals(array('test.txt'), OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE));
- OC_User::setUserId($this->user3);
- $this->assertEquals(array('test.txt'), OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE));
+ $this->shareUserOneTestFileWithGroupOne();
// Attempt to share again
OC_User::setUserId($this->user1);
@@ -410,4 +490,49 @@ class Test_Share extends PHPUnit_Framework_TestCase {
$this->assertEquals(array(), OCP\Share::getItemsShared('test'));
}
+ public function testShareWithGroupExpirationExpired() {
+ $this->shareUserOneTestFileWithGroupOne();
+
+ OC_User::setUserId($this->user1);
+ $this->assertTrue(
+ OCP\Share::setExpirationDate('test', 'test.txt', $this->dateInPast),
+ 'Failed asserting that user 1 successfully set an expiration date for the test.txt share.'
+ );
+
+ OC_User::setUserId($this->user2);
+ $this->assertFalse(
+ OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE),
+ 'Failed asserting that user 2 no longer has access to test.txt after expiration.'
+ );
+
+ OC_User::setUserId($this->user3);
+ $this->assertFalse(
+ OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE),
+ 'Failed asserting that user 3 no longer has access to test.txt after expiration.'
+ );
+ }
+
+ public function testShareWithGroupExpirationValid() {
+ $this->shareUserOneTestFileWithGroupOne();
+
+ OC_User::setUserId($this->user1);
+ $this->assertTrue(
+ OCP\Share::setExpirationDate('test', 'test.txt', $this->dateInFuture),
+ 'Failed asserting that user 1 successfully set an expiration date for the test.txt share.'
+ );
+
+ OC_User::setUserId($this->user2);
+ $this->assertEquals(
+ array('test.txt'),
+ OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE),
+ 'Failed asserting that user 2 still has access to test.txt after expiration date has been set.'
+ );
+
+ OC_User::setUserId($this->user3);
+ $this->assertEquals(
+ array('test.txt'),
+ OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE),
+ 'Failed asserting that user 3 still has access to test.txt after expiration date has been set.'
+ );
+ }
}