1*a1a3b679SAndreas Boehler<?php 2*a1a3b679SAndreas Boehler 3*a1a3b679SAndreas Boehlernamespace Sabre\CalDAV\Backend; 4*a1a3b679SAndreas Boehler 5*a1a3b679SAndreas Boehleruse 6*a1a3b679SAndreas Boehler Sabre\DAV\PropPatch; 7*a1a3b679SAndreas Boehler 8*a1a3b679SAndreas Boehlerclass AbstractTest extends \PHPUnit_Framework_TestCase { 9*a1a3b679SAndreas Boehler 10*a1a3b679SAndreas Boehler function testUpdateCalendar() { 11*a1a3b679SAndreas Boehler 12*a1a3b679SAndreas Boehler $abstract = new AbstractMock(); 13*a1a3b679SAndreas Boehler $propPatch = new PropPatch( ['{DAV:}displayname' => 'anything'] ); 14*a1a3b679SAndreas Boehler 15*a1a3b679SAndreas Boehler $abstract->updateCalendar('randomid', $propPatch); 16*a1a3b679SAndreas Boehler $result = $propPatch->commit(); 17*a1a3b679SAndreas Boehler 18*a1a3b679SAndreas Boehler $this->assertFalse($result); 19*a1a3b679SAndreas Boehler 20*a1a3b679SAndreas Boehler } 21*a1a3b679SAndreas Boehler 22*a1a3b679SAndreas Boehler function testCalendarQuery() { 23*a1a3b679SAndreas Boehler 24*a1a3b679SAndreas Boehler $abstract = new AbstractMock(); 25*a1a3b679SAndreas Boehler $filters = array( 26*a1a3b679SAndreas Boehler 'name' => 'VCALENDAR', 27*a1a3b679SAndreas Boehler 'comp-filters' => array( 28*a1a3b679SAndreas Boehler array( 29*a1a3b679SAndreas Boehler 'name' => 'VEVENT', 30*a1a3b679SAndreas Boehler 'comp-filters' => array(), 31*a1a3b679SAndreas Boehler 'prop-filters' => array(), 32*a1a3b679SAndreas Boehler 'is-not-defined' => false, 33*a1a3b679SAndreas Boehler 'time-range' => null, 34*a1a3b679SAndreas Boehler ), 35*a1a3b679SAndreas Boehler ), 36*a1a3b679SAndreas Boehler 'prop-filters' => array(), 37*a1a3b679SAndreas Boehler 'is-not-defined' => false, 38*a1a3b679SAndreas Boehler 'time-range' => null, 39*a1a3b679SAndreas Boehler ); 40*a1a3b679SAndreas Boehler 41*a1a3b679SAndreas Boehler $this->assertEquals(array( 42*a1a3b679SAndreas Boehler 'event1.ics', 43*a1a3b679SAndreas Boehler ), $abstract->calendarQuery(1, $filters)); 44*a1a3b679SAndreas Boehler 45*a1a3b679SAndreas Boehler } 46*a1a3b679SAndreas Boehler 47*a1a3b679SAndreas Boehler function testGetCalendarObjectByUID() { 48*a1a3b679SAndreas Boehler 49*a1a3b679SAndreas Boehler $abstract = new AbstractMock(); 50*a1a3b679SAndreas Boehler $this->assertNull( 51*a1a3b679SAndreas Boehler $abstract->getCalendarObjectByUID('principal1', 'zim') 52*a1a3b679SAndreas Boehler ); 53*a1a3b679SAndreas Boehler $this->assertEquals( 54*a1a3b679SAndreas Boehler 'cal1/event1.ics', 55*a1a3b679SAndreas Boehler $abstract->getCalendarObjectByUID('principal1', 'foo') 56*a1a3b679SAndreas Boehler ); 57*a1a3b679SAndreas Boehler $this->assertNull( 58*a1a3b679SAndreas Boehler $abstract->getCalendarObjectByUID('principal3', 'foo') 59*a1a3b679SAndreas Boehler ); 60*a1a3b679SAndreas Boehler $this->assertNull( 61*a1a3b679SAndreas Boehler $abstract->getCalendarObjectByUID('principal1', 'shared') 62*a1a3b679SAndreas Boehler ); 63*a1a3b679SAndreas Boehler 64*a1a3b679SAndreas Boehler } 65*a1a3b679SAndreas Boehler 66*a1a3b679SAndreas Boehler function testGetMultipleCalendarObjects() { 67*a1a3b679SAndreas Boehler 68*a1a3b679SAndreas Boehler $abstract = new AbstractMock(); 69*a1a3b679SAndreas Boehler $result = $abstract->getMultipleCalendarObjects(1, [ 70*a1a3b679SAndreas Boehler 'event1.ics', 71*a1a3b679SAndreas Boehler 'task1.ics', 72*a1a3b679SAndreas Boehler ]); 73*a1a3b679SAndreas Boehler 74*a1a3b679SAndreas Boehler $expected = [ 75*a1a3b679SAndreas Boehler array( 76*a1a3b679SAndreas Boehler 'id' => 1, 77*a1a3b679SAndreas Boehler 'calendarid' => 1, 78*a1a3b679SAndreas Boehler 'uri' => 'event1.ics', 79*a1a3b679SAndreas Boehler 'calendardata' => "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nUID:foo\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n", 80*a1a3b679SAndreas Boehler ), 81*a1a3b679SAndreas Boehler array( 82*a1a3b679SAndreas Boehler 'id' => 2, 83*a1a3b679SAndreas Boehler 'calendarid' => 1, 84*a1a3b679SAndreas Boehler 'uri' => 'task1.ics', 85*a1a3b679SAndreas Boehler 'calendardata' => "BEGIN:VCALENDAR\r\nBEGIN:VTODO\r\nEND:VTODO\r\nEND:VCALENDAR\r\n", 86*a1a3b679SAndreas Boehler ), 87*a1a3b679SAndreas Boehler ]; 88*a1a3b679SAndreas Boehler 89*a1a3b679SAndreas Boehler $this->assertEquals($expected, $result); 90*a1a3b679SAndreas Boehler 91*a1a3b679SAndreas Boehler 92*a1a3b679SAndreas Boehler } 93*a1a3b679SAndreas Boehler 94*a1a3b679SAndreas Boehler} 95*a1a3b679SAndreas Boehler 96*a1a3b679SAndreas Boehlerclass AbstractMock extends AbstractBackend { 97*a1a3b679SAndreas Boehler 98*a1a3b679SAndreas Boehler function getCalendarsForUser($principalUri) { 99*a1a3b679SAndreas Boehler 100*a1a3b679SAndreas Boehler return array( 101*a1a3b679SAndreas Boehler array( 102*a1a3b679SAndreas Boehler 'id' => 1, 103*a1a3b679SAndreas Boehler 'principaluri' => 'principal1', 104*a1a3b679SAndreas Boehler 'uri' => 'cal1', 105*a1a3b679SAndreas Boehler ), 106*a1a3b679SAndreas Boehler array( 107*a1a3b679SAndreas Boehler 'id' => 2, 108*a1a3b679SAndreas Boehler 'principaluri' => 'principal1', 109*a1a3b679SAndreas Boehler '{http://sabredav.org/ns}owner-principal' => 'principal2', 110*a1a3b679SAndreas Boehler 'uri' => 'cal1', 111*a1a3b679SAndreas Boehler ), 112*a1a3b679SAndreas Boehler ); 113*a1a3b679SAndreas Boehler 114*a1a3b679SAndreas Boehler } 115*a1a3b679SAndreas Boehler function createCalendar($principalUri,$calendarUri,array $properties) { } 116*a1a3b679SAndreas Boehler function deleteCalendar($calendarId) { } 117*a1a3b679SAndreas Boehler function getCalendarObjects($calendarId) { 118*a1a3b679SAndreas Boehler 119*a1a3b679SAndreas Boehler switch($calendarId) { 120*a1a3b679SAndreas Boehler case 1: 121*a1a3b679SAndreas Boehler return [ 122*a1a3b679SAndreas Boehler [ 123*a1a3b679SAndreas Boehler 'id' => 1, 124*a1a3b679SAndreas Boehler 'calendarid' => 1, 125*a1a3b679SAndreas Boehler 'uri' => 'event1.ics', 126*a1a3b679SAndreas Boehler ], 127*a1a3b679SAndreas Boehler [ 128*a1a3b679SAndreas Boehler 'id' => 2, 129*a1a3b679SAndreas Boehler 'calendarid' => 1, 130*a1a3b679SAndreas Boehler 'uri' => 'task1.ics', 131*a1a3b679SAndreas Boehler ], 132*a1a3b679SAndreas Boehler ]; 133*a1a3b679SAndreas Boehler case 2: 134*a1a3b679SAndreas Boehler return [ 135*a1a3b679SAndreas Boehler [ 136*a1a3b679SAndreas Boehler 'id' => 3, 137*a1a3b679SAndreas Boehler 'calendarid' => 2, 138*a1a3b679SAndreas Boehler 'uri' => 'shared-event.ics', 139*a1a3b679SAndreas Boehler ] 140*a1a3b679SAndreas Boehler ]; 141*a1a3b679SAndreas Boehler } 142*a1a3b679SAndreas Boehler 143*a1a3b679SAndreas Boehler } 144*a1a3b679SAndreas Boehler 145*a1a3b679SAndreas Boehler function getCalendarObject($calendarId, $objectUri) { 146*a1a3b679SAndreas Boehler 147*a1a3b679SAndreas Boehler switch($objectUri) { 148*a1a3b679SAndreas Boehler 149*a1a3b679SAndreas Boehler case 'event1.ics' : 150*a1a3b679SAndreas Boehler return array( 151*a1a3b679SAndreas Boehler 'id' => 1, 152*a1a3b679SAndreas Boehler 'calendarid' => 1, 153*a1a3b679SAndreas Boehler 'uri' => 'event1.ics', 154*a1a3b679SAndreas Boehler 'calendardata' => "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nUID:foo\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n", 155*a1a3b679SAndreas Boehler ); 156*a1a3b679SAndreas Boehler case 'task1.ics' : 157*a1a3b679SAndreas Boehler return array( 158*a1a3b679SAndreas Boehler 'id' => 2, 159*a1a3b679SAndreas Boehler 'calendarid' => 1, 160*a1a3b679SAndreas Boehler 'uri' => 'task1.ics', 161*a1a3b679SAndreas Boehler 'calendardata' => "BEGIN:VCALENDAR\r\nBEGIN:VTODO\r\nEND:VTODO\r\nEND:VCALENDAR\r\n", 162*a1a3b679SAndreas Boehler ); 163*a1a3b679SAndreas Boehler case 'shared-event.ics' : 164*a1a3b679SAndreas Boehler return array( 165*a1a3b679SAndreas Boehler 'id' => 3, 166*a1a3b679SAndreas Boehler 'calendarid' => 2, 167*a1a3b679SAndreas Boehler 'uri' => 'event1.ics', 168*a1a3b679SAndreas Boehler 'calendardata' => "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nUID:shared\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n", 169*a1a3b679SAndreas Boehler ); 170*a1a3b679SAndreas Boehler 171*a1a3b679SAndreas Boehler } 172*a1a3b679SAndreas Boehler 173*a1a3b679SAndreas Boehler } 174*a1a3b679SAndreas Boehler function createCalendarObject($calendarId,$objectUri,$calendarData) { } 175*a1a3b679SAndreas Boehler function updateCalendarObject($calendarId,$objectUri,$calendarData) { } 176*a1a3b679SAndreas Boehler function deleteCalendarObject($calendarId,$objectUri) { } 177*a1a3b679SAndreas Boehler 178*a1a3b679SAndreas Boehler} 179