ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
Sabre\CalDAV\Backend\AbstractPDOTest Class Reference
+ Inheritance diagram for Sabre\CalDAV\Backend\AbstractPDOTest:
+ Collaboration diagram for Sabre\CalDAV\Backend\AbstractPDOTest:

Public Member Functions

 setUp ()
 
 testConstruct ()
 
 testGetCalendarsForUserNoCalendars ()
 testConstruct More...
 
 testCreateCalendarAndFetch ()
 testConstruct More...
 
 testUpdateCalendarAndFetch ()
 testConstruct More...
 
 testUpdateCalendarBadId ()
 testConstruct More...
 
 testUpdateCalendarUnknownProperty ()
 testUpdateCalendarAndFetch More...
 
 testDeleteCalendar ()
 testCreateCalendarAndFetch More...
 
 testDeleteCalendarBadID ()
 testCreateCalendarAndFetch More...
 
 testCreateCalendarIncorrectComponentSet ()
 testCreateCalendarAndFetch More...
 
 testCreateCalendarObject ()
 
 testGetMultipleObjects ()
 
 testGetMultipleObjectsBadId ()
 testGetMultipleObjects More...
 
 testCreateCalendarObjectNoComponent ()
 Sabre testCreateCalendarObject More...
 
 testCreateCalendarObjectDuration ()
 testCreateCalendarObject More...
 
 testCreateCalendarObjectBadId ()
 testCreateCalendarObject More...
 
 testCreateCalendarObjectNoDTEND ()
 testCreateCalendarObject More...
 
 testCreateCalendarObjectWithDTEND ()
 testCreateCalendarObject More...
 
 testCreateCalendarObjectInfiniteRecurrence ()
 testCreateCalendarObject More...
 
 testCreateCalendarObjectEndingRecurrence ()
 testCreateCalendarObject More...
 
 testCreateCalendarObjectTask ()
 testCreateCalendarObject More...
 
 testGetCalendarObjects ()
 testCreateCalendarObject More...
 
 testGetCalendarObjectsBadId ()
 testGetCalendarObjects More...
 
 testGetCalendarObjectBadId ()
 testGetCalendarObjects More...
 
 testGetCalendarObjectByUID ()
 testCreateCalendarObject More...
 
 testUpdateCalendarObject ()
 testCreateCalendarObject More...
 
 testUpdateCalendarObjectBadId ()
 testUpdateCalendarObject More...
 
 testDeleteCalendarObject ()
 testCreateCalendarObject More...
 
 testDeleteCalendarObjectBadId ()
 testDeleteCalendarObject More...
 
 testCalendarQueryNoResult ()
 
 testCalendarQueryBadId ()
 testCalendarQueryNoResult More...
 
 testCalendarQueryTodo ()
 
 testCalendarQueryTodoNotMatch ()
 
 testCalendarQueryNoFilter ()
 
 testCalendarQueryTimeRange ()
 
 testCalendarQueryTimeRangeNoEnd ()
 
 testGetChanges ()
 
 testGetChangesBadId ()
 testGetChanges More...
 
 testCreateSubscriptions ()
 
 testCreateSubscriptionFail ()
 
 testUpdateSubscriptions ()
 
 testUpdateSubscriptionsFail ()
 
 testDeleteSubscriptions ()
 
 testSchedulingMethods ()
 
 testGetInvites ()
 
 testGetInvitesBadId ()
 testGetInvites More...
 
 testUpdateInvites ()
 testCreateCalendarAndFetch More...
 
 testUpdateInvitesBadId ()
 testUpdateInvites More...
 
 testUpdateInvitesNoPrincipal ()
 testUpdateInvites More...
 
 testDeleteSharedCalendar ()
 testUpdateInvites More...
 
 testSetPublishStatus ()
 

Protected Attributes

 $pdo
 

Detailed Description

Definition at line 10 of file AbstractPDOTest.php.

Member Function Documentation

◆ setUp()

Sabre\CalDAV\Backend\AbstractPDOTest::setUp ( )

Definition at line 16 of file AbstractPDOTest.php.

References Sabre\DAV\createSchema(), Sabre\DAV\dropTables(), and Sabre\DAV\getDb().

16  {
17 
18  $this->dropTables([
19  'calendarobjects',
20  'calendars',
21  'calendarinstances',
22  'calendarchanges',
23  'calendarsubscriptions',
24  'schedulingobjects',
25  ]);
26  $this->createSchema('calendars');
27 
28  $this->pdo = $this->getDb();
29 
30  }
dropTables($tableNames)
Drops tables, if they exist.
createSchema($schemaName)
Uses .sql files from the examples directory to initialize the database.
getDb()
Returns a fully configured PDO object.
+ Here is the call graph for this function:

◆ testCalendarQueryBadId()

Sabre\CalDAV\Backend\AbstractPDOTest::testCalendarQueryBadId ( )

testCalendarQueryNoResult

Definition at line 688 of file AbstractPDOTest.php.

688  {
689 
690  $abstract = new PDO($this->pdo);
691  $filters = [
692  'name' => 'VCALENDAR',
693  'comp-filters' => [
694  [
695  'name' => 'VJOURNAL',
696  'comp-filters' => [],
697  'prop-filters' => [],
698  'is-not-defined' => false,
699  'time-range' => null,
700  ],
701  ],
702  'prop-filters' => [],
703  'is-not-defined' => false,
704  'time-range' => null,
705  ];
706 
707  $abstract->calendarQuery('bad-id', $filters);
708 
709  }

◆ testCalendarQueryNoFilter()

Sabre\CalDAV\Backend\AbstractPDOTest::testCalendarQueryNoFilter ( )

Definition at line 773 of file AbstractPDOTest.php.

References $result.

773  {
774 
775  $backend = new PDO($this->pdo);
776  $backend->createCalendarObject([1, 1], "todo", "BEGIN:VCALENDAR\r\nBEGIN:VTODO\r\nEND:VTODO\r\nEND:VCALENDAR\r\n");
777  $backend->createCalendarObject([1, 1], "event", "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART:20120101\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n");
778 
779  $filters = [
780  'name' => 'VCALENDAR',
781  'comp-filters' => [],
782  'prop-filters' => [],
783  'is-not-defined' => false,
784  'time-range' => null,
785  ];
786 
787  $result = $backend->calendarQuery([1, 1], $filters);
788  $this->assertTrue(in_array('todo', $result));
789  $this->assertTrue(in_array('event', $result));
790 
791  }
$result

◆ testCalendarQueryNoResult()

Sabre\CalDAV\Backend\AbstractPDOTest::testCalendarQueryNoResult ( )

Definition at line 660 of file AbstractPDOTest.php.

660  {
661 
662  $abstract = new PDO($this->pdo);
663  $filters = [
664  'name' => 'VCALENDAR',
665  'comp-filters' => [
666  [
667  'name' => 'VJOURNAL',
668  'comp-filters' => [],
669  'prop-filters' => [],
670  'is-not-defined' => false,
671  'time-range' => null,
672  ],
673  ],
674  'prop-filters' => [],
675  'is-not-defined' => false,
676  'time-range' => null,
677  ];
678 
679  $this->assertEquals([
680  ], $abstract->calendarQuery([1, 1], $filters));
681 
682  }

◆ testCalendarQueryTimeRange()

Sabre\CalDAV\Backend\AbstractPDOTest::testCalendarQueryTimeRange ( )

Definition at line 793 of file AbstractPDOTest.php.

