]> git.mxchange.org Git - friendica-addons.git/blob - dav/SabreDAV/tests/Sabre/VObject/Property/MultiDateTimeTest.php
Move friendica-specific parts into an own subdirectory
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / VObject / Property / MultiDateTimeTest.php
1 <?php
2
3 class Sabre_VObject_Property_MultiDateTimeTest extends PHPUnit_Framework_TestCase {
4
5     function testSetDateTime() {
6
7         $tz = new DateTimeZone('Europe/Amsterdam');
8         $dt1 = new DateTime('1985-07-04 01:30:00', $tz);
9         $dt2 = new DateTime('1986-07-04 01:30:00', $tz);
10         $dt1->setTimeZone($tz);
11         $dt2->setTimeZone($tz);
12
13         $elem = new Sabre_VObject_Property_MultiDateTime('DTSTART');
14         $elem->setDateTimes(array($dt1,$dt2));
15
16         $this->assertEquals('19850704T013000,19860704T013000', $elem->value);
17         $this->assertEquals('Europe/Amsterdam', (string)$elem['TZID']);
18         $this->assertEquals('DATE-TIME', (string)$elem['VALUE']);
19
20     }
21
22     function testSetDateTimeLOCAL() {
23
24         $tz = new DateTimeZone('Europe/Amsterdam');
25         $dt1 = new DateTime('1985-07-04 01:30:00', $tz);
26         $dt2 = new DateTime('1986-07-04 01:30:00', $tz);
27         $dt1->setTimeZone($tz);
28         $dt2->setTimeZone($tz);
29
30         $elem = new Sabre_VObject_Property_MultiDateTime('DTSTART');
31         $elem->setDateTimes(array($dt1,$dt2), Sabre_VObject_Property_DateTime::LOCAL);
32
33         $this->assertEquals('19850704T013000,19860704T013000', $elem->value);
34         $this->assertNull($elem['TZID']);
35         $this->assertEquals('DATE-TIME', (string)$elem['VALUE']);
36
37     }
38
39     function testSetDateTimeUTC() {
40
41         $tz = new DateTimeZone('GMT');
42         $dt1 = new DateTime('1985-07-04 01:30:00', $tz);
43         $dt2 = new DateTime('1986-07-04 01:30:00', $tz);
44         $dt1->setTimeZone($tz);
45         $dt2->setTimeZone($tz);
46
47         $elem = new Sabre_VObject_Property_MultiDateTime('DTSTART');
48         $elem->setDateTimes(array($dt1,$dt2), Sabre_VObject_Property_DateTime::UTC);
49
50         $this->assertEquals('19850704T013000Z,19860704T013000Z', $elem->value);
51         $this->assertNull($elem['TZID']);
52         $this->assertEquals('DATE-TIME', (string)$elem['VALUE']);
53
54     }
55
56     function testSetDateTimeLOCALTZ() {
57
58         $tz = new DateTimeZone('Europe/Amsterdam');
59         $dt1 = new DateTime('1985-07-04 01:30:00', $tz);
60         $dt2 = new DateTime('1986-07-04 01:30:00', $tz);
61         $dt1->setTimeZone($tz);
62         $dt2->setTimeZone($tz);
63
64         $elem = new Sabre_VObject_Property_MultiDateTime('DTSTART');
65         $elem->setDateTimes(array($dt1,$dt2), Sabre_VObject_Property_DateTime::LOCALTZ);
66
67         $this->assertEquals('19850704T013000,19860704T013000', $elem->value);
68         $this->assertEquals('Europe/Amsterdam', (string)$elem['TZID']);
69         $this->assertEquals('DATE-TIME', (string)$elem['VALUE']);
70
71     }
72
73     function testSetDateTimeDATE() {
74
75         $tz = new DateTimeZone('Europe/Amsterdam');
76         $dt1 = new datetime('1985-07-04 01:30:00', $tz);
77         $dt2 = new datetime('1986-07-04 01:30:00', $tz);
78         $dt1->settimezone($tz);
79         $dt2->settimezone($tz);
80
81         $elem = new Sabre_VObject_Property_MultiDateTime('DTSTART');
82         $elem->setDateTimes(array($dt1,$dt2), Sabre_VObject_Property_DateTime::DATE);
83
84         $this->assertEquals('19850704,19860704', $elem->value);
85         $this->assertNull($elem['TZID']);
86         $this->assertEquals('DATE', (string)$elem['VALUE']);
87
88     }
89
90     /**
91      * @expectedException InvalidArgumentException
92      */
93     function testSetDateTimeInvalid() {
94
95         $tz = new DateTimeZone('Europe/Amsterdam');
96         $dt = new DateTime('1985-07-04 01:30:00', $tz);
97         $dt->setTimeZone($tz);
98
99         $elem = new Sabre_VObject_Property_MultiDateTime('DTSTART');
100         $elem->setDateTimes(array($dt), 7);
101
102     }
103
104     function testGetDateTimeCached() {
105
106         $tz = new DateTimeZone('Europe/Amsterdam');
107         $dt1 = new datetime('1985-07-04 01:30:00', $tz);
108         $dt2 = new datetime('1986-07-04 01:30:00', $tz);
109         $dt1->settimezone($tz);
110         $dt2->settimezone($tz);
111
112         $elem = new Sabre_VObject_Property_MultiDateTime('DTSTART');
113         $elem->setDateTimes(array($dt1,$dt2));
114
115         $this->assertEquals($elem->getDateTimes(), array($dt1,$dt2));
116
117     }
118
119     function testGetDateTimeDateNULL() {
120
121         $elem = new Sabre_VObject_Property_MultiDateTime('DTSTART');
122         $dt = $elem->getDateTimes();
123
124         $this->assertNull($dt);
125         $this->assertNull($elem->getDateType());
126
127     }
128
129     function testGetDateTimeDateDATE() {
130
131         $elem = new Sabre_VObject_Property_MultiDateTime('DTSTART','19850704,19860704');
132         $dt = $elem->getDateTimes();
133
134         $this->assertEquals('1985-07-04 00:00:00', $dt[0]->format('Y-m-d H:i:s'));
135         $this->assertEquals('1986-07-04 00:00:00', $dt[1]->format('Y-m-d H:i:s'));
136         $this->assertEquals(Sabre_VObject_Property_DateTime::DATE, $elem->getDateType());
137
138     }
139
140     function testGetDateTimeDateDATEReverse() {
141
142         $elem = new Sabre_VObject_Property_MultiDateTime('DTSTART','19850704,19860704');
143
144         $this->assertEquals(Sabre_VObject_Property_DateTime::DATE, $elem->getDateType());
145
146         $dt = $elem->getDateTimes();
147         $this->assertEquals('1985-07-04 00:00:00', $dt[0]->format('Y-m-d H:i:s'));
148         $this->assertEquals('1986-07-04 00:00:00', $dt[1]->format('Y-m-d H:i:s'));
149
150     }
151
152
153     function testGetDateTimeDateLOCAL() {
154
155         $elem = new Sabre_VObject_Property_DateTime('DTSTART','19850704T013000');
156         $dt = $elem->getDateTime();
157
158         $this->assertInstanceOf('DateTime', $dt);
159         $this->assertEquals('1985-07-04 01:30:00', $dt->format('Y-m-d H:i:s'));
160         $this->assertEquals(Sabre_VObject_Property_DateTime::LOCAL, $elem->getDateType());
161
162     }
163
164     function testGetDateTimeDateUTC() {
165
166         $elem = new Sabre_VObject_Property_DateTime('DTSTART','19850704T013000Z');
167         $dt = $elem->getDateTime();
168
169         $this->assertInstanceOf('DateTime', $dt);
170         $this->assertEquals('1985-07-04 01:30:00', $dt->format('Y-m-d H:i:s'));
171         $this->assertEquals('UTC', $dt->getTimeZone()->getName());
172         $this->assertEquals(Sabre_VObject_Property_DateTime::UTC, $elem->getDateType());
173
174     }
175
176     function testGetDateTimeDateLOCALTZ() {
177
178         $elem = new Sabre_VObject_Property_DateTime('DTSTART','19850704T013000');
179         $elem['TZID'] = 'Europe/Amsterdam';
180
181         $dt = $elem->getDateTime();
182
183         $this->assertInstanceOf('DateTime', $dt);
184         $this->assertEquals('1985-07-04 01:30:00', $dt->format('Y-m-d H:i:s'));
185         $this->assertEquals('Europe/Amsterdam', $dt->getTimeZone()->getName());
186         $this->assertEquals(Sabre_VObject_Property_DateTime::LOCALTZ, $elem->getDateType());
187
188     }
189
190     /**
191      * @expectedException InvalidArgumentException
192      */
193     function testGetDateTimeDateInvalid() {
194
195         $elem = new Sabre_VObject_Property_DateTime('DTSTART','bla');
196         $dt = $elem->getDateTime();
197
198     }
199
200 }