ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
BrokerProcessReplyTest.php
Go to the documentation of this file.
1<?php
2
3namespace Sabre\VObject\ITip;
4
6
7 function testReplyNoOriginal() {
8
9 $itip = <<<ICS
10BEGIN:VCALENDAR
11VERSION:2.0
12METHOD:REPLY
13BEGIN:VEVENT
14SEQUENCE:2
15UID:foobar
16ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org
17ORGANIZER:mailto:bar@example.org
18END:VEVENT
19END:VCALENDAR
20ICS;
21
22 $old = null;
23 $expected = null;
24
25 $result = $this->process($itip, $old, $expected);
26
27 }
28
29 function testReplyAccept() {
30
31 $itip = <<<ICS
32BEGIN:VCALENDAR
33VERSION:2.0
34METHOD:REPLY
35BEGIN:VEVENT
36ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org
37ORGANIZER:mailto:bar@example.org
38SEQUENCE:2
39UID:foobar
40END:VEVENT
41END:VCALENDAR
42ICS;
43
44 $old = <<<ICS
45BEGIN:VCALENDAR
46VERSION:2.0
47BEGIN:VEVENT
48SEQUENCE:2
49UID:foobar
50ATTENDEE:mailto:foo@example.org
51ORGANIZER:mailto:bar@example.org
52END:VEVENT
53END:VCALENDAR
54ICS;
55
56 $expected = <<<ICS
57BEGIN:VCALENDAR
58VERSION:2.0
59BEGIN:VEVENT
60SEQUENCE:2
61UID:foobar
62ATTENDEE;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.0:mailto:foo@example.org
63ORGANIZER:mailto:bar@example.org
64END:VEVENT
65END:VCALENDAR
66ICS;
67
68 $result = $this->process($itip, $old, $expected);
69
70 }
71
73
74 $itip = <<<ICS
75BEGIN:VCALENDAR
76VERSION:2.0
77METHOD:REPLY
78BEGIN:VEVENT
79UID:foobar
80REQUEST-STATUS:2.3;foo-bar!
81ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org
82ORGANIZER:mailto:bar@example.org
83SEQUENCE:2
84UID:foobar
85END:VEVENT
86END:VCALENDAR
87ICS;
88
89 $old = <<<ICS
90BEGIN:VCALENDAR
91VERSION:2.0
92BEGIN:VEVENT
93UID:foobar
94SEQUENCE:2
95ATTENDEE:mailto:foo@example.org
96ORGANIZER:mailto:bar@example.org
97END:VEVENT
98END:VCALENDAR
99ICS;
100
101 $expected = <<<ICS
102BEGIN:VCALENDAR
103VERSION:2.0
104BEGIN:VEVENT
105UID:foobar
106SEQUENCE:2
107ATTENDEE;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.3:mailto:foo@example.org
108ORGANIZER:mailto:bar@example.org
109END:VEVENT
110END:VCALENDAR
111ICS;
112
113 $result = $this->process($itip, $old, $expected);
114
115 }
116
117
119
120 $itip = <<<ICS
121BEGIN:VCALENDAR
122VERSION:2.0
123METHOD:REPLY
124BEGIN:VEVENT
125ATTENDEE;PARTSTAT=ACCEPTED:mailto:crasher@example.org
126ORGANIZER:mailto:bar@example.org
127SEQUENCE:2
128UID:foobar
129END:VEVENT
130END:VCALENDAR
131ICS;
132
133 $old = <<<ICS
134BEGIN:VCALENDAR
135VERSION:2.0
136BEGIN:VEVENT
137SEQUENCE:2
138UID:foobar
139ATTENDEE:mailto:foo@example.org
140ORGANIZER:mailto:bar@example.org
141END:VEVENT
142END:VCALENDAR
143ICS;
144
145 $expected = <<<ICS
146BEGIN:VCALENDAR
147VERSION:2.0
148BEGIN:VEVENT
149SEQUENCE:2
150UID:foobar
151ATTENDEE:mailto:foo@example.org
152ORGANIZER:mailto:bar@example.org
153ATTENDEE;PARTSTAT=ACCEPTED:mailto:crasher@example.org
154END:VEVENT
155END:VCALENDAR
156ICS;
157
158 $result = $this->process($itip, $old, $expected);
159
160 }
161
163
164 // This is a reply to 1 instance of a recurring event. This should
165 // automatically create an exception.
166 $itip = <<<ICS
167BEGIN:VCALENDAR
168VERSION:2.0
169METHOD:REPLY
170BEGIN:VEVENT
171ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org
172ORGANIZER:mailto:bar@example.org
173SEQUENCE:2
174RECURRENCE-ID:20140725T000000Z
175UID:foobar
176END:VEVENT
177END:VCALENDAR
178ICS;
179
180 $old = <<<ICS
181BEGIN:VCALENDAR
182VERSION:2.0
183BEGIN:VEVENT
184SEQUENCE:2
185UID:foobar
186RRULE:FREQ=DAILY
187DTSTART:20140724T000000Z
188DTEND:20140724T010000Z
189ATTENDEE:mailto:foo@example.org
190ORGANIZER:mailto:bar@example.org
191END:VEVENT
192END:VCALENDAR
193ICS;
194
195 $expected = <<<ICS
196BEGIN:VCALENDAR
197VERSION:2.0
198BEGIN:VEVENT
199SEQUENCE:2
200UID:foobar
201RRULE:FREQ=DAILY
202DTSTART:20140724T000000Z
203DTEND:20140724T010000Z
204ATTENDEE:mailto:foo@example.org
205ORGANIZER:mailto:bar@example.org
206END:VEVENT
207BEGIN:VEVENT
208SEQUENCE:2
209UID:foobar
210DTSTART:20140725T000000Z
211DTEND:20140725T010000Z
212ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org
213ORGANIZER:mailto:bar@example.org
214RECURRENCE-ID:20140725T000000Z
215END:VEVENT
216END:VCALENDAR
217ICS;
218
219 $result = $this->process($itip, $old, $expected);
220
221 }
222
224
225 // This is a reply to 1 instance of a recurring event. This should
226 // automatically create an exception.
227 $itip = <<<ICS
228BEGIN:VCALENDAR
229VERSION:2.0
230METHOD:REPLY
231BEGIN:VEVENT
232ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org
233ORGANIZER:mailto:bar@example.org
234SEQUENCE:2
235RECURRENCE-ID;TZID=America/Toronto:20140725T000000
236UID:foobar
237END:VEVENT
238END:VCALENDAR
239ICS;
240
241 $old = <<<ICS
242BEGIN:VCALENDAR
243VERSION:2.0
244BEGIN:VEVENT
245SEQUENCE:2
246UID:foobar
247RRULE:FREQ=DAILY
248DTSTART;TZID=America/Toronto:20140724T000000
249DTEND;TZID=America/Toronto:20140724T010000
250ATTENDEE:mailto:foo@example.org
251ORGANIZER:mailto:bar@example.org
252END:VEVENT
253END:VCALENDAR
254ICS;
255
256 $expected = <<<ICS
257BEGIN:VCALENDAR
258VERSION:2.0
259BEGIN:VEVENT
260SEQUENCE:2
261UID:foobar
262RRULE:FREQ=DAILY
263DTSTART;TZID=America/Toronto:20140724T000000
264DTEND;TZID=America/Toronto:20140724T010000
265ATTENDEE:mailto:foo@example.org
266ORGANIZER:mailto:bar@example.org
267END:VEVENT
268BEGIN:VEVENT
269SEQUENCE:2
270UID:foobar
271DTSTART;TZID=America/Toronto:20140725T000000
272DTEND;TZID=America/Toronto:20140725T010000
273ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org
274ORGANIZER:mailto:bar@example.org
275RECURRENCE-ID;TZID=America/Toronto:20140725T000000
276END:VEVENT
277END:VCALENDAR
278ICS;
279
280 $result = $this->process($itip, $old, $expected);
281
282 }
283
285
286 // IN this test there's a recurring event that has an exception. The
287 // exception is missing the attendee.
288 //
289 // The attendee party crashes the instance, so it should show up in the
290 // resulting object.
291 $itip = <<<ICS
292BEGIN:VCALENDAR
293VERSION:2.0
294METHOD:REPLY
295BEGIN:VEVENT
296ATTENDEE;PARTSTAT=ACCEPTED;CN=Crasher!:mailto:crasher@example.org
297ORGANIZER:mailto:bar@example.org
298SEQUENCE:2
299RECURRENCE-ID:20140725T000000Z
300UID:foobar
301END:VEVENT
302END:VCALENDAR
303ICS;
304
305 $old = <<<ICS
306BEGIN:VCALENDAR
307VERSION:2.0
308BEGIN:VEVENT
309SEQUENCE:2
310UID:foobar
311RRULE:FREQ=DAILY
312DTSTART:20140724T000000Z
313DTEND:20140724T010000Z
314ORGANIZER:mailto:bar@example.org
315END:VEVENT
316END:VCALENDAR
317ICS;
318
319 $expected = <<<ICS
320BEGIN:VCALENDAR
321VERSION:2.0
322BEGIN:VEVENT
323SEQUENCE:2
324UID:foobar
325RRULE:FREQ=DAILY
326DTSTART:20140724T000000Z
327DTEND:20140724T010000Z
328ORGANIZER:mailto:bar@example.org
329END:VEVENT
330BEGIN:VEVENT
331SEQUENCE:2
332UID:foobar
333DTSTART:20140725T000000Z
334DTEND:20140725T010000Z
335ORGANIZER:mailto:bar@example.org
336RECURRENCE-ID:20140725T000000Z
337ATTENDEE;PARTSTAT=ACCEPTED;CN=Crasher!:mailto:crasher@example.org
338END:VEVENT
339END:VCALENDAR
340ICS;
341
342 $result = $this->process($itip, $old, $expected);
343
344 }
345
347
355 $itip = <<<ICS
356BEGIN:VCALENDAR
357VERSION:2.0
358METHOD:REPLY
359BEGIN:VEVENT
360ATTENDEE;PARTSTAT=ACCEPTED;CN=Crasher!:mailto:crasher@example.org
361ORGANIZER:mailto:bar@example.org
362SEQUENCE:2
363RECURRENCE-ID:20140725T000000Z
364UID:foobar
365END:VEVENT
366END:VCALENDAR
367ICS;
368
369 $old = <<<ICS
370BEGIN:VCALENDAR
371VERSION:2.0
372BEGIN:VEVENT
373SEQUENCE:2
374UID:foobar
375RRULE:FREQ=DAILY
376DTSTART:20140724T000000Z
377DTEND:20140724T010000Z
378RECURRENCE-ID:20140724T000000Z
379ORGANIZER:mailto:bar@example.org
380END:VEVENT
381END:VCALENDAR
382ICS;
383
384 $expected = null;
385 $result = $this->process($itip, $old, $expected);
386
387 }
388
393
394 $itip = <<<ICS
395BEGIN:VCALENDAR
396VERSION:2.0
397METHOD:REPLY
398BEGIN:VEVENT
399ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org
400ORGANIZER:mailto:bar@example.org
401SEQUENCE:2
402UID:foobar
403END:VEVENT
404END:VCALENDAR
405ICS;
406
407 $old = <<<ICS
408BEGIN:VCALENDAR
409VERSION:2.0
410BEGIN:VEVENT
411SEQUENCE:2
412UID:foobar
413ATTENDEE;RSVP=TRUE:mailto:foo@example.org
414ORGANIZER:mailto:bar@example.org
415END:VEVENT
416END:VCALENDAR
417ICS;
418
419 $expected = <<<ICS
420BEGIN:VCALENDAR
421VERSION:2.0
422BEGIN:VEVENT
423SEQUENCE:2
424UID:foobar
425ATTENDEE;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.0:mailto:foo@example.org
426ORGANIZER:mailto:bar@example.org
427END:VEVENT
428END:VCALENDAR
429ICS;
430
431 $result = $this->process($itip, $old, $expected);
432
433 }
434
436
437 // This is a reply to 1 instance of a recurring event. This should
438 // automatically create an exception.
439 $itip = <<<ICS
440BEGIN:VCALENDAR
441VERSION:2.0
442METHOD:REPLY
443BEGIN:VEVENT
444ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org
445ORGANIZER:mailto:bar@example.org
446SEQUENCE:2
447RECURRENCE-ID:20140724T000000Z
448UID:foobar
449END:VEVENT
450END:VCALENDAR
451ICS;
452
453 $old = <<<ICS
454BEGIN:VCALENDAR
455VERSION:2.0
456BEGIN:VEVENT
457SEQUENCE:2
458UID:foobar
459RRULE:FREQ=DAILY
460DTSTART:20140724T000000Z
461DTEND:20140724T010000Z
462ATTENDEE:mailto:foo@example.org
463ORGANIZER:mailto:bar@example.org
464END:VEVENT
465END:VCALENDAR
466ICS;
467
468 $expected = <<<ICS
469BEGIN:VCALENDAR
470VERSION:2.0
471BEGIN:VEVENT
472SEQUENCE:2
473UID:foobar
474RRULE:FREQ=DAILY
475DTSTART:20140724T000000Z
476DTEND:20140724T010000Z
477ATTENDEE:mailto:foo@example.org
478ORGANIZER:mailto:bar@example.org
479END:VEVENT
480BEGIN:VEVENT
481SEQUENCE:2
482UID:foobar
483DTSTART:20140724T000000Z
484DTEND:20140724T010000Z
485ATTENDEE;PARTSTAT=ACCEPTED:mailto:foo@example.org
486ORGANIZER:mailto:bar@example.org
487RECURRENCE-ID:20140724T000000Z
488END:VEVENT
489END:VCALENDAR
490ICS;
491
492 $result = $this->process($itip, $old, $expected);
493
494 }
495
496}
$result
An exception for terminatinating execution or to throw for unit testing.
Utilities for testing the broker.
process($input, $existingObject=null, $expected=false)