|
|
|
|
@ -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.'
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|