19 declare(strict_types=1);
29 $expected_start =
'BEGIN:VCALENDAR' .
"\r\n" .
30 'PRODID:-//ILIAS' .
"\r\n" .
31 'VERSION:2.0' .
"\r\n" .
32 "UID:unique identifier\r\n" .
33 "X-WR-RELCALID:unique identifier\r\n" .
34 "NAME:calendar name\r\n" .
35 "X-WR-CALNAME:calendar name\r\n";
37 $expected_end =
'METHOD:' . Method::PUBLISH->value .
"\r\n" .
38 'BEGIN:VTIMEZONE' .
"\r\n" .
39 'TZID:Europe/Paris' .
"\r\n" .
40 'X-LIC-LOCATION:Europe/Paris' .
"\r\n" .
41 'BEGIN:DAYLIGHT' .
"\r\n" .
42 'TZOFFSETFROM:+0100' .
"\r\n" .
43 'TZOFFSETTO:+0200' .
"\r\n" .
44 'TZNAME:CEST' .
"\r\n" .
45 'DTSTART:19700329T020000' .
"\r\n" .
46 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU' .
"\r\n" .
47 'END:DAYLIGHT' .
"\r\n" .
48 'BEGIN:STANDARD' .
"\r\n" .
49 'TZOFFSETFROM:+0200' .
"\r\n" .
50 'TZOFFSETTO:+0100' .
"\r\n" .
51 'TZNAME:CET' .
"\r\n" .
52 'DTSTART:19701025T030000' .
"\r\n" .
53 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU' .
"\r\n" .
54 'END:STANDARD' .
"\r\n" .
55 'END:VTIMEZONE' .
"\r\n" .
56 'END:VCALENDAR' .
"\r\n";
58 $subject =
new VCalendar(
64 $result = $subject->render();
66 $this->assertStringStartsWith($expected_start, $result);
67 $this->assertStringEndsWith($expected_end, $result);
testVCalendarRenderingWithoutEvents()