10 use VObject\PHPUnitAssertions;
19 'principaluri' =>
'principals/user1',
23 'principaluri' =>
'principals/user2',
30 $this->calendarObjectUri =
'/calendars/user1/cal/object.ics';
42DTSTART:20140811T230000Z
43ORGANIZER:mailto:user1.sabredav@sabredav.org
44ATTENDEE:mailto:user2.sabredav@sabredav.org
49 $this->
deliver(
null, $newObject);
57DTSTART:20140811T230000Z
58ORGANIZER:mailto:user1.sabredav@sabredav.org
59ATTENDEE;SCHEDULE-STATUS=1.2:mailto:user2.sabredav@sabredav.org
65 $this->assertVObjectEqualsVObject(
79DTSTART:20140811T230000Z
80ORGANIZER:mailto:user1.sabredav@sabredav.org
81ATTENDEE:mailto:user2.sabredav@sabredav.org
86 $this->calendarObjectUri =
'/calendars/user1/object.ics';
87 $this->
deliver(
null, $newObject);
98DTSTART:20140811T230000Z
99ORGANIZER:mailto:user1.sabredav@sabredav.org
100ATTENDEE:mailto:user2.sabredav@sabredav.org
105 $this->
deliver(
null, $newObject,
true);
115DTSTART:20140811T230000Z
116ORGANIZER:mailto:user1.sabredav@sabredav.org
117ATTENDEE:mailto:user2.sabredav@sabredav.org
126DTSTART:20140811T230000Z
127ORGANIZER:mailto:user1.sabredav@sabredav.org
132 $this->
deliver($oldObject, $newObject);
140DTSTART:20140811T230000Z
141ORGANIZER:mailto:user1.sabredav@sabredav.org
142ATTENDEE;SCHEDULE-STATUS=1.2:mailto:user2.sabredav@sabredav.org
148 $this->assertVObjectEqualsVObject(
161DTSTART:20140811T230000Z
162ORGANIZER:mailto:user1.sabredav@sabredav.org
163ATTENDEE:mailto:user2.sabredav@sabredav.org
171DTSTART:20140811T230000Z
172ORGANIZER:mailto:user1.sabredav@sabredav.org
177 $this->
deliver($oldObject, $newObject,
true);
188DTSTART:20140811T230000Z
189ORGANIZER:mailto:user1.sabredav@sabredav.org
190ATTENDEE:mailto:user2.sabredav@sabredav.org
198DTSTART:20140811T230000Z
199ORGANIZER:mailto:user1.sabredav@sabredav.org
204 $this->calendarObjectUri =
'/calendars/user1/inbox/foo.ics';
205 $this->
deliver($oldObject, $newObject);
218DTSTART:20140811T230000Z
219ORGANIZER:mailto:user1.sabredav@sabredav.org
220ATTENDEE:mailto:user2.sabredav@sabredav.org
225 $this->
deliver($oldObject, $newObject);
238DTSTART:20140811T230000Z
239ORGANIZER:mailto:user1.sabredav@sabredav.org
240ATTENDEE:mailto:user2.sabredav@sabredav.org
245 $this->
deliver($oldObject, $newObject,
true);
264DTSTART:20140811T230000Z
265ORGANIZER:mailto:user1.sabredav@sabredav.org
266ATTENDEE:mailto:user2.sabredav@sabredav.org
272 $this->server->httpRequest->setMethod(
'MOVE');
273 $this->
deliver($oldObject, $newObject);
286DTSTART:20140811T230000Z
287ORGANIZER:mailto:user1.sabredav@sabredav.org
288ATTENDEE:mailto:user2.sabredav@sabredav.org
293 $this->calendarObjectUri =
'/calendars/user1/inbox/foo.ics';
294 $this->
deliver($oldObject, $newObject);
305DTSTART:20140811T230000Z
306ORGANIZER:mailto:user2.sabredav@sabredav.org
307ATTENDEE;PARTSTAT=ACCEPTED:mailto:user2.sabredav@sabredav.org
308ATTENDEE:mailto:user1.sabredav@sabredav.org
309ATTENDEE:mailto:user3.sabredav@sabredav.org
318DTSTART:20140811T230000Z
319ORGANIZER:mailto:user2.sabredav@sabredav.org
320ATTENDEE;PARTSTAT=ACCEPTED:mailto:user2.sabredav@sabredav.org
321ATTENDEE;PARTSTAT=ACCEPTED:mailto:user1.sabredav@sabredav.org
322ATTENDEE:mailto:user3.sabredav@sabredav.org
327 $this->
putPath(
'calendars/user2/cal/foo.ics', $oldObject);
329 $this->
deliver($oldObject, $newObject);
338DTSTART:20140811T230000Z
339ORGANIZER;SCHEDULE-STATUS=1.2:mailto:user2.sabredav@sabredav.org
340ATTENDEE;PARTSTAT=ACCEPTED:mailto:user2.sabredav@sabredav.org
341ATTENDEE;PARTSTAT=ACCEPTED:mailto:user1.sabredav@sabredav.org
342ATTENDEE:mailto:user3.sabredav@sabredav.org
348 $this->assertVObjectEqualsVObject(
363DTSTART:20140811T230000Z
364ORGANIZER:mailto:user1.sabredav@sabredav.org
365ATTENDEE:mailto:user3.sabredav@sabredav.org
370 $this->
deliver(
null, $newObject);
377DTSTART:20140811T230000Z
378ORGANIZER:mailto:user1.sabredav@sabredav.org
379ATTENDEE;SCHEDULE-STATUS=3.7:mailto:user3.sabredav@sabredav.org
385 $this->assertVObjectEqualsVObject(
398DTSTART:20140811T230000Z
399ORGANIZER:mailto:user1.sabredav@sabredav.org
400ATTENDEE:mailto:user2.sabredav@sabredav.org
405 $this->server->on(
'propFind',
function($propFind) {
408 $this->
deliver(
null, $newObject);
415DTSTART:20140811T230000Z
416ORGANIZER:mailto:user1.sabredav@sabredav.org
417ATTENDEE;SCHEDULE-STATUS=5.2:mailto:user2.sabredav@sabredav.org
423 $this->assertVObjectEqualsVObject(
436DTSTART:20140811T230000Z
437ORGANIZER:mailto:user1.sabredav@sabredav.org
438ATTENDEE:mailto:user2.sabredav@sabredav.org
443 $this->server->on(
'propFind',
function($propFind) {
446 $this->
deliver(
null, $newObject);
453DTSTART:20140811T230000Z
454ORGANIZER:mailto:user1.sabredav@sabredav.org
455ATTENDEE;SCHEDULE-STATUS=5.2:mailto:user2.sabredav@sabredav.org
461 $this->assertVObjectEqualsVObject(
473DTSTART:20140811T230000Z
474ORGANIZER:mailto:user1.sabredav@sabredav.org
475ATTENDEE:mailto:user2.sabredav@sabredav.org
480 $this->server->on(
'propFind',
function($propFind) {
481 $propFind->set(
'{' .
Plugin::NS_CALDAV .
'}schedule-default-calendar-URL',
null, 403);
483 $this->
deliver(
null, $newObject);
490DTSTART:20140811T230000Z
491ORGANIZER:mailto:user1.sabredav@sabredav.org
492ATTENDEE;SCHEDULE-STATUS=5.2:mailto:user2.sabredav@sabredav.org
498 $this->assertVObjectEqualsVObject(
510DTSTART:20140811T230000Z
511ORGANIZER:mailto:user1.sabredav@sabredav.org
512ATTENDEE:mailto:user2.sabredav@sabredav.org
517 $this->server->removeAllListeners(
'schedule');
518 $this->
deliver(
null, $newObject);
525DTSTART:20140811T230000Z
526ORGANIZER:mailto:user1.sabredav@sabredav.org
527ATTENDEE;SCHEDULE-STATUS=5.2:mailto:user2.sabredav@sabredav.org
533 $this->assertVObjectEqualsVObject(
541 $this->setupACL =
false;
548DTSTART:20140811T230000Z
549ORGANIZER:mailto:user1.sabredav@sabredav.org
550ATTENDEE:mailto:user2.sabredav@sabredav.org
555 $this->
deliver(
null, $newObject);
562DTSTART:20140811T230000Z
563ORGANIZER:mailto:user1.sabredav@sabredav.org
564ATTENDEE;SCHEDULE-STATUS=5.2:mailto:user2.sabredav@sabredav.org
570 $this->assertVObjectEqualsVObject(
579 function deliver($oldObject, &$newObject, $disableScheduling =
false) {
581 $this->server->httpRequest->setUrl($this->calendarObjectUri);
582 if ($disableScheduling) {
583 $this->server->httpRequest->setHeader(
'Schedule-Reply',
'F');
586 if ($oldObject && $newObject) {
588 $this->
putPath($this->calendarObjectUri, $oldObject);
590 $stream = fopen(
'php://memory',
'r+');
595 $this->server->emit(
'beforeWriteContent', [
596 $this->calendarObjectUri,
597 $this->server->tree->getNodeForPath($this->calendarObjectUri),
605 } elseif ($oldObject && !$newObject) {
607 $this->
putPath($this->calendarObjectUri, $oldObject);
609 $this->caldavSchedulePlugin->beforeUnbind(
610 $this->calendarObjectUri
615 $stream = fopen(
'php://memory',
'r+');
619 $this->server->emit(
'beforeCreateFile', [
620 $this->calendarObjectUri,
622 $this->server->tree->getNodeForPath(dirname($this->calendarObjectUri)),
646 list($parent,
$base) = \Sabre\HTTP\UrlUtil::splitPath(
$path);
647 $parentNode = $this->server->tree->getNodeForPath($parent);
661 $inboxNode = $this->server->tree->getNodeForPath(
'calendars/' .
$user .
'/inbox');
662 $this->assertEquals($count, count($inboxNode->getChildren()));
An exception for terminatinating execution or to throw for unit testing.
const NS_CALDAV
This is the official CalDAV namespace.
testNewOnWrongCollection()
testUpdatedInviteWrongPath()
testNewInviteSchedulingDisabled()
testDeletedInviteWrongUrl()
testInviteNoCalendarHomeSet()
testUnbindIgnoredOnMove()
A MOVE request will trigger an unbind on a scheduling resource.
testInviteNoDefaultCalendar()
putPath($path, $data)
Creates or updates a node at the specified path.
deliver($oldObject, &$newObject, $disableScheduling=false)
testUpdatedInviteSchedulingDisabled()
assertItemsInInbox($user, $count)
testDeletedInviteSchedulingDisabled()
This class may be used as a basis for other webdav-related unittests.
The Request class represents a single HTTP request.
$stream
PHP stream implementation.