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