diff options
Diffstat (limited to 'vendor/sabre/dav/tests/Sabre/CalDAV/Backend/Mock.php')
-rw-r--r-- | vendor/sabre/dav/tests/Sabre/CalDAV/Backend/Mock.php | 267 |
1 files changed, 41 insertions, 226 deletions
diff --git a/vendor/sabre/dav/tests/Sabre/CalDAV/Backend/Mock.php b/vendor/sabre/dav/tests/Sabre/CalDAV/Backend/Mock.php index d196297f7..4412e5531 100644 --- a/vendor/sabre/dav/tests/Sabre/CalDAV/Backend/Mock.php +++ b/vendor/sabre/dav/tests/Sabre/CalDAV/Backend/Mock.php @@ -1,21 +1,25 @@ <?php namespace Sabre\CalDAV\Backend; + use Sabre\DAV; use Sabre\CalDAV; -class Mock extends AbstractBackend implements NotificationSupport, SharingSupport { +class Mock extends AbstractBackend { + + protected $calendarData; + protected $calendars; - private $calendarData; - private $calendars; - private $notifications; - private $shares = array(); + function __construct(array $calendars = [], array $calendarData = []) { - function __construct(array $calendars, array $calendarData, array $notifications = array()) { + foreach ($calendars as &$calendar) { + if (!isset($calendar['id'])) { + $calendar['id'] = DAV\UUIDUtil::getUUID(); + } + } $this->calendars = $calendars; $this->calendarData = $calendarData; - $this->notifications = $notifications; } @@ -38,8 +42,8 @@ class Mock extends AbstractBackend implements NotificationSupport, SharingSuppor */ function getCalendarsForUser($principalUri) { - $r = array(); - foreach($this->calendars as $row) { + $r = []; + foreach ($this->calendars as $row) { if ($row['principaluri'] == $principalUri) { $r[] = $row; } @@ -63,71 +67,29 @@ class Mock extends AbstractBackend implements NotificationSupport, SharingSuppor * @param array $properties * @return string|int */ - function createCalendar($principalUri,$calendarUri,array $properties) { + function createCalendar($principalUri, $calendarUri, array $properties) { $id = DAV\UUIDUtil::getUUID(); - $this->calendars[] = array_merge(array( - 'id' => $id, - 'principaluri' => $principalUri, - 'uri' => $calendarUri, - '{' . CalDAV\Plugin::NS_CALDAV . '}supported-calendar-component-set' => new CalDAV\Property\SupportedCalendarComponentSet(array('VEVENT','VTODO')), - ), $properties); + $this->calendars[] = array_merge([ + 'id' => $id, + 'principaluri' => $principalUri, + 'uri' => $calendarUri, + '{' . CalDAV\Plugin::NS_CALDAV . '}supported-calendar-component-set' => new CalDAV\Xml\Property\SupportedCalendarComponentSet(['VEVENT', 'VTODO']), + ], $properties); return $id; } /** - * Updates properties on this node, - * - * The properties array uses the propertyName in clark-notation as key, - * and the array value for the property value. In the case a property - * should be deleted, the property value will be null. - * - * This method must be atomic. If one property cannot be changed, the - * entire operation must fail. - * - * If the operation was successful, true can be returned. - * If the operation failed, false can be returned. - * - * Deletion of a non-existent property is always successful. - * - * Lastly, it is optional to return detailed information about any - * failures. In this case an array should be returned with the following - * structure: - * - * array( - * 403 => array( - * '{DAV:}displayname' => null, - * ), - * 424 => array( - * '{DAV:}owner' => null, - * ) - * ) - * - * In this example it was forbidden to update {DAV:}displayname. - * (403 Forbidden), which in turn also caused {DAV:}owner to fail - * (424 Failed Dependency) because the request needs to be atomic. - * - * @param string $calendarId - * @param array $properties - * @return bool|array - */ - public function updateCalendar($calendarId, array $properties) { - - return false; - - } - - /** * Delete a calendar and all it's objects * * @param string $calendarId * @return void */ - public function deleteCalendar($calendarId) { + function deleteCalendar($calendarId) { - foreach($this->calendars as $k=>$calendar) { + foreach ($this->calendars as $k => $calendar) { if ($calendar['id'] === $calendarId) { unset($this->calendars[$k]); } @@ -157,17 +119,17 @@ class Mock extends AbstractBackend implements NotificationSupport, SharingSuppor * @param string $calendarId * @return array */ - public function getCalendarObjects($calendarId) { + function getCalendarObjects($calendarId) { if (!isset($this->calendarData[$calendarId])) - return array(); + return []; $objects = $this->calendarData[$calendarId]; - foreach($objects as $uri => &$object) { + foreach ($objects as $uri => &$object) { $object['calendarid'] = $calendarId; $object['uri'] = $uri; - + $object['lastmodified'] = null; } return $objects; @@ -185,7 +147,7 @@ class Mock extends AbstractBackend implements NotificationSupport, SharingSuppor * @param string $objectUri * @return array */ - function getCalendarObject($calendarId,$objectUri) { + function getCalendarObject($calendarId, $objectUri) { if (!isset($this->calendarData[$calendarId][$objectUri])) { throw new DAV\Exception\NotFound('Object could not be found'); @@ -193,6 +155,7 @@ class Mock extends AbstractBackend implements NotificationSupport, SharingSuppor $object = $this->calendarData[$calendarId][$objectUri]; $object['calendarid'] = $calendarId; $object['uri'] = $objectUri; + $object['lastmodified'] = null; return $object; } @@ -205,13 +168,14 @@ class Mock extends AbstractBackend implements NotificationSupport, SharingSuppor * @param string $calendarData * @return void */ - function createCalendarObject($calendarId,$objectUri,$calendarData) { + function createCalendarObject($calendarId, $objectUri, $calendarData) { - $this->calendarData[$calendarId][$objectUri] = array( + $this->calendarData[$calendarId][$objectUri] = [ 'calendardata' => $calendarData, - 'calendarid' => $calendarId, - 'uri' => $objectUri, - ); + 'calendarid' => $calendarId, + 'uri' => $objectUri, + ]; + return '"' . md5($calendarData) . '"'; } @@ -223,13 +187,14 @@ class Mock extends AbstractBackend implements NotificationSupport, SharingSuppor * @param string $calendarData * @return void */ - function updateCalendarObject($calendarId,$objectUri,$calendarData) { + function updateCalendarObject($calendarId, $objectUri, $calendarData) { - $this->calendarData[$calendarId][$objectUri] = array( + $this->calendarData[$calendarId][$objectUri] = [ 'calendardata' => $calendarData, - 'calendarid' => $calendarId, - 'uri' => $objectUri, - ); + 'calendarid' => $calendarId, + 'uri' => $objectUri, + ]; + return '"' . md5($calendarData) . '"'; } @@ -240,161 +205,11 @@ class Mock extends AbstractBackend implements NotificationSupport, SharingSuppor * @param string $objectUri * @return void */ - function deleteCalendarObject($calendarId,$objectUri) { + function deleteCalendarObject($calendarId, $objectUri) { throw new Exception('Not implemented'); } - /** - * Returns a list of notifications for a given principal url. - * - * The returned array should only consist of implementations of - * Sabre\CalDAV\Notifications\INotificationType. - * - * @param string $principalUri - * @return array - */ - public function getNotificationsForPrincipal($principalUri) { - - if (isset($this->notifications[$principalUri])) { - return $this->notifications[$principalUri]; - } - return array(); - - } - - /** - * This deletes a specific notifcation. - * - * This may be called by a client once it deems a notification handled. - * - * @param string $principalUri - * @param Sabre\CalDAV\Notifications\INotificationType $notification - * @return void - */ - public function deleteNotification($principalUri, CalDAV\Notifications\INotificationType $notification) { - - foreach($this->notifications[$principalUri] as $key=>$value) { - if ($notification === $value) { - unset($this->notifications[$principalUri][$key]); - } - } - - } - - /** - * Updates the list of shares. - * - * The first array is a list of people that are to be added to the - * calendar. - * - * Every element in the add array has the following properties: - * * href - A url. Usually a mailto: address - * * commonName - Usually a first and last name, or false - * * summary - A description of the share, can also be false - * * readOnly - A boolean value - * - * Every element in the remove array is just the address string. - * - * Note that if the calendar is currently marked as 'not shared' by and - * this method is called, the calendar should be 'upgraded' to a shared - * calendar. - * - * @param mixed $calendarId - * @param array $add - * @param array $remove - * @return void - */ - public function updateShares($calendarId, array $add, array $remove) { - - if (!isset($this->shares[$calendarId])) { - $this->shares[$calendarId] = array(); - } - - foreach($add as $val) { - $val['status'] = CalDAV\SharingPlugin::STATUS_NORESPONSE; - $this->shares[$calendarId][] = $val; - } - - foreach($this->shares[$calendarId] as $k=>$share) { - - if (in_array($share['href'], $remove)) { - unset($this->shares[$calendarId][$k]); - } - - } - - // Re-numbering keys - $this->shares[$calendarId] = array_values($this->shares[$calendarId]); - - } - - /** - * Returns the list of people whom this calendar is shared with. - * - * Every element in this array should have the following properties: - * * href - Often a mailto: address - * * commonName - Optional, for example a first + last name - * * status - See the Sabre\CalDAV\SharingPlugin::STATUS_ constants. - * * readOnly - boolean - * * summary - Optional, a description for the share - * - * @param mixed $calendarId - * @return array - */ - public function getShares($calendarId) { - - if (!isset($this->shares[$calendarId])) { - return array(); - } - - return $this->shares[$calendarId]; - - } - - /** - * This method is called when a user replied to a request to share. - * - * @param string href The sharee who is replying (often a mailto: address) - * @param int status One of the SharingPlugin::STATUS_* constants - * @param string $calendarUri The url to the calendar thats being shared - * @param string $inReplyTo The unique id this message is a response to - * @param string $summary A description of the reply - * @return void - */ - public function shareReply($href, $status, $calendarUri, $inReplyTo, $summary = null) { - - // This operation basically doesn't do anything yet - if ($status === CalDAV\SharingPlugin::STATUS_ACCEPTED) { - return 'calendars/blabla/calendar'; - } - - } - - /** - * Publishes a calendar - * - * @param mixed $calendarId - * @param bool $value - * @return void - */ - public function setPublishStatus($calendarId, $value) { - - foreach($this->calendars as $k=>$cal) { - if ($cal['id'] === $calendarId) { - if (!$value) { - unset($cal['{http://calendarserver.org/ns/}publish-url']); - } else { - $cal['{http://calendarserver.org/ns/}publish-url'] = 'http://example.org/public/ ' . $calendarId . '.ics'; - } - return; - } - } - - throw new DAV\Exception('Calendar with id "' . $calendarId . '" not found'); - - } - } |