annotate vendor/sabre/vobject/tests/VObject/TimeZoneUtilTest.php @ 7:430dbd5346f7

vendor sabre as distributed
author Charlie Root
date Sat, 13 Jan 2018 09:06:10 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
1 <?php
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
2
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
3 namespace Sabre\VObject;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
4
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
5 class TimezoneUtilTest extends \PHPUnit_Framework_TestCase {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
6
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
7 function setUp() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
8
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
9 // clearning the tz cache
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
10 TimezoneUtil::$map = null;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
11
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
12 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
13
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
14 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
15 * @dataProvider getMapping
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
16 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
17 function testCorrectTZ($timezoneName) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
18
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
19 $tz = new \DateTimeZone($timezoneName);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
20 $this->assertInstanceOf('DateTimeZone', $tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
21
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
22 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
23
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
24 function getMapping() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
25
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
26 TimeZoneUtil::loadTzMaps();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
27
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
28 // PHPUNit requires an array of arrays
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
29 return array_map(
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
30 function($value) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
31 return array($value);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
32 },
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
33 TimeZoneUtil::$map
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
34 );
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
35
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
36 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
37
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
38 function testExchangeMap() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
39
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
40 $vobj = <<<HI
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
41 BEGIN:VCALENDAR
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
42 METHOD:REQUEST
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
43 VERSION:2.0
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
44 BEGIN:VTIMEZONE
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
45 TZID:foo
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
46 X-MICROSOFT-CDO-TZID:2
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
47 BEGIN:STANDARD
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
48 DTSTART:16010101T030000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
49 TZOFFSETFROM:+0200
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
50 TZOFFSETTO:+0100
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
51 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=10;BYDAY=-1SU
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
52 END:STANDARD
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
53 BEGIN:DAYLIGHT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
54 DTSTART:16010101T020000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
55 TZOFFSETFROM:+0100
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
56 TZOFFSETTO:+0200
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
57 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=-1SU
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
58 END:DAYLIGHT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
59 END:VTIMEZONE
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
60 BEGIN:VEVENT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
61 DTSTAMP:20120416T092149Z
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
62 DTSTART;TZID="foo":20120418T1
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
63 00000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
64 SUMMARY:Begin Unterhaltsreinigung
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
65 UID:040000008200E00074C5B7101A82E0080000000010DA091DC31BCD01000000000000000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
66 0100000008FECD2E607780649BE5A4C9EE6418CBC
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
67 000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
68 END:VEVENT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
69 END:VCALENDAR
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
70 HI;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
71
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
72 $tz = TimeZoneUtil::getTimeZone('foo', Reader::read($vobj));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
73 $ex = new \DateTimeZone('Europe/Lisbon');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
74
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
75 $this->assertEquals($ex->getName(), $tz->getName());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
76
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
77 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
78
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
79 function testWetherMicrosoftIsStillInsane() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
80
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
81 $vobj = <<<HI
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
82 BEGIN:VCALENDAR
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
83 METHOD:REQUEST
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
84 VERSION:2.0
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
85 BEGIN:VTIMEZONE
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
86 TZID:(GMT+01.00) Sarajevo/Warsaw/Zagreb
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
87 X-MICROSOFT-CDO-TZID:2
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
88 BEGIN:STANDARD
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
89 DTSTART:16010101T030000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
90 TZOFFSETFROM:+0200
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
91 TZOFFSETTO:+0100
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
92 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=10;BYDAY=-1SU
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
93 END:STANDARD
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
94 END:VTIMEZONE
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
95 END:VCALENDAR
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
96 HI;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
97
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
98 $tz = TimeZoneUtil::getTimeZone('(GMT+01.00) Sarajevo/Warsaw/Zagreb', Reader::read($vobj));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
99 $ex = new \DateTimeZone('Europe/Sarajevo');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
100
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
101 $this->assertEquals($ex->getName(), $tz->getName());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
102
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
103 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
104
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
105 function testUnknownExchangeId() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
106
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
107 $vobj = <<<HI
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
108 BEGIN:VCALENDAR
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
109 METHOD:REQUEST
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
110 VERSION:2.0
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
111 BEGIN:VTIMEZONE
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
112 TZID:foo
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
113 X-MICROSOFT-CDO-TZID:2000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
114 BEGIN:STANDARD
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
115 DTSTART:16010101T030000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
116 TZOFFSETFROM:+0200
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
117 TZOFFSETTO:+0100
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
118 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=10;BYDAY=-1SU
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
119 END:STANDARD
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
120 BEGIN:DAYLIGHT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
121 DTSTART:16010101T020000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
122 TZOFFSETFROM:+0100
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
123 TZOFFSETTO:+0200
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
124 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=-1SU
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
125 END:DAYLIGHT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
126 END:VTIMEZONE
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
127 BEGIN:VEVENT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
128 DTSTAMP:20120416T092149Z
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
129 DTSTART;TZID="foo":20120418T1
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
130 00000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
131 SUMMARY:Begin Unterhaltsreinigung
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
132 UID:040000008200E00074C5B7101A82E0080000000010DA091DC31BCD01000000000000000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
133 0100000008FECD2E607780649BE5A4C9EE6418CBC
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
134 DTEND;TZID="Sarajevo, Skopje, Sofija, Vilnius, Warsaw, Zagreb":20120418T103
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
135 000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
136 END:VEVENT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
137 END:VCALENDAR
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
138 HI;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
139
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
140 $tz = TimeZoneUtil::getTimeZone('foo', Reader::read($vobj));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
141 $ex = new \DateTimeZone(date_default_timezone_get());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
142 $this->assertEquals($ex->getName(), $tz->getName());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
143
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
144 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
145
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
146 function testWindowsTimeZone() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
147
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
148 $tz = TimeZoneUtil::getTimeZone('Eastern Standard Time');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
149 $ex = new \DateTimeZone('America/New_York');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
150 $this->assertEquals($ex->getName(), $tz->getName());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
151
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
152 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
153
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
154 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
155 * @dataProvider getPHPTimeZoneIdentifiers
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
156 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
157 function testTimeZoneIdentifiers($tzid) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
158
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
159 $tz = TimeZoneUtil::getTimeZone($tzid);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
160 $ex = new \DateTimeZone($tzid);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
161
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
162 $this->assertEquals($ex->getName(), $tz->getName());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
163
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
164 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
165
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
166 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
167 * @dataProvider getPHPTimeZoneBCIdentifiers
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
168 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
169 function testTimeZoneBCIdentifiers($tzid) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
170
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
171 $tz = TimeZoneUtil::getTimeZone($tzid);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
172 $ex = new \DateTimeZone($tzid);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
173
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
174 $this->assertEquals($ex->getName(), $tz->getName());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
175
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
176 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
177
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
178 function getPHPTimeZoneIdentifiers() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
179
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
180 // PHPUNit requires an array of arrays
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
181 return array_map(
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
182 function($value) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
183 return array($value);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
184 },
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
185 \DateTimeZone::listIdentifiers()
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
186 );
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
187
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
188 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
189
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
190 function getPHPTimeZoneBCIdentifiers() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
191
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
192 // PHPUNit requires an array of arrays
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
193 return array_map(
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
194 function($value) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
195 return array($value);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
196 },
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
197 TimeZoneUtil::getIdentifiersBC()
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
198 );
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
199
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
200 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
201
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
202 function testTimezoneOffset() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
203
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
204 $tz = TimeZoneUtil::getTimeZone('GMT-0400', null, true);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
205
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
206 if (version_compare(PHP_VERSION, '5.5.10', '>=') && !defined('HHVM_VERSION')) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
207 $ex = new \DateTimeZone('-04:00');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
208 } else {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
209 $ex = new \DateTimeZone('Etc/GMT-4');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
210 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
211 $this->assertEquals($ex->getName(), $tz->getName());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
212
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
213 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
214
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
215 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
216 * @expectedException InvalidArgumentException
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
217 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
218 function testTimezoneFail() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
219
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
220 $tz = TimeZoneUtil::getTimeZone('FooBar', null, true);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
221
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
222 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
223
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
224 function testFallBack() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
225
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
226 $vobj = <<<HI
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
227 BEGIN:VCALENDAR
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
228 METHOD:REQUEST
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
229 VERSION:2.0
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
230 BEGIN:VTIMEZONE
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
231 TZID:foo
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
232 BEGIN:STANDARD
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
233 DTSTART:16010101T030000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
234 TZOFFSETFROM:+0200
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
235 TZOFFSETTO:+0100
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
236 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=10;BYDAY=-1SU
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
237 END:STANDARD
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
238 BEGIN:DAYLIGHT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
239 DTSTART:16010101T020000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
240 TZOFFSETFROM:+0100
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
241 TZOFFSETTO:+0200
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
242 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=-1SU
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
243 END:DAYLIGHT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
244 END:VTIMEZONE
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
245 BEGIN:VEVENT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
246 DTSTAMP:20120416T092149Z
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
247 DTSTART;TZID="foo":20120418T1
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
248 00000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
249 SUMMARY:Begin Unterhaltsreinigung
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
250 UID:040000008200E00074C5B7101A82E0080000000010DA091DC31BCD01000000000000000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
251 0100000008FECD2E607780649BE5A4C9EE6418CBC
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
252 000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
253 END:VEVENT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
254 END:VCALENDAR
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
255 HI;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
256
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
257 $tz = TimeZoneUtil::getTimeZone('foo', Reader::read($vobj));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
258 $ex = new \DateTimeZone(date_default_timezone_get());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
259 $this->assertEquals($ex->getName(), $tz->getName());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
260
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
261 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
262
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
263 function testLjubljanaBug() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
264
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
265 $vobj = <<<HI
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
266 BEGIN:VCALENDAR
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
267 CALSCALE:GREGORIAN
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
268 PRODID:-//Ximian//NONSGML Evolution Calendar//EN
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
269 VERSION:2.0
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
270 BEGIN:VTIMEZONE
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
271 TZID:/freeassociation.sourceforge.net/Tzfile/Europe/Ljubljana
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
272 X-LIC-LOCATION:Europe/Ljubljana
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
273 BEGIN:STANDARD
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
274 TZNAME:CET
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
275 DTSTART:19701028T030000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
276 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
277 TZOFFSETFROM:+0200
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
278 TZOFFSETTO:+0100
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
279 END:STANDARD
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
280 BEGIN:DAYLIGHT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
281 TZNAME:CEST
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
282 DTSTART:19700325T020000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
283 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
284 TZOFFSETFROM:+0100
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
285 TZOFFSETTO:+0200
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
286 END:DAYLIGHT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
287 END:VTIMEZONE
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
288 BEGIN:VEVENT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
289 UID:foo
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
290 DTSTART;TZID=/freeassociation.sourceforge.net/Tzfile/Europe/Ljubljana:
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
291 20121003T080000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
292 DTEND;TZID=/freeassociation.sourceforge.net/Tzfile/Europe/Ljubljana:
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
293 20121003T083000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
294 TRANSP:OPAQUE
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
295 SEQUENCE:2
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
296 SUMMARY:testing
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
297 CREATED:20121002T172613Z
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
298 LAST-MODIFIED:20121002T172613Z
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
299 END:VEVENT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
300 END:VCALENDAR
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
301
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
302 HI;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
303
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
304
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
305 $tz = TimeZoneUtil::getTimeZone('/freeassociation.sourceforge.net/Tzfile/Europe/Ljubljana', Reader::read($vobj));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
306 $ex = new \DateTimeZone('Europe/Ljubljana');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
307 $this->assertEquals($ex->getName(), $tz->getName());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
308
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
309 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
310
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
311 function testWeirdSystemVLICs() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
312
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
313 $vobj = <<<HI
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
314 BEGIN:VCALENDAR
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
315 CALSCALE:GREGORIAN
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
316 PRODID:-//Ximian//NONSGML Evolution Calendar//EN
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
317 VERSION:2.0
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
318 BEGIN:VTIMEZONE
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
319 TZID:/freeassociation.sourceforge.net/Tzfile/SystemV/EST5EDT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
320 X-LIC-LOCATION:SystemV/EST5EDT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
321 BEGIN:STANDARD
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
322 TZNAME:EST
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
323 DTSTART:19701104T020000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
324 RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
325 TZOFFSETFROM:-0400
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
326 TZOFFSETTO:-0500
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
327 END:STANDARD
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
328 BEGIN:DAYLIGHT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
329 TZNAME:EDT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
330 DTSTART:19700311T020000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
331 RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
332 TZOFFSETFROM:-0500
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
333 TZOFFSETTO:-0400
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
334 END:DAYLIGHT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
335 END:VTIMEZONE
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
336 BEGIN:VEVENT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
337 UID:20121026T021107Z-6301-1000-1-0@chAir
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
338 DTSTAMP:20120905T172126Z
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
339 DTSTART;TZID=/freeassociation.sourceforge.net/Tzfile/SystemV/EST5EDT:
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
340 20121026T153000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
341 DTEND;TZID=/freeassociation.sourceforge.net/Tzfile/SystemV/EST5EDT:
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
342 20121026T160000
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
343 TRANSP:OPAQUE
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
344 SEQUENCE:5
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
345 SUMMARY:pick up Ibby
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
346 CLASS:PUBLIC
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
347 CREATED:20121026T021108Z
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
348 LAST-MODIFIED:20121026T021118Z
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
349 X-EVOLUTION-MOVE-CALENDAR:1
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
350 END:VEVENT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
351 END:VCALENDAR
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
352 HI;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
353
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
354 $tz = TimeZoneUtil::getTimeZone('/freeassociation.sourceforge.net/Tzfile/SystemV/EST5EDT', Reader::read($vobj), true);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
355 $ex = new \DateTimeZone('America/New_York');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
356 $this->assertEquals($ex->getName(), $tz->getName());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
357
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
358 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
359
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
360 }