ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
BrokerAttendeeReplyTest.php
Go to the documentation of this file.
1 <?php
2 
3 namespace Sabre\VObject\ITip;
4 
6 
7  function testAccepted() {
8 
9  $oldMessage = <<<ICS
10 BEGIN:VCALENDAR
11 VERSION:2.0
12 BEGIN:VEVENT
13 UID:foobar
14 SUMMARY:B-day party
15 SEQUENCE:1
16 ORGANIZER;CN=Strunk:mailto:strunk@example.org
17 ATTENDEE;CN=One:mailto:one@example.org
18 DTSTART:20140716T120000Z
19 END:VEVENT
20 END:VCALENDAR
21 ICS;
22 
23 
24  $newMessage = <<<ICS
25 BEGIN:VCALENDAR
26 VERSION:2.0
27 BEGIN:VEVENT
28 UID:foobar
29 SUMMARY:B-day party
30 SEQUENCE:1
31 ORGANIZER;CN=Strunk:mailto:strunk@example.org
32 ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one@example.org
33 DTSTART:20140716T120000Z
34 END:VEVENT
35 END:VCALENDAR
36 ICS;
37 
39 
40  $expected = [
41  [
42  'uid' => 'foobar',
43  'method' => 'REPLY',
44  'component' => 'VEVENT',
45  'sender' => 'mailto:one@example.org',
46  'senderName' => 'One',
47  'recipient' => 'mailto:strunk@example.org',
48  'recipientName' => 'Strunk',
49  'message' => <<<ICS
50 BEGIN:VCALENDAR
51 VERSION:2.0
52 PRODID:-//Sabre//Sabre VObject $version//EN
53 CALSCALE:GREGORIAN
54 METHOD:REPLY
55 BEGIN:VEVENT
56 UID:foobar
57 DTSTAMP:**ANY**
58 SEQUENCE:1
59 DTSTART:20140716T120000Z
60 SUMMARY:B-day party
61 ORGANIZER;CN=Strunk:mailto:strunk@example.org
62 ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one@example.org
63 END:VEVENT
64 END:VCALENDAR
65 ICS
66 
67  ],
68 
69  ];
70 
71  $this->parse($oldMessage, $newMessage, $expected);
72 
73  }
74 
75  function testRecurringReply() {
76 
77  $oldMessage = <<<ICS
78 BEGIN:VCALENDAR
79 VERSION:2.0
80 BEGIN:VEVENT
81 UID:foobar
82 SEQUENCE:1
83 ORGANIZER;CN=Strunk:mailto:strunk@example.org
84 ATTENDEE;CN=One:mailto:one@example.org
85 DTSTART:20140724T120000Z
86 SUMMARY:Daily sprint
87 RRULE;FREQ=DAILY
88 END:VEVENT
89 END:VCALENDAR
90 ICS;
91 
92 
93  $newMessage = <<<ICS
94 BEGIN:VCALENDAR
95 VERSION:2.0
96 BEGIN:VEVENT
97 UID:foobar
98 SEQUENCE:1
99 ORGANIZER;CN=Strunk:mailto:strunk@example.org
100 ATTENDEE;PARTSTAT=NEEDS-ACTION;CN=One:mailto:one@example.org
101 DTSTART:20140724T120000Z
102 SUMMARY:Daily sprint
103 END:VEVENT
104 BEGIN:VEVENT
105 UID:foobar
106 SEQUENCE:1
107 ORGANIZER;CN=Strunk:mailto:strunk@example.org
108 ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one@example.org
109 DTSTART:20140726T120000Z
110 RECURRENCE-ID:20140726T120000Z
111 END:VEVENT
112 BEGIN:VEVENT
113 UID:foobar
114 SEQUENCE:1
115 ORGANIZER;CN=Strunk:mailto:strunk@example.org
116 ATTENDEE;PARTSTAT=DECLINED;CN=One:mailto:one@example.org
117 DTSTART:20140724T120000Z
118 RECURRENCE-ID:20140724T120000Z
119 END:VEVENT
120 BEGIN:VEVENT
121 UID:foobar
122 SEQUENCE:1
123 ORGANIZER;CN=Strunk:mailto:strunk@example.org
124 ATTENDEE;PARTSTAT=TENTATIVE;CN=One:mailto:one@example.org
125 DTSTART:20140728T120000Z
126 RECURRENCE-ID:20140728T120000Z
127 END:VEVENT
128 BEGIN:VEVENT
129 UID:foobar
130 SEQUENCE:1
131 ORGANIZER;CN=Strunk:mailto:strunk@example.org
132 ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one@example.org
133 DTSTART:20140729T120000Z
134 RECURRENCE-ID:20140729T120000Z
135 END:VEVENT
136 BEGIN:VEVENT
137 UID:foobar
138 SEQUENCE:1
139 ORGANIZER;CN=Strunk:mailto:strunk@example.org
140 ATTENDEE;PARTSTAT=DECLINED;CN=One:mailto:one@example.org
141 DTSTART:20140725T120000Z
142 RECURRENCE-ID:20140725T120000Z
143 END:VEVENT
144 END:VCALENDAR
145 ICS;
146 
148 
149  $expected = [
150  [
151  'uid' => 'foobar',
152  'method' => 'REPLY',
153  'component' => 'VEVENT',
154  'sender' => 'mailto:one@example.org',
155  'senderName' => 'One',
156  'recipient' => 'mailto:strunk@example.org',
157  'recipientName' => 'Strunk',
158  'message' => <<<ICS
159 BEGIN:VCALENDAR
160 VERSION:2.0
161 PRODID:-//Sabre//Sabre VObject $version//EN
162 CALSCALE:GREGORIAN
163 METHOD:REPLY
164 BEGIN:VEVENT
165 UID:foobar
166 DTSTAMP:**ANY**
167 SEQUENCE:1
168 DTSTART:20140726T120000Z
169 SUMMARY:Daily sprint
170 RECURRENCE-ID:20140726T120000Z
171 ORGANIZER;CN=Strunk:mailto:strunk@example.org
172 ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one@example.org
173 END:VEVENT
174 BEGIN:VEVENT
175 UID:foobar
176 DTSTAMP:**ANY**
177 SEQUENCE:1
178 DTSTART:20140724T120000Z
179 SUMMARY:Daily sprint
180 RECURRENCE-ID:20140724T120000Z
181 ORGANIZER;CN=Strunk:mailto:strunk@example.org
182 ATTENDEE;PARTSTAT=DECLINED;CN=One:mailto:one@example.org
183 END:VEVENT
184 BEGIN:VEVENT
185 UID:foobar
186 DTSTAMP:**ANY**
187 SEQUENCE:1
188 DTSTART:20140728T120000Z
189 SUMMARY:Daily sprint
190 RECURRENCE-ID:20140728T120000Z
191 ORGANIZER;CN=Strunk:mailto:strunk@example.org
192 ATTENDEE;PARTSTAT=TENTATIVE;CN=One:mailto:one@example.org
193 END:VEVENT
194 BEGIN:VEVENT
195 UID:foobar
196 DTSTAMP:**ANY**
197 SEQUENCE:1
198 DTSTART:20140729T120000Z
199 SUMMARY:Daily sprint
200 RECURRENCE-ID:20140729T120000Z
201 ORGANIZER;CN=Strunk:mailto:strunk@example.org
202 ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one@example.org
203 END:VEVENT
204 BEGIN:VEVENT
205 UID:foobar
206 DTSTAMP:**ANY**
207 SEQUENCE:1
208 DTSTART:20140725T120000Z
209 SUMMARY:Daily sprint
210 RECURRENCE-ID:20140725T120000Z
211 ORGANIZER;CN=Strunk:mailto:strunk@example.org
212 ATTENDEE;PARTSTAT=DECLINED;CN=One:mailto:one@example.org
213 END:VEVENT
214 END:VCALENDAR
215 ICS
216 
217  ],
218 
219  ];
220 
221  $this->parse($oldMessage, $newMessage, $expected);
222 
223  }
224 
225  function testRecurringAllDay() {
226 
227  $oldMessage = <<<ICS
228 BEGIN:VCALENDAR
229 VERSION:2.0
230 BEGIN:VEVENT
231 UID:foobar
232 SEQUENCE:1
233 ORGANIZER;CN=Strunk:mailto:strunk@example.org
234 ATTENDEE;CN=One:mailto:one@example.org
235 DTSTART;VALUE=DATE:20140724
236 RRULE;FREQ=DAILY
237 END:VEVENT
238 END:VCALENDAR
239 ICS;
240 
241 
242  $newMessage = <<<ICS
243 BEGIN:VCALENDAR
244 VERSION:2.0
245 BEGIN:VEVENT
246 UID:foobar
247 SEQUENCE:1
248 ORGANIZER;CN=Strunk:mailto:strunk@example.org
249 ATTENDEE;PARTSTAT=NEEDS-ACTION;CN=One:mailto:one@example.org
250 DTSTART;VALUE=DATE:20140724
251 END:VEVENT
252 BEGIN:VEVENT
253 UID:foobar
254 SEQUENCE:1
255 ORGANIZER;CN=Strunk:mailto:strunk@example.org
256 ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one@example.org
257 DTSTART;VALUE=DATE:20140726
258 RECURRENCE-ID;VALUE=DATE:20140726
259 END:VEVENT
260 BEGIN:VEVENT
261 UID:foobar
262 SEQUENCE:1
263 ORGANIZER;CN=Strunk:mailto:strunk@example.org
264 ATTENDEE;PARTSTAT=DECLINED;CN=One:mailto:one@example.org
265 DTSTART;VALUE=DATE:20140724
266 RECURRENCE-ID;VALUE=DATE:20140724
267 END:VEVENT
268 BEGIN:VEVENT
269 UID:foobar
270 SEQUENCE:1
271 ORGANIZER;CN=Strunk:mailto:strunk@example.org
272 ATTENDEE;PARTSTAT=TENTATIVE;CN=One:mailto:one@example.org
273 DTSTART;VALUE=DATE:20140728
274 RECURRENCE-ID;VALUE=DATE:20140728
275 END:VEVENT
276 BEGIN:VEVENT
277 UID:foobar
278 SEQUENCE:1
279 ORGANIZER;CN=Strunk:mailto:strunk@example.org
280 ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one@example.org
281 DTSTART;VALUE=DATE:20140729
282 RECURRENCE-ID;VALUE=DATE:20140729
283 END:VEVENT
284 BEGIN:VEVENT
285 UID:foobar
286 SEQUENCE:1
287 ORGANIZER;CN=Strunk:mailto:strunk@example.org
288 ATTENDEE;PARTSTAT=DECLINED;CN=One:mailto:one@example.org
289 DTSTART;VALUE=DATE:20140725
290 RECURRENCE-ID;VALUE=DATE:20140725
291 END:VEVENT
292 END:VCALENDAR
293 ICS;
294 
296 
297  $expected = [
298  [
299  'uid' => 'foobar',
300  'method' => 'REPLY',
301  'component' => 'VEVENT',
302  'sender' => 'mailto:one@example.org',
303  'senderName' => 'One',
304  'recipient' => 'mailto:strunk@example.org',
305  'recipientName' => 'Strunk',
306  'message' => <<<ICS
307 BEGIN:VCALENDAR
308 VERSION:2.0
309 PRODID:-//Sabre//Sabre VObject $version//EN
310 CALSCALE:GREGORIAN
311 METHOD:REPLY
312 BEGIN:VEVENT
313 UID:foobar
314 DTSTAMP:**ANY**
315 SEQUENCE:1
316 DTSTART;VALUE=DATE:20140726
317 RECURRENCE-ID;VALUE=DATE:20140726
318 ORGANIZER;CN=Strunk:mailto:strunk@example.org
319 ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one@example.org
320 END:VEVENT
321 BEGIN:VEVENT
322 UID:foobar
323 DTSTAMP:**ANY**
324 SEQUENCE:1
325 DTSTART;VALUE=DATE:20140724
326 RECURRENCE-ID;VALUE=DATE:20140724
327 ORGANIZER;CN=Strunk:mailto:strunk@example.org
328 ATTENDEE;PARTSTAT=DECLINED;CN=One:mailto:one@example.org
329 END:VEVENT
330 BEGIN:VEVENT
331 UID:foobar
332 DTSTAMP:**ANY**
333 SEQUENCE:1
334 DTSTART;VALUE=DATE:20140728
335 RECURRENCE-ID;VALUE=DATE:20140728
336 ORGANIZER;CN=Strunk:mailto:strunk@example.org
337 ATTENDEE;PARTSTAT=TENTATIVE;CN=One:mailto:one@example.org
338 END:VEVENT
339 BEGIN:VEVENT
340 UID:foobar
341 DTSTAMP:**ANY**
342 SEQUENCE:1
343 DTSTART;VALUE=DATE:20140729
344 RECURRENCE-ID;VALUE=DATE:20140729
345 ORGANIZER;CN=Strunk:mailto:strunk@example.org
346 ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one@example.org
347 END:VEVENT
348 BEGIN:VEVENT
349 UID:foobar
350 DTSTAMP:**ANY**
351 SEQUENCE:1
352 DTSTART;VALUE=DATE:20140725
353 RECURRENCE-ID;VALUE=DATE:20140725
354 ORGANIZER;CN=Strunk:mailto:strunk@example.org
355 ATTENDEE;PARTSTAT=DECLINED;CN=One:mailto:one@example.org
356 END:VEVENT
357 END:VCALENDAR
358 ICS
359 
360  ],
361 
362  ];
363 
364  $this->parse($oldMessage, $newMessage, $expected);
365 
366  }
367 
368  function testNoChange() {
369 
370  $oldMessage = <<<ICS
371 BEGIN:VCALENDAR
372 VERSION:2.0
373 BEGIN:VEVENT
374 UID:foobar
375 SEQUENCE:1
376 ORGANIZER;CN=Strunk:mailto:strunk@example.org
377 ATTENDEE;CN=One:mailto:one@example.org
378 DTSTART:20140716T120000Z
379 END:VEVENT
380 END:VCALENDAR
381 ICS;
382 
383 
384  $newMessage = <<<ICS
385 BEGIN:VCALENDAR
386 VERSION:2.0
387 BEGIN:VEVENT
388 UID:foobar
389 SEQUENCE:1
390 ORGANIZER;CN=Strunk:mailto:strunk@example.org
391 ATTENDEE;PARTSTAT=NEEDS-ACTION;CN=One:mailto:one@example.org
392 DTSTART:20140716T120000Z
393 END:VEVENT
394 END:VCALENDAR
395 ICS;
396 
397 
398  $expected = [];
399  $this->parse($oldMessage, $newMessage, $expected);
400 
401  }
402 
404 
405  $oldMessage = <<<ICS
406 BEGIN:VCALENDAR
407 VERSION:2.0
408 BEGIN:VEVENT
409 UID:foobar
410 SEQUENCE:1
411 ORGANIZER;CN=Strunk:mailto:strunk@example.org
412 ATTENDEE;CN=One:mailto:one@example.org
413 DTSTART:20140716T120000Z
414 END:VEVENT
415 END:VCALENDAR
416 ICS;
417 
418 
419  $newMessage = <<<ICS
420 BEGIN:VCALENDAR
421 VERSION:2.0
422 BEGIN:VEVENT
423 UID:foobar
424 SEQUENCE:1
425 ORGANIZER;SCHEDULE-FORCE-SEND=REPLY;CN=Strunk:mailto:strunk@example.org
426 ATTENDEE;PARTSTAT=NEEDS-ACTION;CN=One:mailto:one@example.org
427 DTSTART:20140716T120000Z
428 END:VEVENT
429 END:VCALENDAR
430 ICS;
431 
433  $expected = [
434  [
435  'uid' => 'foobar',
436  'method' => 'REPLY',
437  'component' => 'VEVENT',
438  'sender' => 'mailto:one@example.org',
439  'senderName' => 'One',
440  'recipient' => 'mailto:strunk@example.org',
441  'recipientName' => 'Strunk',
442  'message' => <<<ICS
443 BEGIN:VCALENDAR
444 VERSION:2.0
445 PRODID:-//Sabre//Sabre VObject $version//EN
446 CALSCALE:GREGORIAN
447 METHOD:REPLY
448 BEGIN:VEVENT
449 UID:foobar
450 DTSTAMP:**ANY**
451 SEQUENCE:1
452 DTSTART:20140716T120000Z
453 ORGANIZER;CN=Strunk:mailto:strunk@example.org
454 ATTENDEE;PARTSTAT=NEEDS-ACTION;CN=One:mailto:one@example.org
455 END:VEVENT
456 END:VCALENDAR
457 ICS
458  ]
459 
460  ];
461  $this->parse($oldMessage, $newMessage, $expected);
462 
463  }
464 
466 
467  $oldMessage = <<<ICS
468 BEGIN:VCALENDAR
469 VERSION:2.0
470 BEGIN:VEVENT
471 UID:foobar
472 SEQUENCE:1
473 ORGANIZER;CN=Strunk:mailto:strunk@example.org
474 ATTENDEE;CN=Two:mailto:two@example.org
475 DTSTART:20140716T120000Z
476 END:VEVENT
477 END:VCALENDAR
478 ICS;
479 
480 
481  $newMessage = <<<ICS
482 BEGIN:VCALENDAR
483 VERSION:2.0
484 BEGIN:VEVENT
485 UID:foobar
486 SEQUENCE:1
487 ORGANIZER;CN=Strunk:mailto:strunk@example.org
488 ATTENDEE;PARTSTAT=ACCEPTED;CN=Two:mailto:two@example.org
489 DTSTART:20140716T120000Z
490 END:VEVENT
491 END:VCALENDAR
492 ICS;
493 
494  $expected = [];
495  $this->parse($oldMessage, $newMessage, $expected);
496 
497  }
498 
508 
509 
510  $oldMessage = <<<ICS
511 BEGIN:VCALENDAR
512 VERSION:2.0
513 BEGIN:VEVENT
514 UID:foobar
515 SEQUENCE:1
516 DTSTART:20140811T200000Z
517 RRULE:FREQ=WEEKLY
518 ORGANIZER:mailto:organizer@example.org
519 ATTENDEE:mailto:one@example.org
520 END:VEVENT
521 END:VCALENDAR
522 ICS;
523 
524  $newMessage = <<<ICS
525 BEGIN:VCALENDAR
526 VERSION:2.0
527 BEGIN:VEVENT
528 UID:foobar
529 SEQUENCE:1
530 DTSTART:20140811T200000Z
531 RRULE:FREQ=WEEKLY
532 ORGANIZER:mailto:organizer@example.org
533 ATTENDEE:mailto:one@example.org
534 EXDATE:20140818T200000Z
535 END:VEVENT
536 END:VCALENDAR
537 ICS;
538 
540  $expected = [
541  [
542  'uid' => 'foobar',
543  'method' => 'REPLY',
544  'component' => 'VEVENT',
545  'sender' => 'mailto:one@example.org',
546  'senderName' => null,
547  'recipient' => 'mailto:organizer@example.org',
548  'recipientName' => null,
549  'message' => <<<ICS
550 BEGIN:VCALENDAR
551 VERSION:2.0
552 PRODID:-//Sabre//Sabre VObject $version//EN
553 CALSCALE:GREGORIAN
554 METHOD:REPLY
555 BEGIN:VEVENT
556 UID:foobar
557 DTSTAMP:**ANY**
558 SEQUENCE:1
559 DTSTART:20140818T200000Z
560 RECURRENCE-ID:20140818T200000Z
561 ORGANIZER:mailto:organizer@example.org
562 ATTENDEE;PARTSTAT=DECLINED:mailto:one@example.org
563 END:VEVENT
564 END:VCALENDAR
565 ICS
566 
567  ],
568  ];
569  $this->parse($oldMessage, $newMessage, $expected);
570 
571  }
572 
580 
581 
582  $oldMessage = <<<ICS
583 BEGIN:VCALENDAR
584 VERSION:2.0
585 BEGIN:VEVENT
586 UID:foobar
587 SEQUENCE:1
588 DTSTART;TZID=America/Toronto:20140811T200000
589 RRULE:FREQ=WEEKLY
590 ORGANIZER:mailto:organizer@example.org
591 ATTENDEE:mailto:one@example.org
592 END:VEVENT
593 END:VCALENDAR
594 ICS;
595 
596  $newMessage = <<<ICS
597 BEGIN:VCALENDAR
598 VERSION:2.0
599 BEGIN:VEVENT
600 UID:foobar
601 SEQUENCE:1
602 DTSTART;TZID=America/Toronto:20140811T200000
603 RRULE:FREQ=WEEKLY
604 ORGANIZER:mailto:organizer@example.org
605 ATTENDEE:mailto:one@example.org
606 EXDATE;TZID=America/Toronto:20140818T200000
607 END:VEVENT
608 END:VCALENDAR
609 ICS;
610 
612  $expected = [
613  [
614  'uid' => 'foobar',
615  'method' => 'REPLY',
616  'component' => 'VEVENT',
617  'sender' => 'mailto:one@example.org',
618  'senderName' => null,
619  'recipient' => 'mailto:organizer@example.org',
620  'recipientName' => null,
621  'message' => <<<ICS
622 BEGIN:VCALENDAR
623 VERSION:2.0
624 PRODID:-//Sabre//Sabre VObject $version//EN
625 CALSCALE:GREGORIAN
626 METHOD:REPLY
627 BEGIN:VEVENT
628 UID:foobar
629 DTSTAMP:**ANY**
630 SEQUENCE:1
631 DTSTART;TZID=America/Toronto:20140818T200000
632 RECURRENCE-ID;TZID=America/Toronto:20140818T200000
633 ORGANIZER:mailto:organizer@example.org
634 ATTENDEE;PARTSTAT=DECLINED:mailto:one@example.org
635 END:VEVENT
636 END:VCALENDAR
637 ICS
638 
639  ],
640  ];
641  $this->parse($oldMessage, $newMessage, $expected);
642 
643  }
644 
649 
650 
651  $oldMessage = <<<ICS
652 BEGIN:VCALENDAR
653 VERSION:2.0
654 BEGIN:VEVENT
655 SUMMARY:Weekly meeting
656 UID:foobar
657 SEQUENCE:1
658 DTSTART;VALUE=DATE:20140811
659 RRULE:FREQ=WEEKLY
660 ORGANIZER:mailto:organizer@example.org
661 ATTENDEE:mailto:one@example.org
662 END:VEVENT
663 END:VCALENDAR
664 ICS;
665 
666  $newMessage = <<<ICS
667 BEGIN:VCALENDAR
668 VERSION:2.0
669 BEGIN:VEVENT
670 SUMMARY:Weekly meeting
671 UID:foobar
672 SEQUENCE:1
673 DTSTART;VALUE=DATE:20140811
674 RRULE:FREQ=WEEKLY
675 ORGANIZER:mailto:organizer@example.org
676 ATTENDEE:mailto:one@example.org
677 EXDATE;VALUE=DATE:20140818
678 END:VEVENT
679 END:VCALENDAR
680 ICS;
681 
683  $expected = [
684  [
685  'uid' => 'foobar',
686  'method' => 'REPLY',
687  'component' => 'VEVENT',
688  'sender' => 'mailto:one@example.org',
689  'senderName' => null,
690  'recipient' => 'mailto:organizer@example.org',
691  'recipientName' => null,
692  'message' => <<<ICS
693 BEGIN:VCALENDAR
694 VERSION:2.0
695 PRODID:-//Sabre//Sabre VObject $version//EN
696 CALSCALE:GREGORIAN
697 METHOD:REPLY
698 BEGIN:VEVENT
699 UID:foobar
700 DTSTAMP:**ANY**
701 SEQUENCE:1
702 DTSTART;VALUE=DATE:20140818
703 SUMMARY:Weekly meeting
704 RECURRENCE-ID;VALUE=DATE:20140818
705 ORGANIZER:mailto:organizer@example.org
706 ATTENDEE;PARTSTAT=DECLINED:mailto:one@example.org
707 END:VEVENT
708 END:VCALENDAR
709 ICS
710 
711  ],
712  ];
713  $this->parse($oldMessage, $newMessage, $expected);
714 
715  }
716 
717  function testDeclined() {
718 
719  $oldMessage = <<<ICS
720 BEGIN:VCALENDAR
721 VERSION:2.0
722 BEGIN:VEVENT
723 UID:foobar
724 SEQUENCE:1
725 ORGANIZER;CN=Strunk:mailto:strunk@example.org
726 ATTENDEE;CN=One:mailto:one@example.org
727 DTSTART:20140716T120000Z
728 END:VEVENT
729 END:VCALENDAR
730 ICS;
731 
732 
733  $newMessage = <<<ICS
734 BEGIN:VCALENDAR
735 VERSION:2.0
736 BEGIN:VEVENT
737 UID:foobar
738 SEQUENCE:1
739 ORGANIZER;CN=Strunk:mailto:strunk@example.org
740 ATTENDEE;PARTSTAT=DECLINED;CN=One:mailto:one@example.org
741 DTSTART:20140716T120000Z
742 END:VEVENT
743 END:VCALENDAR
744 ICS;
745 
747 
748  $expected = [
749  [
750  'uid' => 'foobar',
751  'method' => 'REPLY',
752  'component' => 'VEVENT',
753  'sender' => 'mailto:one@example.org',
754  'senderName' => 'One',
755  'recipient' => 'mailto:strunk@example.org',
756  'recipientName' => 'Strunk',
757  'message' => <<<ICS
758 BEGIN:VCALENDAR
759 VERSION:2.0
760 PRODID:-//Sabre//Sabre VObject $version//EN
761 CALSCALE:GREGORIAN
762 METHOD:REPLY
763 BEGIN:VEVENT
764 UID:foobar
765 DTSTAMP:**ANY**
766 SEQUENCE:1
767 DTSTART:20140716T120000Z
768 ORGANIZER;CN=Strunk:mailto:strunk@example.org
769 ATTENDEE;PARTSTAT=DECLINED;CN=One:mailto:one@example.org
770 END:VEVENT
771 END:VCALENDAR
772 ICS
773 
774  ],
775 
776  ];
777 
778  $this->parse($oldMessage, $newMessage, $expected);
779 
780  }
781 
783 
784  $oldMessage = <<<ICS
785 BEGIN:VCALENDAR
786 VERSION:2.0
787 BEGIN:VEVENT
788 STATUS:CANCELLED
789 UID:foobar
790 SEQUENCE:1
791 ORGANIZER;CN=Strunk:mailto:strunk@example.org
792 ATTENDEE;CN=One:mailto:one@example.org
793 DTSTART:20140716T120000Z
794 END:VEVENT
795 END:VCALENDAR
796 ICS;
797 
798 
799  $newMessage = <<<ICS
800 BEGIN:VCALENDAR
801 VERSION:2.0
802 BEGIN:VEVENT
803 STATUS:CANCELLED
804 UID:foobar
805 SEQUENCE:1
806 ORGANIZER;CN=Strunk:mailto:strunk@example.org
807 ATTENDEE;PARTSTAT=DECLINED;CN=One:mailto:one@example.org
808 DTSTART:20140716T120000Z
809 END:VEVENT
810 END:VCALENDAR
811 ICS;
812 
814 
815  $expected = [];
816 
817  $this->parse($oldMessage, $newMessage, $expected);
818 
819  }
820 
831 
832 
833  $oldMessage = <<<ICS
834 BEGIN:VCALENDAR
835 VERSION:2.0
836 BEGIN:VEVENT
837 UID:foobar
838 SEQUENCE:1
839 DTSTART:20140811T200000Z
840 RRULE:FREQ=WEEKLY
841 ORGANIZER:mailto:organizer@example.org
842 ATTENDEE:mailto:one@example.org
843 END:VEVENT
844 BEGIN:VEVENT
845 RECURRENCE-ID:20140818T200000Z
846 UID:foobar
847 SEQUENCE:1
848 DTSTART:20140818T200000Z
849 RRULE:FREQ=WEEKLY
850 ORGANIZER:mailto:organizer@example.org
851 ATTENDEE;PARTSTAT=DECLINED:mailto:one@example.org
852 END:VEVENT
853 END:VCALENDAR
854 ICS;
855 
856  $newMessage = <<<ICS
857 BEGIN:VCALENDAR
858 VERSION:2.0
859 BEGIN:VEVENT
860 UID:foobar
861 SEQUENCE:1
862 DTSTART:20140811T200000Z
863 RRULE:FREQ=WEEKLY
864 ORGANIZER:mailto:organizer@example.org
865 ATTENDEE:mailto:one@example.org
866 EXDATE:20140818T200000Z
867 END:VEVENT
868 END:VCALENDAR
869 ICS;
870 
871  $expected = [];
872 
873  $this->parse($oldMessage, $newMessage, $expected);
874 
875  }
876 
878 
879  $oldMessage = <<<ICS
880 BEGIN:VCALENDAR
881 VERSION:2.0
882 BEGIN:VEVENT
883 UID:foobar
884 SEQUENCE:1
885 ORGANIZER;CN=Strunk:mailto:strunk@example.org
886 ATTENDEE;CN=One:mailto:one@example.org
887 DTSTART:20140716T120000Z
888 END:VEVENT
889 END:VCALENDAR
890 ICS;
891 
892 
893  $newMessage = <<<ICS
894 BEGIN:VCALENDAR
895 VERSION:2.0
896 BEGIN:VEVENT
897 UID:foobar
898 SEQUENCE:1
899 ORGANIZER;SCHEDULE-AGENT=CLIENT;CN=Strunk:mailto:strunk@example.org
900 ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one@example.org
901 DTSTART:20140716T120000Z
902 END:VEVENT
903 END:VCALENDAR
904 ICS;
905 
907 
908  $expected = [];
909  $this->parse($oldMessage, $newMessage, $expected);
910 
911  }
912 
913  function testAcceptedAllDay() {
914 
915  $oldMessage = <<<ICS
916 BEGIN:VCALENDAR
917 VERSION:2.0
918 BEGIN:VEVENT
919 UID:foobar
920 SEQUENCE:1
921 ORGANIZER;CN=Strunk:mailto:strunk@example.org
922 ATTENDEE;CN=One:mailto:one@example.org
923 DTSTART;VALUE=DATE:20140716
924 END:VEVENT
925 END:VCALENDAR
926 ICS;
927 
928 
929  $newMessage = <<<ICS
930 BEGIN:VCALENDAR
931 VERSION:2.0
932 BEGIN:VEVENT
933 UID:foobar
934 SEQUENCE:1
935 ORGANIZER;CN=Strunk:mailto:strunk@example.org
936 ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one@example.org
937 DTSTART;VALUE=DATE:20140716
938 END:VEVENT
939 END:VCALENDAR
940 ICS;
941 
943 
944  $expected = [
945  [
946  'uid' => 'foobar',
947  'method' => 'REPLY',
948  'component' => 'VEVENT',
949  'sender' => 'mailto:one@example.org',
950  'senderName' => 'One',
951  'recipient' => 'mailto:strunk@example.org',
952  'recipientName' => 'Strunk',
953  'message' => <<<ICS
954 BEGIN:VCALENDAR
955 VERSION:2.0
956 PRODID:-//Sabre//Sabre VObject $version//EN
957 CALSCALE:GREGORIAN
958 METHOD:REPLY
959 BEGIN:VEVENT
960 UID:foobar
961 DTSTAMP:**ANY**
962 SEQUENCE:1
963 DTSTART;VALUE=DATE:20140716
964 ORGANIZER;CN=Strunk:mailto:strunk@example.org
965 ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one@example.org
966 END:VEVENT
967 END:VCALENDAR
968 ICS
969 
970  ],
971 
972  ];
973 
974  $this->parse($oldMessage, $newMessage, $expected);
975 
976  }
977 
986 
987  $oldMessage = <<<ICS
988 BEGIN:VCALENDAR
989 VERSION:2.0
990 BEGIN:VEVENT
991 UID:foobar
992 SEQUENCE:1
993 ORGANIZER;CN=Strunk:mailto:strunk@example.org
994 ATTENDEE;CN=One:mailto:one@example.org
995 RECURRENCE-ID:20140724T120000Z
996 DTSTART:20140724T120000Z
997 SUMMARY:Daily sprint
998 END:VEVENT
999 END:VCALENDAR
1000 ICS;
1001 
1002 
1003  $newMessage = <<<ICS
1004 BEGIN:VCALENDAR
1005 VERSION:2.0
1006 BEGIN:VEVENT
1007 UID:foobar
1008 SEQUENCE:1
1009 ORGANIZER;CN=Strunk:mailto:strunk@example.org
1010 ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one@example.org
1011 RECURRENCE-ID:20140724T120000Z
1012 DTSTART:20140724T120000Z
1013 SUMMARY:Daily sprint
1014 END:VEVENT
1015 END:VCALENDAR
1016 ICS;
1017 
1019 
1020  $expected = [
1021  [
1022  'uid' => 'foobar',
1023  'method' => 'REPLY',
1024  'component' => 'VEVENT',
1025  'sender' => 'mailto:one@example.org',
1026  'senderName' => 'One',
1027  'recipient' => 'mailto:strunk@example.org',
1028  'recipientName' => 'Strunk',
1029  'message' => <<<ICS
1030 BEGIN:VCALENDAR
1031 VERSION:2.0
1032 CALSCALE:GREGORIAN
1033 METHOD:REPLY
1034 BEGIN:VEVENT
1035 UID:foobar
1036 DTSTAMP:**ANY**
1037 SEQUENCE:1
1038 DTSTART:20140724T120000Z
1039 SUMMARY:Daily sprint
1040 RECURRENCE-ID:20140724T120000Z
1041 ORGANIZER;CN=Strunk:mailto:strunk@example.org
1042 ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one@example.org
1043 END:VEVENT
1044 END:VCALENDAR
1045 ICS
1046 
1047  ],
1048 
1049  ];
1050 
1051  $this->parse($oldMessage, $newMessage, $expected);
1052 
1053  }
1054 
1061  function testPartyCrasher() {
1062 
1063  $oldMessage = <<<ICS
1064 BEGIN:VCALENDAR
1065 VERSION:2.0
1066 BEGIN:VEVENT
1067 UID:foobar
1068 SUMMARY:B-day party
1069 SEQUENCE:1
1070 ORGANIZER;CN=Strunk:mailto:strunk@example.org
1071 DTSTART:20140716T120000Z
1072 RRULE:FREQ=DAILY
1073 END:VEVENT
1074 BEGIN:VEVENT
1075 UID:foobar
1076 RECURRENCE-ID:20140717T120000Z
1077 SUMMARY:B-day party
1078 SEQUENCE:1
1079 ORGANIZER;CN=Strunk:mailto:strunk@example.org
1080 DTSTART:20140717T120000Z
1081 RRULE:FREQ=DAILY
1082 END:VEVENT
1083 END:VCALENDAR
1084 ICS;
1085 
1086 
1087  $newMessage = <<<ICS
1088 BEGIN:VCALENDAR
1089 VERSION:2.0
1090 BEGIN:VEVENT
1091 UID:foobar
1092 SUMMARY:B-day party
1093 SEQUENCE:1
1094 ORGANIZER;CN=Strunk:mailto:strunk@example.org
1095 DTSTART:20140716T120000Z
1096 RRULE:FREQ=DAILY
1097 END:VEVENT
1098 BEGIN:VEVENT
1099 UID:foobar
1100 RECURRENCE-ID:20140717T120000Z
1101 SUMMARY:B-day party
1102 SEQUENCE:1
1103 ORGANIZER;CN=Strunk:mailto:strunk@example.org
1104 ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one@example.org
1105 DTSTART:20140717T120000Z
1106 RRULE:FREQ=DAILY
1107 END:VEVENT
1108 END:VCALENDAR
1109 ICS;
1110 
1111  $expected = [
1112  [
1113  'uid' => 'foobar',
1114  'method' => 'REPLY',
1115  'component' => 'VEVENT',
1116  'sender' => 'mailto:one@example.org',
1117  'senderName' => 'One',
1118  'recipient' => 'mailto:strunk@example.org',
1119  'recipientName' => 'Strunk',
1120  'message' => <<<ICS
1121 BEGIN:VCALENDAR
1122 VERSION:2.0
1123 CALSCALE:GREGORIAN
1124 METHOD:REPLY
1125 BEGIN:VEVENT
1126 UID:foobar
1127 DTSTAMP:**ANY**
1128 SEQUENCE:1
1129 DTSTART:20140717T120000Z
1130 SUMMARY:B-day party
1131 RECURRENCE-ID:20140717T120000Z
1132 ORGANIZER;CN=Strunk:mailto:strunk@example.org
1133 ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one@example.org
1134 END:VEVENT
1135 END:VCALENDAR
1136 
1137 ICS
1138 
1139  ],
1140 
1141  ];
1142 
1143  $this->parse($oldMessage, $newMessage, $expected);
1144 
1145  }
1146 }
testReplyNoMasterEvent()
This function tests an attendee updating their status to an event where they don&#39;t have the master ev...
const VERSION
Full version number.
Definition: Version.php:17
testCreateReplyByExceptionAllDay()
testCreateReplyByException
testDontCreateReplyWhenEventWasDeclined()
In this test, a new exception is created by an attendee as well.
$version
Definition: build.php:27
testPartyCrasher()
A party crasher is an attendee that accepted an event, but was not in any original invite...
testCreateReplyByException()
In this test, an event exists in an attendees calendar.
parse($oldMessage, $newMessage, $expected=[], $currentUser='mailto:one @example.org')
testCreateReplyByExceptionTz()
This test is identical to the last, but now we&#39;re working with timezones.
Utilities for testing the broker.