793  {
794 
795  $backend = new PDO($this->pdo);
796  $backend->createCalendarObject([1, 1], "todo", "BEGIN:VCALENDAR\r\nBEGIN:VTODO\r\nEND:VTODO\r\nEND:VCALENDAR\r\n");
797  $backend->createCalendarObject([1, 1], "event", "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART;VALUE=DATE:20120101\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n");
798  $backend->createCalendarObject([1, 1], "event2", "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART;VALUE=DATE:20120103\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n");
799 
800  $filters = [
801  'name' => 'VCALENDAR',
802  'comp-filters' => [
803  [
804  'name' => 'VEVENT',
805  'comp-filters' => [],
806  'prop-filters' => [],
807  'is-not-defined' => false,
808  'time-range' => [
809  'start' => new \DateTime('20120103'),
810  'end' => new \DateTime('20120104'),
811  ],
812  ],
813  ],
814  'prop-filters' => [],
815  'is-not-defined' => false,
816  'time-range' => null,
817  ];
818 
819  $this->assertEquals([
820  "event2",
821  ], $backend->calendarQuery([1, 1], $filters));
822 
823  }

◆ testCalendarQueryTimeRangeNoEnd()

Sabre\CalDAV\Backend\AbstractPDOTest::testCalendarQueryTimeRangeNoEnd ( )

Definition at line 824 of file AbstractPDOTest.php.

824  {
825 
826  $backend = new PDO($this->pdo);
827  $backend->createCalendarObject([1, 1], "todo", "BEGIN:VCALENDAR\r\nBEGIN:VTODO\r\nEND:VTODO\r\nEND:VCALENDAR\r\n");
828  $backend->createCalendarObject([1, 1], "event", "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART:20120101\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n");
829  $backend->createCalendarObject([1, 1], "event2", "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART:20120103\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n");
830 
831  $filters = [
832  'name' => 'VCALENDAR',
833  'comp-filters' => [
834  [
835  'name' => 'VEVENT',
836  'comp-filters' => [],
837  'prop-filters' => [],
838  'is-not-defined' => false,
839  'time-range' => [
840  'start' => new \DateTime('20120102'),
841  'end' => null,
842  ],
843  ],
844  ],
845  'prop-filters' => [],
846  'is-not-defined' => false,
847  'time-range' => null,
848  ];
849 
850  $this->assertEquals([
851  "event2",
852  ], $backend->calendarQuery([1, 1], $filters));
853 
854  }

◆ testCalendarQueryTodo()

Sabre\CalDAV\Backend\AbstractPDOTest::testCalendarQueryTodo ( )

Definition at line 711 of file AbstractPDOTest.php.

711  {
712 
713  $backend = new PDO($this->pdo);
714  $backend->createCalendarObject([1, 1], "todo", "BEGIN:VCALENDAR\r\nBEGIN:VTODO\r\nEND:VTODO\r\nEND:VCALENDAR\r\n");
715  $backend->createCalendarObject([1, 1], "event", "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART:20120101\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n");
716 
717  $filters = [
718  'name' => 'VCALENDAR',
719  'comp-filters' => [
720  [
721  'name' => 'VTODO',
722  'comp-filters' => [],
723  'prop-filters' => [],
724  'is-not-defined' => false,
725  'time-range' => null,
726  ],
727  ],
728  'prop-filters' => [],
729  'is-not-defined' => false,
730  'time-range' => null,
731  ];
732 
733  $this->assertEquals([
734  "todo",
735  ], $backend->calendarQuery([1, 1], $filters));
736 
737  }

◆ testCalendarQueryTodoNotMatch()

Sabre\CalDAV\Backend\AbstractPDOTest::testCalendarQueryTodoNotMatch ( )

Definition at line 738 of file AbstractPDOTest.php.

738  {
739 
740  $backend = new PDO($this->pdo);
741  $backend->createCalendarObject([1, 1], "todo", "BEGIN:VCALENDAR\r\nBEGIN:VTODO\r\nEND:VTODO\r\nEND:VCALENDAR\r\n");
742  $backend->createCalendarObject([1, 1], "event", "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART:20120101\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n");
743 
744  $filters = [
745  'name' => 'VCALENDAR',
746  'comp-filters' => [
747  [
748  'name' => 'VTODO',
749  'comp-filters' => [],
750  'prop-filters' => [
751  [
752  'name' => 'summary',
753  'text-match' => null,
754  'time-range' => null,
755  'param-filters' => [],
756  'is-not-defined' => false,
757  ],
758  ],
759  'is-not-defined' => false,
760  'time-range' => null,
761  ],
762  ],
763  'prop-filters' => [],
764  'is-not-defined' => false,
765  'time-range' => null,
766  ];
767 
768  $this->assertEquals([
769  ], $backend->calendarQuery([1, 1], $filters));
770 
771  }

◆ testConstruct()

Sabre\CalDAV\Backend\AbstractPDOTest::testConstruct ( )

Definition at line 32 of file AbstractPDOTest.php.

32  {
33 
34  $backend = new PDO($this->pdo);
35  $this->assertTrue($backend instanceof PDO);
36 
37  }

◆ testCreateCalendarAndFetch()

Sabre\CalDAV\Backend\AbstractPDOTest::testCreateCalendarAndFetch ( )

testConstruct

Definition at line 53 of file AbstractPDOTest.php.

References $name, and Sabre\DAV\Sharing\Plugin\ACCESS_SHAREDOWNER.

53  {
54 
55  $backend = new PDO($this->pdo);
56  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', [
57  '{urn:ietf:params:xml:ns:caldav}supported-calendar-component-set' => new CalDAV\Xml\Property\SupportedCalendarComponentSet(['VEVENT']),
58  '{DAV:}displayname' => 'Hello!',
59  '{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp' => new CalDAV\Xml\Property\ScheduleCalendarTransp('transparent'),
60  ]);
61  $calendars = $backend->getCalendarsForUser('principals/user2');
62 
63  $elementCheck = [
64  'uri' => 'somerandomid',
65  '{DAV:}displayname' => 'Hello!',
66  '{urn:ietf:params:xml:ns:caldav}calendar-description' => '',
67  '{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp' => new CalDAV\Xml\Property\ScheduleCalendarTransp('transparent'),
69  ];
70 
71  $this->assertInternalType('array', $calendars);
72  $this->assertEquals(1, count($calendars));
73 
74  foreach ($elementCheck as $name => $value) {
75 
76  $this->assertArrayHasKey($name, $calendars[0]);
77  $this->assertEquals($value, $calendars[0][$name]);
78 
79  }
80 
81  }

◆ testCreateCalendarIncorrectComponentSet()

Sabre\CalDAV\Backend\AbstractPDOTest::testCreateCalendarIncorrectComponentSet ( )

testCreateCalendarAndFetch

Definition at line 217 of file AbstractPDOTest.php.

217  {;
218 
219  $backend = new PDO($this->pdo);
220 
221  //Creating a new calendar
222  $newId = $backend->createCalendar('principals/user2', 'somerandomid', [
223  '{urn:ietf:params:xml:ns:caldav}supported-calendar-component-set' => 'blabla',
224  ]);
225 
226  }

◆ testCreateCalendarObject()

Sabre\CalDAV\Backend\AbstractPDOTest::testCreateCalendarObject ( )

Definition at line 228 of file AbstractPDOTest.php.

References $result, and $row.

228  {
229 
230  $backend = new PDO($this->pdo);
231  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', []);
232 
233  $object = "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART;VALUE=DATE:20120101\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
234 
235  $backend->createCalendarObject($returnedId, 'random-id', $object);
236 
237  $result = $this->pdo->query('SELECT etag, size, calendardata, firstoccurence, lastoccurence, componenttype FROM calendarobjects WHERE uri = \'random-id\'');
238 
239  $row = $result->fetch(\PDO::FETCH_ASSOC);
240  if (is_resource($row['calendardata'])) {
241  $row['calendardata'] = stream_get_contents($row['calendardata']);
242  }
243 
244  $this->assertEquals([
245  'etag' => md5($object),
246  'size' => strlen($object),
247  'calendardata' => $object,
248  'firstoccurence' => strtotime('20120101'),
249  'lastoccurence' => strtotime('20120101') + (3600 * 24),
250  'componenttype' => 'VEVENT',
251  ], $row);
252 
253  }
$result
$row

