aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/sabre/dav/tests/Sabre/CalDAV/SharedCalendarTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/sabre/dav/tests/Sabre/CalDAV/SharedCalendarTest.php')
-rw-r--r--vendor/sabre/dav/tests/Sabre/CalDAV/SharedCalendarTest.php122
1 files changed, 122 insertions, 0 deletions
diff --git a/vendor/sabre/dav/tests/Sabre/CalDAV/SharedCalendarTest.php b/vendor/sabre/dav/tests/Sabre/CalDAV/SharedCalendarTest.php
new file mode 100644
index 000000000..955831917
--- /dev/null
+++ b/vendor/sabre/dav/tests/Sabre/CalDAV/SharedCalendarTest.php
@@ -0,0 +1,122 @@
+<?php
+
+namespace Sabre\CalDAV;
+
+use Sabre\DAVACL;
+
+class SharedCalendarTest extends \PHPUnit_Framework_TestCase {
+
+ protected $backend;
+
+ function getInstance(array $props = null) {
+
+ if (is_null($props)) {
+ $props = array(
+ 'id' => 1,
+ '{http://calendarserver.org/ns/}shared-url' => 'calendars/owner/original',
+ '{http://sabredav.org/ns}owner-principal' => 'principals/owner',
+ '{http://sabredav.org/ns}read-only' => false,
+ 'principaluri' => 'principals/sharee',
+ );
+ }
+
+ $this->backend = new Backend\Mock(
+ array($props),
+ array(),
+ array()
+ );
+ $this->backend->updateShares(1, array(
+ array(
+ 'href' => 'mailto:removeme@example.org',
+ 'commonName' => 'To be removed',
+ 'readOnly' => true,
+ ),
+ ), array());
+
+ return new SharedCalendar($this->backend, $props);
+
+ }
+
+ function testGetSharedUrl() {
+ $this->assertEquals('calendars/owner/original', $this->getInstance()->getSharedUrl());
+ }
+
+ function testGetShares() {
+
+ $this->assertEquals(array(array(
+ 'href' => 'mailto:removeme@example.org',
+ 'commonName' => 'To be removed',
+ 'readOnly' => true,
+ 'status' => SharingPlugin::STATUS_NORESPONSE,
+ )), $this->getInstance()->getShares());
+
+ }
+
+ function testGetOwner() {
+ $this->assertEquals('principals/owner', $this->getInstance()->getOwner());
+ }
+
+ function testGetACL() {
+
+ $expected = array(
+ array(
+ 'privilege' => '{DAV:}read',
+ 'principal' => 'principals/owner',
+ 'protected' => true,
+ ),
+ array(
+ 'privilege' => '{DAV:}write',
+ 'principal' => 'principals/owner',
+ 'protected' => true,
+ ),
+ array(
+ 'privilege' => '{DAV:}read',
+ 'principal' => 'principals/owner/calendar-proxy-write',
+ 'protected' => true,
+ ),
+ array(
+ 'privilege' => '{DAV:}write',
+ 'principal' => 'principals/owner/calendar-proxy-write',
+ 'protected' => true,
+ ),
+ array(
+ 'privilege' => '{DAV:}read',
+ 'principal' => 'principals/owner/calendar-proxy-read',
+ 'protected' => true,
+ ),
+ array(
+ 'privilege' => '{' . Plugin::NS_CALDAV . '}read-free-busy',
+ 'principal' => '{DAV:}authenticated',
+ 'protected' => true,
+ ),
+ array(
+ 'privilege' => '{DAV:}read',
+ 'principal' => 'principals/sharee',
+ 'protected' => true,
+ ),
+ array(
+ 'privilege' => '{DAV:}write',
+ 'principal' => 'principals/sharee',
+ 'protected' => true,
+ ),
+ );
+
+ $this->assertEquals($expected, $this->getInstance()->getACL());
+
+ }
+
+ /**
+ * @expectedException InvalidArgumentException
+ */
+ public function testCreateInstanceMissingArg() {
+
+ $this->getInstance(array(
+ 'id' => 1,
+ '{http://calendarserver.org/ns/}shared-url' => 'calendars/owner/original',
+ '{http://sabredav.org/ns}read-only' => false,
+ 'principaluri' => 'principals/sharee',
+ ));
+
+ }
+
+}