1*a1a3b679SAndreas Boehler<?php 2*a1a3b679SAndreas Boehler 3*a1a3b679SAndreas Boehlernamespace Sabre\CalDAV; 4*a1a3b679SAndreas Boehler 5*a1a3b679SAndreas Boehleruse Sabre\DAVACL; 6*a1a3b679SAndreas Boehler 7*a1a3b679SAndreas Boehlerrequire_once 'Sabre/CalDAV/TestUtil.php'; 8*a1a3b679SAndreas Boehler 9*a1a3b679SAndreas Boehler/** 10*a1a3b679SAndreas Boehler */ 11*a1a3b679SAndreas Boehlerclass CalendarHomeSharedCalendarsTest extends \PHPUnit_Framework_TestCase { 12*a1a3b679SAndreas Boehler 13*a1a3b679SAndreas Boehler protected $backend; 14*a1a3b679SAndreas Boehler 15*a1a3b679SAndreas Boehler function getInstance() { 16*a1a3b679SAndreas Boehler 17*a1a3b679SAndreas Boehler $calendars = array( 18*a1a3b679SAndreas Boehler array( 19*a1a3b679SAndreas Boehler 'id' => 1, 20*a1a3b679SAndreas Boehler 'principaluri' => 'principals/user1', 21*a1a3b679SAndreas Boehler ), 22*a1a3b679SAndreas Boehler array( 23*a1a3b679SAndreas Boehler 'id' => 2, 24*a1a3b679SAndreas Boehler '{http://calendarserver.org/ns/}shared-url' => 'calendars/owner/cal1', 25*a1a3b679SAndreas Boehler '{http://sabredav.org/ns}owner-principal' => 'principal/owner', 26*a1a3b679SAndreas Boehler '{http://sabredav.org/ns}read-only' => false, 27*a1a3b679SAndreas Boehler 'principaluri' => 'principals/user1', 28*a1a3b679SAndreas Boehler ), 29*a1a3b679SAndreas Boehler ); 30*a1a3b679SAndreas Boehler 31*a1a3b679SAndreas Boehler $this->backend = new Backend\MockSharing( 32*a1a3b679SAndreas Boehler $calendars, 33*a1a3b679SAndreas Boehler array(), 34*a1a3b679SAndreas Boehler array() 35*a1a3b679SAndreas Boehler ); 36*a1a3b679SAndreas Boehler 37*a1a3b679SAndreas Boehler return new CalendarHome($this->backend, array( 38*a1a3b679SAndreas Boehler 'uri' => 'principals/user1' 39*a1a3b679SAndreas Boehler )); 40*a1a3b679SAndreas Boehler 41*a1a3b679SAndreas Boehler } 42*a1a3b679SAndreas Boehler 43*a1a3b679SAndreas Boehler function testSimple() { 44*a1a3b679SAndreas Boehler 45*a1a3b679SAndreas Boehler $instance = $this->getInstance(); 46*a1a3b679SAndreas Boehler $this->assertEquals('user1', $instance->getName()); 47*a1a3b679SAndreas Boehler 48*a1a3b679SAndreas Boehler } 49*a1a3b679SAndreas Boehler 50*a1a3b679SAndreas Boehler function testGetChildren() { 51*a1a3b679SAndreas Boehler 52*a1a3b679SAndreas Boehler $instance = $this->getInstance(); 53*a1a3b679SAndreas Boehler $children = $instance->getChildren(); 54*a1a3b679SAndreas Boehler $this->assertEquals(3, count($children)); 55*a1a3b679SAndreas Boehler 56*a1a3b679SAndreas Boehler // Testing if we got all the objects back. 57*a1a3b679SAndreas Boehler $hasShareable = false; 58*a1a3b679SAndreas Boehler $hasShared = false; 59*a1a3b679SAndreas Boehler $hasOutbox = false; 60*a1a3b679SAndreas Boehler $hasNotifications = false; 61*a1a3b679SAndreas Boehler 62*a1a3b679SAndreas Boehler foreach($children as $child) { 63*a1a3b679SAndreas Boehler 64*a1a3b679SAndreas Boehler if ($child instanceof IShareableCalendar) { 65*a1a3b679SAndreas Boehler $hasShareable = true; 66*a1a3b679SAndreas Boehler } 67*a1a3b679SAndreas Boehler if ($child instanceof ISharedCalendar) { 68*a1a3b679SAndreas Boehler $hasShared = true; 69*a1a3b679SAndreas Boehler } 70*a1a3b679SAndreas Boehler if ($child instanceof Notifications\ICollection) { 71*a1a3b679SAndreas Boehler $hasNotifications = true; 72*a1a3b679SAndreas Boehler } 73*a1a3b679SAndreas Boehler 74*a1a3b679SAndreas Boehler } 75*a1a3b679SAndreas Boehler if (!$hasShareable) $this->fail('Missing node!'); 76*a1a3b679SAndreas Boehler if (!$hasShared) $this->fail('Missing node!'); 77*a1a3b679SAndreas Boehler if (!$hasNotifications) $this->fail('Missing node!'); 78*a1a3b679SAndreas Boehler 79*a1a3b679SAndreas Boehler } 80*a1a3b679SAndreas Boehler 81*a1a3b679SAndreas Boehler function testShareReply() { 82*a1a3b679SAndreas Boehler 83*a1a3b679SAndreas Boehler $instance = $this->getInstance(); 84*a1a3b679SAndreas Boehler $result = $instance->shareReply('uri', SharingPlugin::STATUS_DECLINED, 'curi', '1'); 85*a1a3b679SAndreas Boehler $this->assertNull($result); 86*a1a3b679SAndreas Boehler 87*a1a3b679SAndreas Boehler } 88*a1a3b679SAndreas Boehler 89*a1a3b679SAndreas Boehler} 90