◆ testCreateCalendarObjectBadId()

Sabre\CalDAV\Backend\AbstractPDOTest::testCreateCalendarObjectBadId ( )

testCreateCalendarObject

Definition at line 371 of file AbstractPDOTest.php.

371  {
372 
373  $backend = new PDO($this->pdo);
374  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', []);
375 
376  $object = "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART;VALUE=DATE:20120101\r\nDURATION:P2D\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
377 
378  $backend->createCalendarObject('bad-id', 'random-id', $object);
379 
380  }

◆ testCreateCalendarObjectDuration()

Sabre\CalDAV\Backend\AbstractPDOTest::testCreateCalendarObjectDuration ( )

testCreateCalendarObject

Definition at line 340 of file AbstractPDOTest.php.

References $result, and $row.

340  {
341 
342  $backend = new PDO($this->pdo);
343  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', []);
344 
345  $object = "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART;VALUE=DATE:20120101\r\nDURATION:P2D\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
346 
347  $backend->createCalendarObject($returnedId, 'random-id', $object);
348 
349  $result = $this->pdo->query('SELECT etag, size, calendardata, firstoccurence, lastoccurence, componenttype FROM calendarobjects WHERE uri = \'random-id\'');
350 
351  $row = $result->fetch(\PDO::FETCH_ASSOC);
352  if (is_resource($row['calendardata'])) {
353  $row['calendardata'] = stream_get_contents($row['calendardata']);
354  }
355 
356  $this->assertEquals([
357  'etag' => md5($object),
358  'size' => strlen($object),
359  'calendardata' => $object,
360  'firstoccurence' => strtotime('20120101'),
361  'lastoccurence' => strtotime('20120101') + (3600 * 48),
362  'componenttype' => 'VEVENT',
363  ], $row);
364 
365  }
$result
$row

◆ testCreateCalendarObjectEndingRecurrence()

Sabre\CalDAV\Backend\AbstractPDOTest::testCreateCalendarObjectEndingRecurrence ( )

testCreateCalendarObject

Definition at line 473 of file AbstractPDOTest.php.

References $result, and $row.

473  {
474 
475  $backend = new PDO($this->pdo);
476  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', []);
477 
478  $object = "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART;VALUE=DATE-TIME:20120101T100000Z\r\nDTEND;VALUE=DATE-TIME:20120101T110000Z\r\nUID:foo\r\nRRULE:FREQ=DAILY;COUNT=1000\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
479 
480  $backend->createCalendarObject($returnedId, 'random-id', $object);
481 
482  $result = $this->pdo->query('SELECT etag, size, calendardata, firstoccurence, lastoccurence, componenttype FROM calendarobjects WHERE uri = \'random-id\'');
483  $row = $result->fetch(\PDO::FETCH_ASSOC);
484  if (is_resource($row['calendardata'])) {
485  $row['calendardata'] = stream_get_contents($row['calendardata']);
486  }
487 
488  $this->assertEquals([
489  'etag' => md5($object),
490  'size' => strlen($object),
491  'calendardata' => $object,
492  'firstoccurence' => strtotime('2012-01-01 10:00:00'),
493  'lastoccurence' => strtotime('2012-01-01 11:00:00') + (3600 * 24 * 999),
494  'componenttype' => 'VEVENT',
495  ], $row);
496 
497  }
$result
$row

◆ testCreateCalendarObjectInfiniteRecurrence()

Sabre\CalDAV\Backend\AbstractPDOTest::testCreateCalendarObjectInfiniteRecurrence ( )

testCreateCalendarObject

Definition at line 444 of file AbstractPDOTest.php.

References $result, $row, and Sabre\CalDAV\Backend\PDO\MAX_DATE.

444  {
445 
446  $backend = new PDO($this->pdo);
447  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', []);
448 
449  $object = "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART;VALUE=DATE-TIME:20120101T100000Z\r\nRRULE:FREQ=DAILY\r\nUID:foo\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
450 
451  $backend->createCalendarObject($returnedId, 'random-id', $object);
452 
453  $result = $this->pdo->query('SELECT etag, size, calendardata, firstoccurence, lastoccurence, componenttype FROM calendarobjects WHERE uri = \'random-id\'');
454  $row = $result->fetch(\PDO::FETCH_ASSOC);
455  if (is_resource($row['calendardata'])) {
456  $row['calendardata'] = stream_get_contents($row['calendardata']);
457  }
458 
459  $this->assertEquals([
460  'etag' => md5($object),
461  'size' => strlen($object),
462  'calendardata' => $object,
463  'firstoccurence' => strtotime('2012-01-01 10:00:00'),
464  'lastoccurence' => strtotime(PDO::MAX_DATE),
465  'componenttype' => 'VEVENT',
466  ], $row);
467 
468  }
$result
const MAX_DATE
We need to specify a max date, because we need to stop somewhere
Definition: PDO.php:36
$row

◆ testCreateCalendarObjectNoComponent()

Sabre\CalDAV\Backend\AbstractPDOTest::testCreateCalendarObjectNoComponent ( )

Sabre testCreateCalendarObject

Definition at line 326 of file AbstractPDOTest.php.

326  {
327 
328  $backend = new PDO($this->pdo);
329  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', []);
330 
331  $object = "BEGIN:VCALENDAR\r\nBEGIN:VTIMEZONE\r\nEND:VTIMEZONE\r\nEND:VCALENDAR\r\n";
332 
333  $backend->createCalendarObject($returnedId, 'random-id', $object);
334 
335  }

◆ testCreateCalendarObjectNoDTEND()

Sabre\CalDAV\Backend\AbstractPDOTest::testCreateCalendarObjectNoDTEND ( )

testCreateCalendarObject

Definition at line 386 of file AbstractPDOTest.php.

References $result, and $row.

386  {
387 
388  $backend = new PDO($this->pdo);
389  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', []);
390 
391  $object = "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART;VALUE=DATE-TIME:20120101T100000Z\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
392 
393  $backend->createCalendarObject($returnedId, 'random-id', $object);
394 
395  $result = $this->pdo->query('SELECT etag, size, calendardata, firstoccurence, lastoccurence, componenttype FROM calendarobjects WHERE uri = \'random-id\'');
396  $row = $result->fetch(\PDO::FETCH_ASSOC);
397  if (is_resource($row['calendardata'])) {
398  $row['calendardata'] = stream_get_contents($row['calendardata']);
399  }
400 
401  $this->assertEquals([
402  'etag' => md5($object),
403  'size' => strlen($object),
404  'calendardata' => $object,
405  'firstoccurence' => strtotime('2012-01-01 10:00:00'),
406  'lastoccurence' => strtotime('2012-01-01 10:00:00'),
407  'componenttype' => 'VEVENT',
408  ], $row);
409 
410  }
$result
$row

◆ testCreateCalendarObjectTask()

Sabre\CalDAV\Backend\AbstractPDOTest::testCreateCalendarObjectTask ( )

testCreateCalendarObject

Definition at line 502 of file AbstractPDOTest.php.

References $result, and $row.

