13DTSTART:20140811T220000Z
44DTSTART:20140811T220000Z
46ORGANIZER;CN=Strunk:mailto:strunk@example.org
47ATTENDEE;CN=White:mailto:white@example.org
53 $expectedMessage = <<<ICS
61DTSTART:20140811T220000Z
63ORGANIZER;CN=Strunk:mailto:strunk@example.org
64ATTENDEE;CN=White;PARTSTAT=NEEDS-ACTION:mailto:white@example.org
72 'method' =>
'REQUEST',
73 'component' =>
'VEVENT',
74 'sender' =>
'mailto:strunk@example.org',
75 'senderName' =>
'Strunk',
76 'recipient' =>
'mailto:white@example.org',
77 'recipientName' =>
'White',
78 'message' => $expectedMessage,
82 $this->
parse(
null,
$message, $expected,
'mailto:strunk@example.org');
96ORGANIZER;CN=Strunk:mailto:strunk@example.org
97ATTENDEE;CN=White:mailto:white@example.org
101ORGANIZER;CN=Strunk:mailto:strunk@example.org
102ATTENDEE;CN=White:mailto:white@example.org
107 $this->
parse(
null,
$message, [],
'mailto:strunk@example.org');
120ORGANIZER;CN=Strunk:mailto:strunk@example.org
121ATTENDEE;CN=White:mailto:white@example.org
125ORGANIZER:mailto:foo@example.org
126ATTENDEE;CN=White:mailto:white@example.org
131 $this->
parse(
null,
$message, [],
'mailto:strunk@example.org');
142ORGANIZER;CN=Strunk:mailto:strunk@example.org
143ATTENDEE;CN=One:mailto:one@example.org
144ATTENDEE;CN=Two:mailto:two@example.org
145DTSTART:20140716T120000Z
148EXDATE:20140717T120000Z
152RECURRENCE-ID:20140718T120000Z
153ORGANIZER;CN=Strunk:mailto:strunk@example.org
154ATTENDEE;CN=Two:mailto:two@example.org
155ATTENDEE;CN=Three:mailto:three@example.org
156DTSTART:20140718T120000Z
167 'method' =>
'REQUEST',
168 'component' =>
'VEVENT',
169 'sender' =>
'mailto:strunk@example.org',
170 'senderName' =>
'Strunk',
171 'recipient' =>
'mailto:one@example.org',
172 'recipientName' =>
'One',
181ORGANIZER;CN=Strunk:mailto:strunk@example.org
182ATTENDEE;CN=One;PARTSTAT=NEEDS-ACTION:mailto:one@example.org
183ATTENDEE;CN=Two;PARTSTAT=NEEDS-ACTION:mailto:two@example.org
184DTSTART:20140716T120000Z
187EXDATE:20140717T120000Z,20140718T120000Z
195 'method' =>
'REQUEST',
196 'component' =>
'VEVENT',
197 'sender' =>
'mailto:strunk@example.org',
198 'senderName' =>
'Strunk',
199 'recipient' =>
'mailto:two@example.org',
200 'recipientName' =>
'Two',
209ORGANIZER;CN=Strunk:mailto:strunk@example.org
210ATTENDEE;CN=One;PARTSTAT=NEEDS-ACTION:mailto:one@example.org
211ATTENDEE;CN=Two;PARTSTAT=NEEDS-ACTION:mailto:two@example.org
212DTSTART:20140716T120000Z
215EXDATE:20140717T120000Z
219RECURRENCE-ID:20140718T120000Z
220ORGANIZER;CN=Strunk:mailto:strunk@example.org
221ATTENDEE;CN=Two:mailto:two@example.org
222ATTENDEE;CN=Three:mailto:three@example.org
223DTSTART:20140718T120000Z
232 'method' =>
'REQUEST',
233 'component' =>
'VEVENT',
234 'sender' =>
'mailto:strunk@example.org',
235 'senderName' =>
'Strunk',
236 'recipient' =>
'mailto:three@example.org',
237 'recipientName' =>
'Three',
246RECURRENCE-ID:20140718T120000Z
247ORGANIZER;CN=Strunk:mailto:strunk@example.org
248ATTENDEE;CN=Two:mailto:two@example.org
249ATTENDEE;CN=Three:mailto:three@example.org
250DTSTART:20140718T120000Z
259 $this->
parse(
null,
$message, $expected,
'mailto:strunk@example.org');
272ORGANIZER;CN=Strunk:mailto:strunk@example.org
273ATTENDEE;CN=One:mailto:one@example.org
274ATTENDEE;CN=Two:mailto:two@example.org
275DTSTART:20140716T120000Z
276DTEND:20140716T130000Z
281RECURRENCE-ID:20140718T120000Z
282ORGANIZER;CN=Strunk:mailto:strunk@example.org
283ATTENDEE;CN=Two:mailto:two@example.org
284ATTENDEE;CN=Three:mailto:three@example.org
285DTSTART:20140718T120000Z
286DTEND:20140718T130000Z
296 'method' =>
'REQUEST',
297 'component' =>
'VEVENT',
298 'sender' =>
'mailto:strunk@example.org',
299 'senderName' =>
'Strunk',
300 'recipient' =>
'mailto:one@example.org',
301 'recipientName' =>
'One',
310ORGANIZER;CN=Strunk:mailto:strunk@example.org
311ATTENDEE;CN=One;PARTSTAT=NEEDS-ACTION:mailto:one@example.org
312ATTENDEE;CN=Two;PARTSTAT=NEEDS-ACTION:mailto:two@example.org
313DTSTART:20140716T120000Z
314DTEND:20140716T130000Z
316EXDATE:20140718T120000Z
324 'method' =>
'REQUEST',
325 'component' =>
'VEVENT',
326 'sender' =>
'mailto:strunk@example.org',
327 'senderName' =>
'Strunk',
328 'recipient' =>
'mailto:two@example.org',
329 'recipientName' =>
'Two',
338ORGANIZER;CN=Strunk:mailto:strunk@example.org
339ATTENDEE;CN=One;PARTSTAT=NEEDS-ACTION:mailto:one@example.org
340ATTENDEE;CN=Two;PARTSTAT=NEEDS-ACTION:mailto:two@example.org
341DTSTART:20140716T120000Z
342DTEND:20140716T130000Z
347RECURRENCE-ID:20140718T120000Z
348ORGANIZER;CN=Strunk:mailto:strunk@example.org
349ATTENDEE;CN=Two:mailto:two@example.org
350ATTENDEE;CN=Three:mailto:three@example.org
351DTSTART:20140718T120000Z
352DTEND:20140718T130000Z
360 'method' =>
'REQUEST',
361 'component' =>
'VEVENT',
362 'sender' =>
'mailto:strunk@example.org',
363 'senderName' =>
'Strunk',
364 'recipient' =>
'mailto:three@example.org',
365 'recipientName' =>
'Three',
374RECURRENCE-ID:20140718T120000Z
375ORGANIZER;CN=Strunk:mailto:strunk@example.org
376ATTENDEE;CN=Two:mailto:two@example.org
377ATTENDEE;CN=Three:mailto:three@example.org
378DTSTART:20140718T120000Z
379DTEND:20140718T130000Z
387 $this->
parse(
null,
$message, $expected,
'mailto:strunk@example.org');
399ORGANIZER;CN=Strunk:mailto:strunk@example.org
400ATTENDEE;CN=One:mailto:one@example.org
401DTSTART:20140716T120000Z
402DTEND:20140716T130000Z
403RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;BYDAY=SA,SU
413 'method' =>
'REQUEST',
414 'component' =>
'VEVENT',
415 'sender' =>
'mailto:strunk@example.org',
416 'senderName' =>
'Strunk',
417 'recipient' =>
'mailto:one@example.org',
418 'recipientName' =>
'One',
427ORGANIZER;CN=Strunk:mailto:strunk@example.org
428ATTENDEE;CN=One;PARTSTAT=NEEDS-ACTION:mailto:one@example.org
429DTSTART:20140716T120000Z
430DTEND:20140716T130000Z
431RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;BYDAY=SA,SU
439 $this->
parse(
null,
$message, $expected,
'mailto:strunk@example.org');
450DTSTART:20140811T220000Z
451DTEND:20140811T230000Z
452ORGANIZER;CN=Strunk:mailto:strunk@example.org
453ATTENDEE;CN=White;SCHEDULE-AGENT=CLIENT:mailto:white@example.org
460 $this->
parse(
null,
$message, [],
'mailto:strunk@example.org');
474ORGANIZER;CN=Strunk:mailto:strunk@example.org
475ATTENDEE;CN=One:mailto:one@example.org
476ATTENDEE;CN=Two:mailto:two@example.org
477DTSTART:20140716T120000Z
478DTEND:20140716T130000Z
483RECURRENCE-ID:20140718T120000Z
484ORGANIZER;CN=Strunk:mailto:strunk@example.org
485ATTENDEE;CN=Two:mailto:two@example.org
486ATTENDEE;CN=Three:mailto:three@example.org
487DTSTART:20140718T120000Z
488DTEND:20140718T130000Z
494 $this->
parse(
null,
$message, [],
'mailto:strunk@example.org');
508ORGANIZER;CN=Strunk:mailto:strunk@example.org
509ATTENDEE;CN=One:mailto:one@example.org
510ATTENDEE;CN=Two:mailto:two@example.org
511DTSTART:20140716T120000Z
512DTEND:20140716T130000Z
517RECURRENCE-ID:20140718T120000Z
518ORGANIZER;CN=Strunk:mailto:ew@example.org
519ATTENDEE;CN=Two:mailto:two@example.org
520ATTENDEE;CN=Three:mailto:three@example.org
521DTSTART:20140718T120000Z
522DTEND:20140718T130000Z
528 $this->
parse(
null,
$message, [],
'mailto:strunk@example.org');
537DTSTART:20140811T220000Z
538DTEND:20140811T230000Z
539ATTENDEE;CN=Two:mailto:two@example.org
544 $this->
parse(
null,
$message, [],
'mailto:strunk@example.org');
An exception for terminatinating execution or to throw for unit testing.
testScheduleAgentClient()
testNoOrganizerHasAttendee()
testBrokenEventOrganizerMisMatch()
@expectedException \Sabre\VObject\ITip\ITipException
testMultipleUID()
@expectedException Sabre\VObject\ITip\ITipException
testChangingOrganizers()
@expectedException Sabre\VObject\ITip\SameOrganizerForAllComponentsException
testBrokenEventUIDMisMatch()
@expectedException \Sabre\VObject\ITip\ITipException
Utilities for testing the broker.
parse($oldMessage, $newMessage, $expected=[], $currentUser='mailto:one @example.org')
const VERSION
Full version number.
catch(Exception $e) $message