1 <?php
2 
3 namespace Sabre\CalDAV\Schedule;
4 
5 use Sabre\DAVACL;
6 use Sabre\DAV;
7 use Sabre\HTTP;
8 
9 class PluginPropertiesWithSharedCalendarTest extends \Sabre\DAVServerTest {
10 
11     protected $setupCalDAV = true;
12     protected $setupCalDAVScheduling = true;
13     protected $setupCalDAVSharing = true;
14 
15     function setUp() {
16 
17         parent::setUp();
18         $this->caldavBackend->createCalendar(
19             'principals/user1',
20             'shared',
21             [
22                 '{http://calendarserver.org/ns/}shared-url' => new DAV\Xml\Property\Href('calendars/user2/default/'),
23                 '{http://sabredav.org/ns}read-only' => false,
24                 '{http://sabredav.org/ns}owner-principal' => 'principals/user2',
25             ]
26         );
27         $this->caldavBackend->createCalendar(
28             'principals/user1',
29             'default',
30             [
31 
32             ]
33         );
34 
35     }
36 
37     function testPrincipalProperties() {
38 
39         $props = $this->server->getPropertiesForPath('/principals/user1',array(
40             '{urn:ietf:params:xml:ns:caldav}schedule-inbox-URL',
41             '{urn:ietf:params:xml:ns:caldav}schedule-outbox-URL',
42             '{urn:ietf:params:xml:ns:caldav}calendar-user-address-set',
43             '{urn:ietf:params:xml:ns:caldav}calendar-user-type',
44             '{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL',
45         ));
46 
47         $this->assertArrayHasKey(0,$props);
48         $this->assertArrayHasKey(200,$props[0]);
49 
50         $this->assertArrayHasKey('{urn:ietf:params:xml:ns:caldav}schedule-outbox-URL',$props[0][200]);
51         $prop = $props[0][200]['{urn:ietf:params:xml:ns:caldav}schedule-outbox-URL'];
52         $this->assertTrue($prop instanceof DAV\Xml\Property\Href);
53         $this->assertEquals('calendars/user1/outbox/',$prop->getHref());
54 
55         $this->assertArrayHasKey('{urn:ietf:params:xml:ns:caldav}schedule-inbox-URL',$props[0][200]);
56         $prop = $props[0][200]['{urn:ietf:params:xml:ns:caldav}schedule-inbox-URL'];
57         $this->assertTrue($prop instanceof DAV\Xml\Property\Href);
58         $this->assertEquals('calendars/user1/inbox/',$prop->getHref());
59 
60         $this->assertArrayHasKey('{urn:ietf:params:xml:ns:caldav}calendar-user-address-set',$props[0][200]);
61         $prop = $props[0][200]['{urn:ietf:params:xml:ns:caldav}calendar-user-address-set'];
62         $this->assertTrue($prop instanceof DAV\Xml\Property\Href);
63         $this->assertEquals(array('mailto:user1.sabredav@sabredav.org','/principals/user1/'),$prop->getHrefs());
64 
65         $this->assertArrayHasKey('{urn:ietf:params:xml:ns:caldav}calendar-user-type',$props[0][200]);
66         $prop = $props[0][200]['{urn:ietf:params:xml:ns:caldav}calendar-user-type'];
67         $this->assertEquals('INDIVIDUAL',$prop);
68 
69         $this->assertArrayHasKey('{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL',$props[0][200]);
70         $prop = $props[0][200]['{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL'];
71         $this->assertEquals('calendars/user1/default/',$prop->getHref());
72 
73     }
74 
75 }
76