502  {
503 
504  $backend = new PDO($this->pdo);
505  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', []);
506 
507  $object = "BEGIN:VCALENDAR\r\nBEGIN:VTODO\r\nDUE;VALUE=DATE-TIME:20120101T100000Z\r\nEND:VTODO\r\nEND:VCALENDAR\r\n";
508 
509  $backend->createCalendarObject($returnedId, 'random-id', $object);
510 
511  $result = $this->pdo->query('SELECT etag, size, calendardata, firstoccurence, lastoccurence, componenttype FROM calendarobjects WHERE uri = \'random-id\'');
512  $row = $result->fetch(\PDO::FETCH_ASSOC);
513  if (is_resource($row['calendardata'])) {
514  $row['calendardata'] = stream_get_contents($row['calendardata']);
515  }
516 
517  $this->assertEquals([
518  'etag' => md5($object),
519  'size' => strlen($object),
520  'calendardata' => $object,
521  'firstoccurence' => null,
522  'lastoccurence' => null,
523  'componenttype' => 'VTODO',
524  ], $row);
525 
526  }
$result
$row

◆ testCreateCalendarObjectWithDTEND()

Sabre\CalDAV\Backend\AbstractPDOTest::testCreateCalendarObjectWithDTEND ( )

testCreateCalendarObject

Definition at line 415 of file AbstractPDOTest.php.

References $result, and $row.

415  {
416 
417  $backend = new PDO($this->pdo);
418  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', []);
419 
420  $object = "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART;VALUE=DATE-TIME:20120101T100000Z\r\nDTEND:20120101T110000Z\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
421 
422  $backend->createCalendarObject($returnedId, 'random-id', $object);
423 
424  $result = $this->pdo->query('SELECT etag, size, calendardata, firstoccurence, lastoccurence, componenttype FROM calendarobjects WHERE uri = \'random-id\'');
425  $row = $result->fetch(\PDO::FETCH_ASSOC);
426  if (is_resource($row['calendardata'])) {
427  $row['calendardata'] = stream_get_contents($row['calendardata']);
428  }
429 
430  $this->assertEquals([
431  'etag' => md5($object),
432  'size' => strlen($object),
433  'calendardata' => $object,
434  'firstoccurence' => strtotime('2012-01-01 10:00:00'),
435  'lastoccurence' => strtotime('2012-01-01 11:00:00'),
436  'componenttype' => 'VEVENT',
437  ], $row);
438 
439  }
$result
$row

◆ testCreateSubscriptionFail()

Sabre\CalDAV\Backend\AbstractPDOTest::testCreateSubscriptionFail ( )

Definition at line 953 of file AbstractPDOTest.php.

953  {
954 
955  $props = [
956  ];
957 
958  $backend = new PDO($this->pdo);
959  $backend->createSubscription('principals/user1', 'sub1', $props);
960 
961  }

◆ testCreateSubscriptions()

Sabre\CalDAV\Backend\AbstractPDOTest::testCreateSubscriptions ( )

Definition at line 918 of file AbstractPDOTest.php.

918  {
919 
920  $props = [
921  '{http://calendarserver.org/ns/}source' => new \Sabre\DAV\Xml\Property\Href('http://example.org/cal.ics', false),
922  '{DAV:}displayname' => 'cal',
923  '{http://apple.com/ns/ical/}refreshrate' => 'P1W',
924  '{http://apple.com/ns/ical/}calendar-color' => '#FF00FFFF',
925  '{http://calendarserver.org/ns/}subscribed-strip-todos' => true,
926  //'{http://calendarserver.org/ns/}subscribed-strip-alarms' => true,
927  '{http://calendarserver.org/ns/}subscribed-strip-attachments' => true,
928  ];
929 
930  $backend = new PDO($this->pdo);
931  $backend->createSubscription('principals/user1', 'sub1', $props);
932 
933  $subs = $backend->getSubscriptionsForUser('principals/user1');
934 
935  $expected = $props;
936  $expected['id'] = 1;
937  $expected['uri'] = 'sub1';
938  $expected['principaluri'] = 'principals/user1';
939 
940  unset($expected['{http://calendarserver.org/ns/}source']);
941  $expected['source'] = 'http://example.org/cal.ics';
942 
943  $this->assertEquals(1, count($subs));
944  foreach ($expected as $k => $v) {
945  $this->assertEquals($subs[0][$k], $expected[$k]);
946  }
947 
948  }

◆ testDeleteCalendar()

Sabre\CalDAV\Backend\AbstractPDOTest::testDeleteCalendar ( )

testCreateCalendarAndFetch

Definition at line 182 of file AbstractPDOTest.php.

182  {
183 
184  $backend = new PDO($this->pdo);
185  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', [
186  '{urn:ietf:params:xml:ns:caldav}supported-calendar-component-set' => new CalDAV\Xml\Property\SupportedCalendarComponentSet(['VEVENT']),
187  '{DAV:}displayname' => 'Hello!',
188  ]);
189 
190  $backend->deleteCalendar($returnedId);
191 
192  $calendars = $backend->getCalendarsForUser('principals/user2');
193  $this->assertEquals([], $calendars);
194 
195  }

◆ testDeleteCalendarBadID()

Sabre\CalDAV\Backend\AbstractPDOTest::testDeleteCalendarBadID ( )

testCreateCalendarAndFetch

Definition at line 201 of file AbstractPDOTest.php.

201  {
202 
203  $backend = new PDO($this->pdo);
204  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', [
205  '{urn:ietf:params:xml:ns:caldav}supported-calendar-component-set' => new CalDAV\Xml\Property\SupportedCalendarComponentSet(['VEVENT']),
206  '{DAV:}displayname' => 'Hello!',
207  ]);
208 
209  $backend->deleteCalendar('bad-id');
210 
211  }

◆ testDeleteCalendarObject()

Sabre\CalDAV\Backend\AbstractPDOTest::testDeleteCalendarObject ( )

testCreateCalendarObject

Definition at line 631 of file AbstractPDOTest.php.

References $data.

631  {
632 
633  $backend = new PDO($this->pdo);
634  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', []);
635 
636  $object = "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART;VALUE=DATE:20120101\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
637  $backend->createCalendarObject($returnedId, 'random-id', $object);
638  $backend->deleteCalendarObject($returnedId, 'random-id');
639 
640  $data = $backend->getCalendarObject($returnedId, 'random-id');
641  $this->assertNull($data);
642 
643  }
$data
Definition: bench.php:6

◆ testDeleteCalendarObjectBadId()

Sabre\CalDAV\Backend\AbstractPDOTest::testDeleteCalendarObjectBadId ( )

testDeleteCalendarObject

Definition at line 649 of file AbstractPDOTest.php.

649  {
650 
651  $backend = new PDO($this->pdo);
652  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', []);
653 
654  $object = "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART;VALUE=DATE:20120101\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
655  $backend->createCalendarObject($returnedId, 'random-id', $object);
656  $backend->deleteCalendarObject('bad-id', 'random-id');
657 
658  }

◆ testDeleteSharedCalendar()

Sabre\CalDAV\Backend\AbstractPDOTest::testDeleteSharedCalendar ( )

testUpdateInvites

Definition at line 1352 of file AbstractPDOTest.php.

References $calendar, $result, and Sabre\DAV\Sharing\Plugin\ACCESS_READ.

