3 namespace Sabre\VObject;
5 class TimezoneUtilTest extends \PHPUnit_Framework_TestCase {
8 * @dataProvider getMapping
10 function testCorrectTZ($timezoneName) {
12 $tz = new \DateTimeZone($timezoneName);
16 function getMapping() {
18 // PHPUNit requires an array of arrays
28 function testExchangeMap() {
36 X-MICROSOFT-CDO-TZID:2
38 DTSTART:16010101T030000
41 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=10;BYDAY=-1SU
44 DTSTART:16010101T020000
47 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=-1SU
51 DTSTAMP:20120416T092149Z
52 DTSTART;TZID="foo":20120418T1
54 SUMMARY:Begin Unterhaltsreinigung
55 UID:040000008200E00074C5B7101A82E0080000000010DA091DC31BCD01000000000000000
56 0100000008FECD2E607780649BE5A4C9EE6418CBC
57 DTEND;TZID="Sarajevo, Skopje, Sofija, Vilnius, Warsaw, Zagreb":20120418T103
63 $tz = TimeZoneUtil::getTimeZone('foo', Reader::read($vobj));
65 $this->assertEquals(new \DateTimeZone('Europe/Sarajevo'), $tz);
69 function testUnknownExchangeId() {
77 X-MICROSOFT-CDO-TZID:2000
79 DTSTART:16010101T030000
82 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=10;BYDAY=-1SU
85 DTSTART:16010101T020000
88 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=-1SU
92 DTSTAMP:20120416T092149Z
93 DTSTART;TZID="foo":20120418T1
95 SUMMARY:Begin Unterhaltsreinigung
96 UID:040000008200E00074C5B7101A82E0080000000010DA091DC31BCD01000000000000000
97 0100000008FECD2E607780649BE5A4C9EE6418CBC
98 DTEND;TZID="Sarajevo, Skopje, Sofija, Vilnius, Warsaw, Zagreb":20120418T103
104 $tz = TimeZoneUtil::getTimeZone('foo', Reader::read($vobj));
106 $this->assertEquals(new \DateTimeZone(date_default_timezone_get()), $tz);
110 function testWindowsTimeZone() {
112 $tz = TimeZoneUtil::getTimeZone('Eastern Standard Time');
113 $this->assertEquals(new \DateTimeZone('America/New_York'), $tz);
117 function testFallBack() {
126 DTSTART:16010101T030000
129 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=10;BYDAY=-1SU
132 DTSTART:16010101T020000
135 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=-1SU
139 DTSTAMP:20120416T092149Z
140 DTSTART;TZID="foo":20120418T1
142 SUMMARY:Begin Unterhaltsreinigung
143 UID:040000008200E00074C5B7101A82E0080000000010DA091DC31BCD01000000000000000
144 0100000008FECD2E607780649BE5A4C9EE6418CBC
149 $tz = TimeZoneUtil::getTimeZone('foo', Reader::read($vobj));
151 $this->assertEquals(new \DateTimeZone(date_default_timezone_get()), $tz);