13 DTSTART:20140811T220000Z
14 DTEND:20140811T230000Z
44 DTSTART:20140811T220000Z
45 DTEND:20140811T230000Z
46 ORGANIZER;CN=Strunk:mailto:strunk@example.org
47 ATTENDEE;CN=White:mailto:white@example.org
53 $expectedMessage = <<<ICS
61 DTSTART:20140811T220000Z
62 DTEND:20140811T230000Z
63 ORGANIZER;CN=Strunk:mailto:strunk@example.org
64 ATTENDEE;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');
96 ORGANIZER;CN=Strunk:mailto:strunk@example.org
97 ATTENDEE;CN=White:mailto:white@example.org
101 ORGANIZER;CN=Strunk:mailto:strunk@example.org
102 ATTENDEE;CN=White:mailto:white@example.org
107 $this->
parse(null,
$message, [],
'mailto:strunk@example.org');
120 ORGANIZER;CN=Strunk:mailto:strunk@example.org
121 ATTENDEE;CN=White:mailto:white@example.org
125 ORGANIZER:mailto:foo@example.org
126 ATTENDEE;CN=White:mailto:white@example.org
131 $this->
parse(null,
$message, [],
'mailto:strunk@example.org');
142 ORGANIZER;CN=Strunk:mailto:strunk@example.org
143 ATTENDEE;CN=One:mailto:one@example.org
144 ATTENDEE;CN=Two:mailto:two@example.org
145 DTSTART:20140716T120000Z
148 EXDATE:20140717T120000Z
152 RECURRENCE-ID:20140718T120000Z
153 ORGANIZER;CN=Strunk:mailto:strunk@example.org
154 ATTENDEE;CN=Two:mailto:two@example.org
155 ATTENDEE;CN=Three:mailto:three@example.org
156 DTSTART: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',
181 ORGANIZER;CN=Strunk:mailto:strunk@example.org
182 ATTENDEE;CN=One;PARTSTAT=NEEDS-ACTION:mailto:one@example.org
183 ATTENDEE;CN=Two;PARTSTAT=NEEDS-ACTION:mailto:two@example.org
184 DTSTART:20140716T120000Z
187 EXDATE: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',
209 ORGANIZER;CN=Strunk:mailto:strunk@example.org
210 ATTENDEE;CN=One;PARTSTAT=NEEDS-ACTION:mailto:one@example.org
211 ATTENDEE;CN=Two;PARTSTAT=NEEDS-ACTION:mailto:two@example.org
212 DTSTART:20140716T120000Z
215 EXDATE:20140717T120000Z
219 RECURRENCE-ID:20140718T120000Z
220 ORGANIZER;CN=Strunk:mailto:strunk@example.org
221 ATTENDEE;CN=Two:mailto:two@example.org
222 ATTENDEE;CN=Three:mailto:three@example.org
223 DTSTART: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',
246 RECURRENCE-ID:20140718T120000Z
247 ORGANIZER;CN=Strunk:mailto:strunk@example.org
248 ATTENDEE;CN=Two:mailto:two@example.org
249 ATTENDEE;CN=Three:mailto:three@example.org
250 DTSTART:20140718T120000Z
259 $this->
parse(null,
$message, $expected,
'mailto:strunk@example.org');
272 ORGANIZER;CN=Strunk:mailto:strunk@example.org
273 ATTENDEE;CN=One:mailto:one@example.org
274 ATTENDEE;CN=Two:mailto:two@example.org
275 DTSTART:20140716T120000Z
276 DTEND:20140716T130000Z
281 RECURRENCE-ID:20140718T120000Z
282 ORGANIZER;CN=Strunk:mailto:strunk@example.org
283 ATTENDEE;CN=Two:mailto:two@example.org
284 ATTENDEE;CN=Three:mailto:three@example.org
285 DTSTART:20140718T120000Z
286 DTEND: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',
310 ORGANIZER;CN=Strunk:mailto:strunk@example.org
311 ATTENDEE;CN=One;PARTSTAT=NEEDS-ACTION:mailto:one@example.org
312 ATTENDEE;CN=Two;PARTSTAT=NEEDS-ACTION:mailto:two@example.org
313 DTSTART:20140716T120000Z
314 DTEND:20140716T130000Z
316 EXDATE: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',
338 ORGANIZER;CN=Strunk:mailto:strunk@example.org
339 ATTENDEE;CN=One;PARTSTAT=NEEDS-ACTION:mailto:one@example.org
340 ATTENDEE;CN=Two;PARTSTAT=NEEDS-ACTION:mailto:two@example.org
341 DTSTART:20140716T120000Z
342 DTEND:20140716T130000Z
347 RECURRENCE-ID:20140718T120000Z
348 ORGANIZER;CN=Strunk:mailto:strunk@example.org
349 ATTENDEE;CN=Two:mailto:two@example.org
350 ATTENDEE;CN=Three:mailto:three@example.org
351 DTSTART:20140718T120000Z
352 DTEND: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',
374 RECURRENCE-ID:20140718T120000Z
375 ORGANIZER;CN=Strunk:mailto:strunk@example.org
376 ATTENDEE;CN=Two:mailto:two@example.org
377 ATTENDEE;CN=Three:mailto:three@example.org
378 DTSTART:20140718T120000Z
379 DTEND:20140718T130000Z
387 $this->
parse(null,
$message, $expected,
'mailto:strunk@example.org');
399 ORGANIZER;CN=Strunk:mailto:strunk@example.org
400 ATTENDEE;CN=One:mailto:one@example.org
401 DTSTART:20140716T120000Z
402 DTEND:20140716T130000Z
403 RRULE: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',
427 ORGANIZER;CN=Strunk:mailto:strunk@example.org
428 ATTENDEE;CN=One;PARTSTAT=NEEDS-ACTION:mailto:one@example.org
429 DTSTART:20140716T120000Z
430 DTEND:20140716T130000Z
431 RRULE:FREQ=WEEKLY;INTERVAL=2;COUNT=8;BYDAY=SA,SU
439 $this->
parse(null,
$message, $expected,
'mailto:strunk@example.org');
450 DTSTART:20140811T220000Z
451 DTEND:20140811T230000Z
452 ORGANIZER;CN=Strunk:mailto:strunk@example.org
453 ATTENDEE;CN=White;SCHEDULE-AGENT=CLIENT:mailto:white@example.org
460 $this->
parse(null,
$message, [],
'mailto:strunk@example.org');
474 ORGANIZER;CN=Strunk:mailto:strunk@example.org
475 ATTENDEE;CN=One:mailto:one@example.org
476 ATTENDEE;CN=Two:mailto:two@example.org
477 DTSTART:20140716T120000Z
478 DTEND:20140716T130000Z
483 RECURRENCE-ID:20140718T120000Z
484 ORGANIZER;CN=Strunk:mailto:strunk@example.org
485 ATTENDEE;CN=Two:mailto:two@example.org
486 ATTENDEE;CN=Three:mailto:three@example.org
487 DTSTART:20140718T120000Z
488 DTEND:20140718T130000Z
494 $this->
parse(null,
$message, [],
'mailto:strunk@example.org');
508 ORGANIZER;CN=Strunk:mailto:strunk@example.org
509 ATTENDEE;CN=One:mailto:one@example.org
510 ATTENDEE;CN=Two:mailto:two@example.org
511 DTSTART:20140716T120000Z
512 DTEND:20140716T130000Z
517 RECURRENCE-ID:20140718T120000Z
518 ORGANIZER;CN=Strunk:mailto:ew@example.org
519 ATTENDEE;CN=Two:mailto:two@example.org
520 ATTENDEE;CN=Three:mailto:three@example.org
521 DTSTART:20140718T120000Z
522 DTEND:20140718T130000Z
528 $this->
parse(null,
$message, [],
'mailto:strunk@example.org');
537 DTSTART:20140811T220000Z
538 DTEND:20140811T230000Z
539 ATTENDEE;CN=Two:mailto:two@example.org
544 $this->
parse(null,
$message, [],
'mailto:strunk@example.org');
testBrokenEventOrganizerMisMatch()
const VERSION
Full version number.
testScheduleAgentClient()
testBrokenEventUIDMisMatch()
catch(Exception $e) $message
testNoOrganizerHasAttendee()
parse($oldMessage, $newMessage, $expected=[], $currentUser='mailto:one @example.org')
Utilities for testing the broker.
testChangingOrganizers()
Sabre