1352  {
1353 
1354  $backend = new PDO($this->pdo);
1355 
1356  // creating a new calendar
1357  $backend->createCalendar('principals/user1', 'somerandomid', []);
1358  $calendar = $backend->getCalendarsForUser('principals/user1')[0];
1359 
1360  $ownerSharee = new Sharee([
1361  'href' => 'principals/user1',
1362  'principal' => 'principals/user1',
1363  'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_SHAREDOWNER,
1364  'inviteStatus' => \Sabre\DAV\Sharing\Plugin::INVITE_ACCEPTED,
1365  ]);
1366 
1367  // Add a new invite
1368  $backend->updateInvites(
1369  $calendar['id'],
1370  [
1371  new Sharee([
1372  'href' => 'mailto:user@example.org',
1373  'principal' => 'principals/user2',
1374  'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_READ,
1375  'inviteStatus' => \Sabre\DAV\Sharing\Plugin::INVITE_ACCEPTED,
1376  'properties' => ['{DAV:}displayname' => 'User 2'],
1377  ])
1378  ]
1379  );
1380 
1381  $expectedCalendar = [
1382  'id' => [1,2],
1383  'principaluri' => 'principals/user2',
1384  '{http://calendarserver.org/ns/}getctag' => 'http://sabre.io/ns/sync/1',
1385  '{http://sabredav.org/ns}sync-token' => '1',
1386  'share-access' => \Sabre\DAV\Sharing\Plugin::ACCESS_READ,
1387  'read-only' => true,
1388  'share-resource-uri' => '/ns/share/1',
1389  ];
1390  $calendars = $backend->getCalendarsForUser('principals/user2');
1391 
1392  foreach ($expectedCalendar as $k => $v) {
1393  $this->assertEquals(
1394  $v,
1395  $calendars[0][$k],
1396  "Key " . $k . " in calendars array did not have the expected value."
1397  );
1398  }
1399 
1400  // Removing the shared calendar.
1401  $backend->deleteCalendar($calendars[0]['id']);
1402 
1403  $this->assertEquals(
1404  [],
1405  $backend->getCalendarsForUser('principals/user2')
1406  );
1407 
1408  $result = $backend->getInvites($calendar['id']);
1409  $expected = [
1410  new Sharee([
1411  'href' => 'principals/user1',
1412  'principal' => 'principals/user1',
1413  'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_SHAREDOWNER,
1414  'inviteStatus' => \Sabre\DAV\Sharing\Plugin::INVITE_ACCEPTED,
1415  ]),
1416  ];
1417  $this->assertEquals($expected, $result);
1418 
1419  }
$result

◆ testDeleteSubscriptions()

Sabre\CalDAV\Backend\AbstractPDOTest::testDeleteSubscriptions ( )

Definition at line 1038 of file AbstractPDOTest.php.

1038  {
1039 
1040  $props = [
1041  '{http://calendarserver.org/ns/}source' => new \Sabre\DAV\Xml\Property\Href('http://example.org/cal.ics', false),
1042  '{DAV:}displayname' => 'cal',
1043  '{http://apple.com/ns/ical/}refreshrate' => 'P1W',
1044  '{http://apple.com/ns/ical/}calendar-color' => '#FF00FFFF',
1045  '{http://calendarserver.org/ns/}subscribed-strip-todos' => true,
1046  //'{http://calendarserver.org/ns/}subscribed-strip-alarms' => true,
1047  '{http://calendarserver.org/ns/}subscribed-strip-attachments' => true,
1048  ];
1049 
1050  $backend = new PDO($this->pdo);
1051  $backend->createSubscription('principals/user1', 'sub1', $props);
1052 
1053  $newProps = [
1054  '{DAV:}displayname' => 'new displayname',
1055  '{http://calendarserver.org/ns/}source' => new \Sabre\DAV\Xml\Property\Href('http://example.org/cal2.ics', false),
1056  ];
1057 
1058  $backend->deleteSubscription(1);
1059 
1060  $subs = $backend->getSubscriptionsForUser('principals/user1');
1061  $this->assertEquals(0, count($subs));
1062  }

◆ testGetCalendarObjectBadId()

Sabre\CalDAV\Backend\AbstractPDOTest::testGetCalendarObjectBadId ( )

testGetCalendarObjects

Definition at line 564 of file AbstractPDOTest.php.

564  {
565 
566  $backend = new PDO($this->pdo);
567  $backend->getCalendarObject('bad-id', 'foo-bar');
568 
569  }

◆ testGetCalendarObjectByUID()

Sabre\CalDAV\Backend\AbstractPDOTest::testGetCalendarObjectByUID ( )

testCreateCalendarObject

Definition at line 574 of file AbstractPDOTest.php.

574  {
575 
576  $backend = new PDO($this->pdo);
577  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', []);
578 
579  $object = "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nUID:foo\r\nDTSTART;VALUE=DATE:20120101\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
580  $backend->createCalendarObject($returnedId, 'random-id', $object);
581 
582  $this->assertNull(
583  $backend->getCalendarObjectByUID('principals/user2', 'bar')
584  );
585  $this->assertEquals(
586  'somerandomid/random-id',
587  $backend->getCalendarObjectByUID('principals/user2', 'foo')
588  );
589 
590  }

◆ testGetCalendarObjects()

Sabre\CalDAV\Backend\AbstractPDOTest::testGetCalendarObjects ( )

testCreateCalendarObject

Definition at line 531 of file AbstractPDOTest.php.

References $data.

531  {
532 
533  $backend = new PDO($this->pdo);
534  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', []);
535 
536  $object = "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART;VALUE=DATE:20120101\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
537  $backend->createCalendarObject($returnedId, 'random-id', $object);
538 
539  $data = $backend->getCalendarObjects($returnedId);
540 
541  $this->assertEquals(1, count($data));
542  $data = $data[0];
543 
544  $this->assertEquals('random-id', $data['uri']);
545  $this->assertEquals(strlen($object), $data['size']);
546 
547  }
$data
Definition: bench.php:6

◆ testGetCalendarObjectsBadId()

Sabre\CalDAV\Backend\AbstractPDOTest::testGetCalendarObjectsBadId ( )

testGetCalendarObjects

Definition at line 553 of file AbstractPDOTest.php.

553  {
554 
555  $backend = new PDO($this->pdo);
556  $backend->getCalendarObjects('bad-id');
557 
558  }

◆ testGetCalendarsForUserNoCalendars()

Sabre\CalDAV\Backend\AbstractPDOTest::testGetCalendarsForUserNoCalendars ( )

testConstruct

Definition at line 42 of file AbstractPDOTest.php.

42  {
43 
44  $backend = new PDO($this->pdo);
45  $calendars = $backend->getCalendarsForUser('principals/user2');
46  $this->assertEquals([], $calendars);
47 
48  }

◆ testGetChanges()

Sabre\CalDAV\Backend\AbstractPDOTest::testGetChanges ( )

Definition at line 856 of file AbstractPDOTest.php.

References $id, and $result.

856  {
857 
858  $backend = new PDO($this->pdo);
859  $id = $backend->createCalendar(
860  'principals/user1',
861  'bla',
862  []
863  );
864  $result = $backend->getChangesForCalendar($id, null, 1);
865 
866  $this->assertEquals([
867  'syncToken' => 1,
868  'modified' => [],
869  'deleted' => [],
870  'added' => [],
871  ], $result);
872 
873  $currentToken = $result['syncToken'];
874 
875  $dummyTodo = "BEGIN:VCALENDAR\r\nBEGIN:VTODO\r\nEND:VTODO\r\nEND:VCALENDAR\r\n";
876 
877  $backend->createCalendarObject($id, "todo1.ics", $dummyTodo);
878  $backend->createCalendarObject($id, "todo2.ics", $dummyTodo);
879  $backend->createCalendarObject($id, "todo3.ics", $dummyTodo);
880  $backend->updateCalendarObject($id, "todo1.ics", $dummyTodo);
881  $backend->deleteCalendarObject($id, "todo2.ics");
882 
883  $result = $backend->getChangesForCalendar($id, $currentToken, 1);
884 
885  $this->assertEquals([
886  'syncToken' => 6,
887  'modified' => ["todo1.ics"],
888  'deleted' => ["todo2.ics"],
889  'added' => ["todo3.ics"],
890  ], $result);
891 
892  $result = $backend->getChangesForCalendar($id, null, 1);
893 
894  $this->assertEquals([
895  'syncToken' => 6,
896  'modified' => [],
897  'deleted' => [],
898  'added' => ["todo1.ics", "todo3.ics"],
899  ], $result);
900  }
$result
if(!array_key_exists('StateId', $_REQUEST)) $id

