function testWeirdSystemVLICs() { $vobj = <<<HI BEGIN:VCALENDAR CALSCALE:GREGORIAN PRODID:-//Ximian//NONSGML Evolution Calendar//EN VERSION:2.0 BEGIN:VTIMEZONE TZID:/freeassociation.sourceforge.net/Tzfile/SystemV/EST5EDT X-LIC-LOCATION:SystemV/EST5EDT BEGIN:STANDARD TZNAME:EST DTSTART:19701104T020000 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11 TZOFFSETFROM:-0400 TZOFFSETTO:-0500 END:STANDARD BEGIN:DAYLIGHT TZNAME:EDT DTSTART:19700311T020000 RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3 TZOFFSETFROM:-0500 TZOFFSETTO:-0400 END:DAYLIGHT END:VTIMEZONE BEGIN:VEVENT UID:20121026T021107Z-6301-1000-1-0@chAir DTSTAMP:20120905T172126Z DTSTART;TZID=/freeassociation.sourceforge.net/Tzfile/SystemV/EST5EDT: 20121026T153000 DTEND;TZID=/freeassociation.sourceforge.net/Tzfile/SystemV/EST5EDT: 20121026T160000 TRANSP:OPAQUE SEQUENCE:5 SUMMARY:pick up Ibby CLASS:PUBLIC CREATED:20121026T021108Z LAST-MODIFIED:20121026T021118Z X-EVOLUTION-MOVE-CALENDAR:1 END:VEVENT END:VCALENDAR HI; $tz = TimeZoneUtil::getTimeZone('/freeassociation.sourceforge.net/Tzfile/SystemV/EST5EDT', Reader::read($vobj), true); $ex = new \DateTimeZone('America/New_York'); $this->assertEquals($ex->getName(), $tz->getName()); }
function testFallBack() { $vobj = <<<HI BEGIN:VCALENDAR METHOD:REQUEST VERSION:2.0 BEGIN:VTIMEZONE TZID:foo BEGIN:STANDARD DTSTART:16010101T030000 TZOFFSETFROM:+0200 TZOFFSETTO:+0100 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=10;BYDAY=-1SU END:STANDARD BEGIN:DAYLIGHT DTSTART:16010101T020000 TZOFFSETFROM:+0100 TZOFFSETTO:+0200 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=-1SU END:DAYLIGHT END:VTIMEZONE BEGIN:VEVENT DTSTAMP:20120416T092149Z DTSTART;TZID="foo":20120418T1 00000 SUMMARY:Begin Unterhaltsreinigung UID:040000008200E00074C5B7101A82E0080000000010DA091DC31BCD01000000000000000 0100000008FECD2E607780649BE5A4C9EE6418CBC 000 END:VEVENT END:VCALENDAR HI; $tz = TimeZoneUtil::getTimeZone('foo', Reader::read($vobj)); $this->assertEquals(new \DateTimeZone(date_default_timezone_get()), $tz); }