diff options
author | Roeland Jago Douma <roeland@famdouma.nl> | 2016-11-04 15:40:59 +0100 |
---|---|---|
committer | Roeland Jago Douma <roeland@famdouma.nl> | 2016-11-04 15:40:59 +0100 |
commit | 1e6175dfcbb7a0c554fecf62c2d31a422df841e6 (patch) | |
tree | aa2e7fc6a465742b2bf6aa8ce0e6596b57052640 | |
parent | c016d947e2243329243b62a41caab82a4ff46a10 (diff) | |
download | nextcloud-server-1e6175dfcbb7a0c554fecf62c2d31a422df841e6.tar.gz nextcloud-server-1e6175dfcbb7a0c554fecf62c2d31a422df841e6.zip |
Fix CalendarTest
* Made sure delete from self works again (and is tested)
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
-rw-r--r-- | apps/dav/lib/CalDAV/Calendar.php | 7 | ||||
-rw-r--r-- | apps/dav/tests/unit/CalDAV/CalendarTest.php | 19 |
2 files changed, 25 insertions, 1 deletions
diff --git a/apps/dav/lib/CalDAV/Calendar.php b/apps/dav/lib/CalDAV/Calendar.php index 2df8944b83f..9fedbe6f91f 100644 --- a/apps/dav/lib/CalDAV/Calendar.php +++ b/apps/dav/lib/CalDAV/Calendar.php @@ -153,7 +153,8 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IShareable { } function delete() { - if (isset($this->calendarInfo['{http://owncloud.org/ns}owner-principal'])) { + if (isset($this->calendarInfo['{http://owncloud.org/ns}owner-principal']) && + $this->calendarInfo['{http://owncloud.org/ns}owner-principal'] !== $this->calendarInfo['principaluri']) { $principal = 'principal:' . parent::getOwner(); $shares = $this->getShares(); $shares = array_filter($shares, function($share) use ($principal){ @@ -283,6 +284,10 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IShareable { } private function isShared() { + if (!isset($this->calendarInfo['{http://owncloud.org/ns}owner-principal'])) { + return false; + } + return $this->calendarInfo['{http://owncloud.org/ns}owner-principal'] !== $this->calendarInfo['principaluri']; } diff --git a/apps/dav/tests/unit/CalDAV/CalendarTest.php b/apps/dav/tests/unit/CalDAV/CalendarTest.php index bd4c1f6aabb..e585a23a9a2 100644 --- a/apps/dav/tests/unit/CalDAV/CalendarTest.php +++ b/apps/dav/tests/unit/CalDAV/CalendarTest.php @@ -85,6 +85,25 @@ class CalendarTest extends TestCase { $c->delete(); } + public function testDeleteOwn() { + /** @var \PHPUnit_Framework_MockObject_MockObject | CalDavBackend $backend */ + $backend = $this->createMock(CalDavBackend::class); + $backend->expects($this->never())->method('updateShares'); + $backend->expects($this->never())->method('getShares'); + + $backend->expects($this->once())->method('deleteCalendar') + ->with(666); + + $calendarInfo = [ + '{http://owncloud.org/ns}owner-principal' => 'user1', + 'principaluri' => 'user1', + 'id' => 666, + 'uri' => 'cal', + ]; + $c = new Calendar($backend, $calendarInfo, $this->l10n); + $c->delete(); + } + public function dataPropPatch() { return [ [[], true], |