◆ testGetChangesBadId()

Sabre\CalDAV\Backend\AbstractPDOTest::testGetChangesBadId ( )

testGetChanges

Definition at line 906 of file AbstractPDOTest.php.

References $id.

906  {
907 
908  $backend = new PDO($this->pdo);
909  $id = $backend->createCalendar(
910  'principals/user1',
911  'bla',
912  []
913  );
914  $backend->getChangesForCalendar('bad-id', null, 1);
915 
916  }
if(!array_key_exists('StateId', $_REQUEST)) $id

◆ testGetInvites()

Sabre\CalDAV\Backend\AbstractPDOTest::testGetInvites ( )

Definition at line 1110 of file AbstractPDOTest.php.

References $calendar, and $result.

1110  {
1111 
1112  $backend = new PDO($this->pdo);
1113 
1114  // creating a new calendar
1115  $backend->createCalendar('principals/user1', 'somerandomid', []);
1116  $calendar = $backend->getCalendarsForUser('principals/user1')[0];
1117 
1118  $result = $backend->getInvites($calendar['id']);
1119  $expected = [
1120  new Sharee([
1121  'href' => 'principals/user1',
1122  'principal' => 'principals/user1',
1123  'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_SHAREDOWNER,
1124  'inviteStatus' => \Sabre\DAV\Sharing\Plugin::INVITE_ACCEPTED,
1125  ])
1126  ];
1127 
1128  $this->assertEquals($expected, $result);
1129 
1130  }
$result

◆ testGetInvitesBadId()

Sabre\CalDAV\Backend\AbstractPDOTest::testGetInvitesBadId ( )

testGetInvites

Definition at line 1136 of file AbstractPDOTest.php.

References $calendar.

1136  {
1137 
1138  $backend = new PDO($this->pdo);
1139 
1140  // creating a new calendar
1141  $backend->createCalendar('principals/user1', 'somerandomid', []);
1142  $calendar = $backend->getCalendarsForUser('principals/user1')[0];
1143 
1144  $backend->getInvites('bad-id');
1145 
1146  }

◆ testGetMultipleObjects()

Sabre\CalDAV\Backend\AbstractPDOTest::testGetMultipleObjects ( )

Definition at line 254 of file AbstractPDOTest.php.

References $index, $key, and $result.

254  {
255 
256  $backend = new PDO($this->pdo);
257  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', []);
258 
259  $object = "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART;VALUE=DATE:20120101\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
260 
261  $backend->createCalendarObject($returnedId, 'id-1', $object);
262  $backend->createCalendarObject($returnedId, 'id-2', $object);
263 
264  $check = [
265  [
266  'id' => 1,
267  'etag' => '"' . md5($object) . '"',
268  'uri' => 'id-1',
269  'size' => strlen($object),
270  'calendardata' => $object,
271  'lastmodified' => null,
272  ],
273  [
274  'id' => 2,
275  'etag' => '"' . md5($object) . '"',
276  'uri' => 'id-2',
277  'size' => strlen($object),
278  'calendardata' => $object,
279  'lastmodified' => null,
280  ],
281  ];
282 
283  $result = $backend->getMultipleCalendarObjects($returnedId, ['id-1', 'id-2']);
284 
285  foreach ($check as $index => $props) {
286 
287  foreach ($props as $key => $expected) {
288 
289  $actual = $result[$index][$key];
290 
291  switch ($key) {
292  case 'lastmodified' :
293  $this->assertInternalType('int', $actual);
294  break;
295  case 'calendardata' :
296  if (is_resource($actual)) {
297  $actual = stream_get_contents($actual);
298  }
299  // no break intentional
300  default :
301  $this->assertEquals($expected, $actual);
302 
303  }
304 
305  }
306 
307  }
308 
309  }
$result
$index
Definition: metadata.php:60
$key
Definition: croninfo.php:18

◆ testGetMultipleObjectsBadId()

Sabre\CalDAV\Backend\AbstractPDOTest::testGetMultipleObjectsBadId ( )

testGetMultipleObjects

Definition at line 315 of file AbstractPDOTest.php.

315  {
316 
317  $backend = new PDO($this->pdo);
318  $backend->getMultipleCalendarObjects('bad-id', ['foo-bar']);
319 
320  }

◆ testSchedulingMethods()

Sabre\CalDAV\Backend\AbstractPDOTest::testSchedulingMethods ( )

Definition at line 1064 of file AbstractPDOTest.php.

References $result, and $results.

1064  {
1065 
1066  $backend = new PDO($this->pdo);
1067 
1068  $calData = "BEGIN:VCALENDAR\r\nEND:VCALENDAR\r\n";
1069 
1070  $backend->createSchedulingObject(
1071  'principals/user1',
1072  'schedule1.ics',
1073  $calData
1074  );
1075 
1076  $expected = [
1077  'calendardata' => $calData,
1078  'uri' => 'schedule1.ics',
1079  'etag' => '"' . md5($calData) . '"',
1080  'size' => strlen($calData)
1081  ];
1082 
1083  $result = $backend->getSchedulingObject('principals/user1', 'schedule1.ics');
1084  foreach ($expected as $k => $v) {
1085  $this->assertArrayHasKey($k, $result);
1086  if (is_resource($result[$k])) {
1087  $result[$k] = stream_get_contents($result[$k]);
1088  }
1089  $this->assertEquals($v, $result[$k]);
1090  }
1091 
1092  $results = $backend->getSchedulingObjects('principals/user1');
1093 
1094  $this->assertEquals(1, count($results));
1095  $result = $results[0];
1096  foreach ($expected as $k => $v) {
1097  if (is_resource($result[$k])) {
1098  $result[$k] = stream_get_contents($result[$k]);
1099  }
1100  $this->assertEquals($v, $result[$k]);
1101  }
1102 
1103  $backend->deleteSchedulingObject('principals/user1', 'schedule1.ics');
1104  $result = $backend->getSchedulingObject('principals/user1', 'schedule1.ics');
1105 
1106  $this->assertNull($result);
1107 
1108  }
$result
$results
Definition: svg-scanner.php:47

◆ testSetPublishStatus()

Sabre\CalDAV\Backend\AbstractPDOTest::testSetPublishStatus ( )

Definition at line 1424 of file AbstractPDOTest.php.

1424  {
1425 
1426  $backend = new PDO($this->pdo);
1427  $backend->setPublishStatus([1, 1], true);
1428 
1429  }

◆ testUpdateCalendarAndFetch()

Sabre\CalDAV\Backend\AbstractPDOTest::testUpdateCalendarAndFetch ( )

testConstruct

Definition at line 86 of file AbstractPDOTest.php.

References $name, and $result.

