]> git.mxchange.org Git - friendica-addons.git/blob - dav/sabre-vobject/tests/Sabre/VObject/TimeZoneUtilTest.php
Second part of refactoring; should be runnable again, yet not thoroughly tested
[friendica-addons.git] / dav / sabre-vobject / tests / Sabre / VObject / TimeZoneUtilTest.php
1 <?php
2
3 namespace Sabre\VObject;
4
5 class TimezoneUtilTest extends \PHPUnit_Framework_TestCase {
6
7     /**
8      * @dataProvider getMapping
9      */
10     function testCorrectTZ($timezoneName) {
11
12         $tz = new \DateTimeZone($timezoneName);
13
14     }
15
16     function getMapping() {
17
18         // PHPUNit requires an array of arrays
19         return array_map(
20             function($value) {
21                 return array($value);
22             },
23             TimeZoneUtil::$map
24         );
25
26     }
27
28     function testExchangeMap() {
29
30         $vobj = <<<HI
31 BEGIN:VCALENDAR
32 METHOD:REQUEST
33 VERSION:2.0
34 BEGIN:VTIMEZONE
35 TZID:foo
36 X-MICROSOFT-CDO-TZID:2
37 BEGIN:STANDARD
38 DTSTART:16010101T030000
39 TZOFFSETFROM:+0200
40 TZOFFSETTO:+0100
41 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=10;BYDAY=-1SU
42 END:STANDARD
43 BEGIN:DAYLIGHT
44 DTSTART:16010101T020000
45 TZOFFSETFROM:+0100
46 TZOFFSETTO:+0200
47 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=-1SU
48 END:DAYLIGHT
49 END:VTIMEZONE
50 BEGIN:VEVENT
51 DTSTAMP:20120416T092149Z
52 DTSTART;TZID="foo":20120418T1
53  00000
54 SUMMARY:Begin Unterhaltsreinigung
55 UID:040000008200E00074C5B7101A82E0080000000010DA091DC31BCD01000000000000000
56  0100000008FECD2E607780649BE5A4C9EE6418CBC
57 DTEND;TZID="Sarajevo, Skopje, Sofija, Vilnius, Warsaw, Zagreb":20120418T103
58  000
59 END:VEVENT
60 END:VCALENDAR
61 HI;
62
63         $tz = TimeZoneUtil::getTimeZone('foo', Reader::read($vobj));
64
65         $this->assertEquals(new \DateTimeZone('Europe/Sarajevo'), $tz);
66
67     }
68
69     function testUnknownExchangeId() {
70
71         $vobj = <<<HI
72 BEGIN:VCALENDAR
73 METHOD:REQUEST
74 VERSION:2.0
75 BEGIN:VTIMEZONE
76 TZID:foo
77 X-MICROSOFT-CDO-TZID:2000
78 BEGIN:STANDARD
79 DTSTART:16010101T030000
80 TZOFFSETFROM:+0200
81 TZOFFSETTO:+0100
82 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=10;BYDAY=-1SU
83 END:STANDARD
84 BEGIN:DAYLIGHT
85 DTSTART:16010101T020000
86 TZOFFSETFROM:+0100
87 TZOFFSETTO:+0200
88 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=-1SU
89 END:DAYLIGHT
90 END:VTIMEZONE
91 BEGIN:VEVENT
92 DTSTAMP:20120416T092149Z
93 DTSTART;TZID="foo":20120418T1
94  00000
95 SUMMARY:Begin Unterhaltsreinigung
96 UID:040000008200E00074C5B7101A82E0080000000010DA091DC31BCD01000000000000000
97  0100000008FECD2E607780649BE5A4C9EE6418CBC
98 DTEND;TZID="Sarajevo, Skopje, Sofija, Vilnius, Warsaw, Zagreb":20120418T103
99  000
100 END:VEVENT
101 END:VCALENDAR
102 HI;
103
104         $tz = TimeZoneUtil::getTimeZone('foo', Reader::read($vobj));
105
106         $this->assertEquals(new \DateTimeZone(date_default_timezone_get()), $tz);
107
108     }
109
110     function testWindowsTimeZone() {
111
112         $tz = TimeZoneUtil::getTimeZone('Eastern Standard Time');
113         $this->assertEquals(new \DateTimeZone('America/New_York'), $tz);
114
115     }
116
117     function testFallBack() {
118
119         $vobj = <<<HI
120 BEGIN:VCALENDAR
121 METHOD:REQUEST
122 VERSION:2.0
123 BEGIN:VTIMEZONE
124 TZID:foo
125 BEGIN:STANDARD
126 DTSTART:16010101T030000
127 TZOFFSETFROM:+0200
128 TZOFFSETTO:+0100
129 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=10;BYDAY=-1SU
130 END:STANDARD
131 BEGIN:DAYLIGHT
132 DTSTART:16010101T020000
133 TZOFFSETFROM:+0100
134 TZOFFSETTO:+0200
135 RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=-1SU
136 END:DAYLIGHT
137 END:VTIMEZONE
138 BEGIN:VEVENT
139 DTSTAMP:20120416T092149Z
140 DTSTART;TZID="foo":20120418T1
141  00000
142 SUMMARY:Begin Unterhaltsreinigung
143 UID:040000008200E00074C5B7101A82E0080000000010DA091DC31BCD01000000000000000
144  0100000008FECD2E607780649BE5A4C9EE6418CBC
145  000
146 END:VEVENT
147 END:VCALENDAR
148 HI;
149         $tz = TimeZoneUtil::getTimeZone('foo', Reader::read($vobj));
150
151         $this->assertEquals(new \DateTimeZone(date_default_timezone_get()), $tz);
152
153     }
154
155 }