86  {
87 
88  $backend = new PDO($this->pdo);
89 
90  //Creating a new calendar
91  $newId = $backend->createCalendar('principals/user2', 'somerandomid', []);
92 
93  $propPatch = new PropPatch([
94  '{DAV:}displayname' => 'myCalendar',
95  '{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp' => new CalDAV\Xml\Property\ScheduleCalendarTransp('transparent'),
96  ]);
97 
98  // Updating the calendar
99  $backend->updateCalendar($newId, $propPatch);
100  $result = $propPatch->commit();
101 
102  // Verifying the result of the update
103  $this->assertTrue($result);
104 
105  // Fetching all calendars from this user
106  $calendars = $backend->getCalendarsForUser('principals/user2');
107 
108  // Checking if all the information is still correct
109  $elementCheck = [
110  'id' => $newId,
111  'uri' => 'somerandomid',
112  '{DAV:}displayname' => 'myCalendar',
113  '{urn:ietf:params:xml:ns:caldav}calendar-description' => '',
114  '{urn:ietf:params:xml:ns:caldav}calendar-timezone' => '',
115  '{http://calendarserver.org/ns/}getctag' => 'http://sabre.io/ns/sync/2',
116  '{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp' => new CalDAV\Xml\Property\ScheduleCalendarTransp('transparent'),
117  ];
118 
119  $this->assertInternalType('array', $calendars);
120  $this->assertEquals(1, count($calendars));
121 
122  foreach ($elementCheck as $name => $value) {
123 
124  $this->assertArrayHasKey($name, $calendars[0]);
125  $this->assertEquals($value, $calendars[0][$name]);
126 
127  }
128 
129  }
$result

◆ testUpdateCalendarBadId()

Sabre\CalDAV\Backend\AbstractPDOTest::testUpdateCalendarBadId ( )

testConstruct

Definition at line 135 of file AbstractPDOTest.php.

135  {
136 
137  $backend = new PDO($this->pdo);
138 
139  //Creating a new calendar
140  $newId = $backend->createCalendar('principals/user2', 'somerandomid', []);
141 
142  $propPatch = new PropPatch([
143  '{DAV:}displayname' => 'myCalendar',
144  '{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp' => new CalDAV\Xml\Property\ScheduleCalendarTransp('transparent'),
145  ]);
146 
147  // Updating the calendar
148  $backend->updateCalendar('raaaa', $propPatch);
149 
150  }

◆ testUpdateCalendarObject()

Sabre\CalDAV\Backend\AbstractPDOTest::testUpdateCalendarObject ( )

testCreateCalendarObject

Definition at line 595 of file AbstractPDOTest.php.

References $data.

595  {
596 
597  $backend = new PDO($this->pdo);
598  $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', []);
599 
600  $object = "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART;VALUE=DATE:20120101\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
601  $object2 = "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nDTSTART;VALUE=DATE:20130101\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
602  $backend->createCalendarObject($returnedId, 'random-id', $object);
603  $backend->updateCalendarObject($returnedId, 'random-id', $object2);
604 
605  $data = $backend->getCalendarObject($returnedId, 'random-id');
606 
607  if (is_resource($data['calendardata'])) {
608  $data['calendardata'] = stream_get_contents($data['calendardata']);
609  }
610 
611  $this->assertEquals($object2, $data['calendardata']);
612  $this->assertEquals('random-id', $data['uri']);
613 
614 
615  }
$data
Definition: bench.php:6

◆ testUpdateCalendarObjectBadId()

Sabre\CalDAV\Backend\AbstractPDOTest::testUpdateCalendarObjectBadId ( )

testUpdateCalendarObject

Definition at line 621 of file AbstractPDOTest.php.

621  {
622 
623  $backend = new PDO($this->pdo);
624  $backend->updateCalendarObject('bad-id', 'object-id', 'objectdata');
625 
626  }

◆ testUpdateCalendarUnknownProperty()

Sabre\CalDAV\Backend\AbstractPDOTest::testUpdateCalendarUnknownProperty ( )

testUpdateCalendarAndFetch

Definition at line 155 of file AbstractPDOTest.php.

155  {
156 
157  $backend = new PDO($this->pdo);
158 
159  //Creating a new calendar
160  $newId = $backend->createCalendar('principals/user2', 'somerandomid', []);
161 
162  $propPatch = new PropPatch([
163  '{DAV:}displayname' => 'myCalendar',
164  '{DAV:}yourmom' => 'wittycomment',
165  ]);
166 
167  // Updating the calendar
168  $backend->updateCalendar($newId, $propPatch);
169  $propPatch->commit();
170 
171  // Verifying the result of the update
172  $this->assertEquals([
173  '{DAV:}yourmom' => 403,
174  '{DAV:}displayname' => 424,
175  ], $propPatch->getResult());
176 
177  }

◆ testUpdateInvites()

Sabre\CalDAV\Backend\AbstractPDOTest::testUpdateInvites ( )

testCreateCalendarAndFetch

Definition at line 1151 of file AbstractPDOTest.php.

References $calendar, $result, and Sabre\DAV\Sharing\Plugin\ACCESS_READ.

1151  {
1152 
1153  $backend = new PDO($this->pdo);
1154 
1155  // creating a new calendar
1156  $backend->createCalendar('principals/user1', 'somerandomid', []);
1157  $calendar = $backend->getCalendarsForUser('principals/user1')[0];
1158 
1159  $ownerSharee = new Sharee([
1160  'href' => 'principals/user1',
1161  'principal' => 'principals/user1',
1162  'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_SHAREDOWNER,
1163  'inviteStatus' => \Sabre\DAV\Sharing\Plugin::INVITE_ACCEPTED,
1164  ]);
1165 
1166  // Add a new invite
1167  $backend->updateInvites(
1168  $calendar['id'],
1169  [
1170  new Sharee([
1171  'href' => 'mailto:user@example.org',
1172  'principal' => 'principals/user2',
1173  'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_READ,
1174  'inviteStatus' => \Sabre\DAV\Sharing\Plugin::INVITE_ACCEPTED,
1175  'properties' => ['{DAV:}displayname' => 'User 2'],
1176  ])
1177  ]
1178  );
1179 
1180  $result = $backend->getInvites($calendar['id']);
1181  $expected = [
1182  $ownerSharee,
1183  new Sharee([
1184  'href' => 'mailto:user@example.org',
1185  'principal' => 'principals/user2',
1186  'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_READ,
1187  'inviteStatus' => \Sabre\DAV\Sharing\Plugin::INVITE_ACCEPTED,
1188  'properties' => [
1189  '{DAV:}displayname' => 'User 2',
1190  ],
1191  ])
1192  ];
1193  $this->assertEquals($expected, $result);
1194 
1195  // Checking calendar_instances too
1196  $expectedCalendar = [
1197  'id' => [1,2],
1198  'principaluri' => 'principals/user2',
1199  '{http://calendarserver.org/ns/}getctag' => 'http://sabre.io/ns/sync/1',
1200  '{http://sabredav.org/ns}sync-token' => '1',
1201  'share-access' => \Sabre\DAV\Sharing\Plugin::ACCESS_READ,
1202  'read-only' => true,
1203  'share-resource-uri' => '/ns/share/1',
1204  ];
1205  $calendars = $backend->getCalendarsForUser('principals/user2');
1206 
1207  foreach ($expectedCalendar as $k => $v) {
1208  $this->assertEquals(
1209  $v,
1210  $calendars[0][$k],
1211  "Key " . $k . " in calendars array did not have the expected value."
1212  );
1213  }
1214 
1215 
1216  // Updating an invite
1217  $backend->updateInvites(
1218  $calendar['id'],
1219  [
1220  new Sharee([
1221  'href' => 'mailto:user@example.org',
1222  'principal' => 'principals/user2',
1223  'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_READWRITE,
1224  'inviteStatus' => \Sabre\DAV\Sharing\Plugin::INVITE_ACCEPTED,
1225  ])
1226  ]
1227  );
1228 
1229  $result = $backend->getInvites($calendar['id']);
1230  $expected = [
1231  $ownerSharee,
1232  new Sharee([
1233  'href' => 'mailto:user@example.org',
1234  'principal' => 'principals/user2',
1235  'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_READWRITE,
1236  'inviteStatus' => \Sabre\DAV\Sharing\Plugin::INVITE_ACCEPTED,
1237  'properties' => [
1238  '{DAV:}displayname' => 'User 2',
1239  ],
1240  ])
1241  ];
1242  $this->assertEquals($expected, $result);
1243 
1244  // Removing an invite
1245  $backend->updateInvites(
1246  $calendar['id'],
1247  [
1248  new Sharee([
1249  'href' => 'mailto:user@example.org',
1250  'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_NOACCESS,
1251  ])
1252  ]
1253  );
1254 
1255  $result = $backend->getInvites($calendar['id']);
1256  $expected = [
1257  $ownerSharee
1258  ];
1259  $this->assertEquals($expected, $result);
1260 
1261  // Preventing the owner share from being removed
1262  $backend->updateInvites(
1263  $calendar['id'],
1264  [
1265  new Sharee([
1266  'href' => 'principals/user2',
1267  'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_NOACCESS,
1268  ])
1269  ]
1270  );
1271 
1272  $result = $backend->getInvites($calendar['id']);
1273  $expected = [
1274  new Sharee([
1275  'href' => 'principals/user1',
1276  'principal' => 'principals/user1',
1277  'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_SHAREDOWNER,
1278  'inviteStatus' => \Sabre\DAV\Sharing\Plugin::INVITE_ACCEPTED,
1279  ]),
1280  ];
1281  $this->assertEquals($expected, $result);
1282 
1283  }
$result

◆ testUpdateInvitesBadId()

Sabre\CalDAV\Backend\AbstractPDOTest::testUpdateInvitesBadId ( )

testUpdateInvites

Definition at line 1289 of file AbstractPDOTest.php.

1289  {
1290 
1291  $backend = new PDO($this->pdo);
1292  // Add a new invite
1293  $backend->updateInvites(
1294  'bad-id',
1295  []
1296  );
1297 
1298  }

◆ testUpdateInvitesNoPrincipal()

Sabre\CalDAV\Backend\AbstractPDOTest::testUpdateInvitesNoPrincipal ( )

testUpdateInvites

Definition at line 1303 of file AbstractPDOTest.php.

References $calendar, and $result.

1303  {
1304 
1305  $backend = new PDO($this->pdo);
1306 
1307  // creating a new calendar
1308  $backend->createCalendar('principals/user1', 'somerandomid', []);
1309  $calendar = $backend->getCalendarsForUser('principals/user1')[0];
1310 
1311  $ownerSharee = new Sharee([
1312  'href' => 'principals/user1',
1313  'principal' => 'principals/user1',
1314  'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_SHAREDOWNER,
1315  'inviteStatus' => \Sabre\DAV\Sharing\Plugin::INVITE_ACCEPTED,
1316  ]);
1317 
1318  // Add a new invite
1319  $backend->updateInvites(
1320  $calendar['id'],
1321  [
1322  new Sharee([
1323  'href' => 'mailto:user@example.org',
1324  'principal' => null,
1325  'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_READ,
1326  'inviteStatus' => \Sabre\DAV\Sharing\Plugin::INVITE_ACCEPTED,
1327  'properties' => ['{DAV:}displayname' => 'User 2'],
1328  ])
1329  ]
1330  );
1331 
1332  $result = $backend->getInvites($calendar['id']);
1333  $expected = [
1334  $ownerSharee,
1335  new Sharee([
1336  'href' => 'mailto:user@example.org',
1337  'principal' => null,
1338  'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_READ,
1339  'inviteStatus' => \Sabre\DAV\Sharing\Plugin::INVITE_INVALID,
1340  'properties' => [
1341  '{DAV:}displayname' => 'User 2',
1342  ],
1343  ])
1344  ];
1345  $this->assertEquals($expected, $result, null, 0.0, 10, true); // Last argument is $canonicalize = true, which allows us to compare, ignoring the order, because it's different between MySQL and Sqlite.
1346 
1347  }
$result

◆ testUpdateSubscriptions()

Sabre\CalDAV\Backend\AbstractPDOTest::testUpdateSubscriptions ( )

Definition at line 963 of file AbstractPDOTest.php.

References $result.

963  {
964 
965  $props = [
966  '{http://calendarserver.org/ns/}source' => new \Sabre\DAV\Xml\Property\Href('http://example.org/cal.ics', false),
967  '{DAV:}displayname' => 'cal',
968  '{http://apple.com/ns/ical/}refreshrate' => 'P1W',
969  '{http://apple.com/ns/ical/}calendar-color' => '#FF00FFFF',
970  '{http://calendarserver.org/ns/}subscribed-strip-todos' => true,
971  //'{http://calendarserver.org/ns/}subscribed-strip-alarms' => true,
972  '{http://calendarserver.org/ns/}subscribed-strip-attachments' => true,
973  ];
974 
975  $backend = new PDO($this->pdo);
976  $backend->createSubscription('principals/user1', 'sub1', $props);
977 
978  $newProps = [
979  '{DAV:}displayname' => 'new displayname',
980  '{http://calendarserver.org/ns/}source' => new \Sabre\DAV\Xml\Property\Href('http://example.org/cal2.ics', false),
981  ];
982 
983  $propPatch = new DAV\PropPatch($newProps);
984  $backend->updateSubscription(1, $propPatch);
985  $result = $propPatch->commit();
986 
987  $this->assertTrue($result);
988 
989  $subs = $backend->getSubscriptionsForUser('principals/user1');
990 
991  $expected = array_merge($props, $newProps);
992  $expected['id'] = 1;
993  $expected['uri'] = 'sub1';
994  $expected['principaluri'] = 'principals/user1';
995 
996  unset($expected['{http://calendarserver.org/ns/}source']);
997  $expected['source'] = 'http://example.org/cal2.ics';
998 
999  $this->assertEquals(1, count($subs));
1000  foreach ($expected as $k => $v) {
1001  $this->assertEquals($subs[0][$k], $expected[$k]);
1002  }
1003 
1004  }
$result

◆ testUpdateSubscriptionsFail()

Sabre\CalDAV\Backend\AbstractPDOTest::testUpdateSubscriptionsFail ( )

Definition at line 1006 of file AbstractPDOTest.php.

1006  {
1007 
1008  $props = [
1009  '{http://calendarserver.org/ns/}source' => new \Sabre\DAV\Xml\Property\Href('http://example.org/cal.ics', false),
1010  '{DAV:}displayname' => 'cal',
1011  '{http://apple.com/ns/ical/}refreshrate' => 'P1W',
1012  '{http://apple.com/ns/ical/}calendar-color' => '#FF00FFFF',
1013  '{http://calendarserver.org/ns/}subscribed-strip-todos' => true,
1014  //'{http://calendarserver.org/ns/}subscribed-strip-alarms' => true,
1015  '{http://calendarserver.org/ns/}subscribed-strip-attachments' => true,
1016  ];
1017 
1018  $backend = new PDO($this->pdo);
1019  $backend->createSubscription('principals/user1', 'sub1', $props);
1020 
1021  $propPatch = new DAV\PropPatch([
1022  '{DAV:}displayname' => 'new displayname',
1023  '{http://calendarserver.org/ns/}source' => new \Sabre\DAV\Xml\Property\Href('http://example.org/cal2.ics', false),
1024  '{DAV:}unknown' => 'foo',
1025  ]);
1026 
1027  $backend->updateSubscription(1, $propPatch);
1028  $propPatch->commit();
1029 
1030  $this->assertEquals([
1031  '{DAV:}unknown' => 403,
1032  '{DAV:}displayname' => 424,
1033  '{http://calendarserver.org/ns/}source' => 424,
1034  ], $propPatch->getResult());
1035 
1036  }

Field Documentation

◆ $pdo

Sabre\CalDAV\Backend\AbstractPDOTest::$pdo
protected

Definition at line 14 of file AbstractPDOTest.php.


The documentation for this class was generated from the following file: