annotate vendor/sabre/vobject/tests/VObject/Property/ICalendar/DateTimeTest.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\Property\ICalendar;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
4
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
5 use Sabre\VObject\Component;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
6 use Sabre\VObject\Component\VCalendar;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
7
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
8
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
9 class DateTimeTest extends \PHPUnit_Framework_TestCase {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
10
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
11 protected $vcal;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
12
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
13 function setUp() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
14
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
15 $this->vcal = new VCalendar();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
16
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
17 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
18
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
19 function testSetDateTime() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
20
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
21 $tz = new \DateTimeZone('Europe/Amsterdam');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
22 $dt = new \DateTime('1985-07-04 01:30:00', $tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
23 $dt->setTimeZone($tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
24
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
25 $elem = $this->vcal->createProperty('DTSTART');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
26 $elem->setDateTime($dt);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
27
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
28 $this->assertEquals('19850704T013000', (string)$elem);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
29 $this->assertEquals('Europe/Amsterdam', (string)$elem['TZID']);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
30 $this->assertNull($elem['VALUE']);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
31
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
32 $this->assertTrue($elem->hasTime());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
33
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 function testSetDateTimeLOCAL() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
37
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
38 $tz = new \DateTimeZone('Europe/Amsterdam');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
39 $dt = new \DateTime('1985-07-04 01:30:00', $tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
40 $dt->setTimeZone($tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
41
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
42 $elem = $this->vcal->createProperty('DTSTART');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
43 $elem->setDateTime($dt, $isFloating = true);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
44
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
45 $this->assertEquals('19850704T013000', (string)$elem);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
46 $this->assertNull($elem['TZID']);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
47
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
48 $this->assertTrue($elem->hasTime());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
49 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
50
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
51 function testSetDateTimeUTC() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
52
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
53 $tz = new \DateTimeZone('GMT');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
54 $dt = new \DateTime('1985-07-04 01:30:00', $tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
55 $dt->setTimeZone($tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
56
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
57 $elem = $this->vcal->createProperty('DTSTART');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
58 $elem->setDateTime($dt);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
59
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
60 $this->assertEquals('19850704T013000Z', (string)$elem);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
61 $this->assertNull($elem['TZID']);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
62
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
63 $this->assertTrue($elem->hasTime());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
64 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
65
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
66 function testSetDateTimeLOCALTZ() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
67
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
68 $tz = new \DateTimeZone('Europe/Amsterdam');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
69 $dt = new \DateTime('1985-07-04 01:30:00', $tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
70 $dt->setTimeZone($tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
71
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
72 $elem = $this->vcal->createProperty('DTSTART');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
73 $elem->setDateTime($dt);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
74
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
75 $this->assertEquals('19850704T013000', (string)$elem);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
76 $this->assertEquals('Europe/Amsterdam', (string)$elem['TZID']);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
77
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
78 $this->assertTrue($elem->hasTime());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
79 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
80
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
81 function testSetDateTimeDATE() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
82
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
83 $tz = new \DateTimeZone('Europe/Amsterdam');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
84 $dt = new \DateTime('1985-07-04 01:30:00', $tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
85 $dt->setTimeZone($tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
86
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
87 $elem = $this->vcal->createProperty('DTSTART');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
88 $elem['VALUE'] = 'DATE';
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
89 $elem->setDateTime($dt);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
90
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
91 $this->assertEquals('19850704', (string)$elem);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
92 $this->assertNull($elem['TZID']);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
93 $this->assertEquals('DATE', (string)$elem['VALUE']);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
94
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
95 $this->assertFalse($elem->hasTime());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
96 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
97
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
98 function testSetValue() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
99
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
100 $tz = new \DateTimeZone('Europe/Amsterdam');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
101 $dt = new \DateTime('1985-07-04 01:30:00', $tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
102 $dt->setTimeZone($tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
103
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
104 $elem = $this->vcal->createProperty('DTSTART');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
105 $elem->setValue($dt);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
106
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
107 $this->assertEquals('19850704T013000', (string)$elem);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
108 $this->assertEquals('Europe/Amsterdam', (string)$elem['TZID']);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
109 $this->assertNull($elem['VALUE']);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
110
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
111 $this->assertTrue($elem->hasTime());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
112
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
113 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
114
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
115 function testSetValueArray() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
116
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
117 $tz = new \DateTimeZone('Europe/Amsterdam');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
118 $dt1 = new \DateTime('1985-07-04 01:30:00', $tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
119 $dt2 = new \DateTime('1985-07-04 02:30:00', $tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
120 $dt1->setTimeZone($tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
121 $dt2->setTimeZone($tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
122
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
123 $elem = $this->vcal->createProperty('DTSTART');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
124 $elem->setValue(array($dt1, $dt2));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
125
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
126 $this->assertEquals('19850704T013000,19850704T023000', (string)$elem);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
127 $this->assertEquals('Europe/Amsterdam', (string)$elem['TZID']);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
128 $this->assertNull($elem['VALUE']);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
129
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
130 $this->assertTrue($elem->hasTime());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
131
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
132 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
133
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
134 function testSetParts() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
135
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
136 $tz = new \DateTimeZone('Europe/Amsterdam');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
137 $dt1 = new \DateTime('1985-07-04 01:30:00', $tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
138 $dt2 = new \DateTime('1985-07-04 02:30:00', $tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
139 $dt1->setTimeZone($tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
140 $dt2->setTimeZone($tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
141
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
142 $elem = $this->vcal->createProperty('DTSTART');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
143 $elem->setParts(array($dt1, $dt2));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
144
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
145 $this->assertEquals('19850704T013000,19850704T023000', (string)$elem);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
146 $this->assertEquals('Europe/Amsterdam', (string)$elem['TZID']);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
147 $this->assertNull($elem['VALUE']);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
148
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
149 $this->assertTrue($elem->hasTime());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
150
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
151 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
152 function testSetPartsStrings() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
153
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
154 $dt1 = '19850704T013000Z';
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
155 $dt2 = '19850704T023000Z';
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
156
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
157 $elem = $this->vcal->createProperty('DTSTART');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
158 $elem->setParts(array($dt1, $dt2));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
159
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
160 $this->assertEquals('19850704T013000Z,19850704T023000Z', (string)$elem);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
161 $this->assertNull($elem['VALUE']);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
162
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
163 $this->assertTrue($elem->hasTime());
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
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
168 function testGetDateTimeCached() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
169
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
170 $tz = new \DateTimeZone('Europe/Amsterdam');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
171 $dt = new \DateTime('1985-07-04 01:30:00', $tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
172 $dt->setTimeZone($tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
173
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
174 $elem = $this->vcal->createProperty('DTSTART');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
175 $elem->setDateTime($dt);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
176
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
177 $this->assertEquals($elem->getDateTime(), $dt);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
178
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
179 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
180
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
181 function testGetDateTimeDateNULL() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
182
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
183 $elem = $this->vcal->createProperty('DTSTART');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
184 $dt = $elem->getDateTime();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
185
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
186 $this->assertNull($dt);
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 testGetDateTimeDateDATE() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
191
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
192 $elem = $this->vcal->createProperty('DTSTART','19850704');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
193 $dt = $elem->getDateTime();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
194
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
195 $this->assertInstanceOf('DateTime', $dt);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
196 $this->assertEquals('1985-07-04 00:00:00', $dt->format('Y-m-d H:i:s'));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
197
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 function testGetDateTimeDateDATEReferenceTimeZone() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
201
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
202 $elem = $this->vcal->createProperty('DTSTART','19850704');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
203
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
204 $tz = new \DateTimeZone('America/Toronto');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
205 $dt = $elem->getDateTime($tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
206 $dt->setTimeZone(new \DateTimeZone('UTC'));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
207
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
208 $this->assertInstanceOf('DateTime', $dt);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
209 $this->assertEquals('1985-07-04 04:00:00', $dt->format('Y-m-d H:i:s'));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
210
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
211 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
212
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
213 function testGetDateTimeDateFloating() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
214
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
215 $elem = $this->vcal->createProperty('DTSTART','19850704T013000');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
216 $dt = $elem->getDateTime();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
217
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
218 $this->assertInstanceOf('DateTime', $dt);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
219 $this->assertEquals('1985-07-04 01:30:00', $dt->format('Y-m-d H:i:s'));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
220
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 function testGetDateTimeDateFloatingReferenceTimeZone() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
224
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
225 $elem = $this->vcal->createProperty('DTSTART','19850704T013000');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
226
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
227 $tz = new \DateTimeZone('America/Toronto');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
228 $dt = $elem->getDateTime($tz);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
229 $dt->setTimeZone(new \DateTimeZone('UTC'));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
230
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
231 $this->assertInstanceOf('DateTime', $dt);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
232 $this->assertEquals('1985-07-04 05:30:00', $dt->format('Y-m-d H:i:s'));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
233
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
234 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
235
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
236 function testGetDateTimeDateUTC() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
237
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
238 $elem = $this->vcal->createProperty('DTSTART','19850704T013000Z');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
239 $dt = $elem->getDateTime();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
240
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
241 $this->assertInstanceOf('DateTime', $dt);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
242 $this->assertEquals('1985-07-04 01:30:00', $dt->format('Y-m-d H:i:s'));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
243 $this->assertEquals('UTC', $dt->getTimeZone()->getName());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
244
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
245 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
246
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
247 function testGetDateTimeDateLOCALTZ() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
248
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
249 $elem = $this->vcal->createProperty('DTSTART','19850704T013000');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
250 $elem['TZID'] = 'Europe/Amsterdam';
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
251
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
252 $dt = $elem->getDateTime();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
253
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
254 $this->assertInstanceOf('DateTime', $dt);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
255 $this->assertEquals('1985-07-04 01:30:00', $dt->format('Y-m-d H:i:s'));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
256 $this->assertEquals('Europe/Amsterdam', $dt->getTimeZone()->getName());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
257
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
258 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
259
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
260 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
261 * @expectedException LogicException
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
262 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
263 function testGetDateTimeDateInvalid() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
264
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
265 $elem = $this->vcal->createProperty('DTSTART','bla');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
266 $dt = $elem->getDateTime();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
267
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
268 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
269
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
270 function testGetDateTimeWeirdTZ() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
271
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
272 $elem = $this->vcal->createProperty('DTSTART','19850704T013000');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
273 $elem['TZID'] = '/freeassociation.sourceforge.net/Tzfile/Europe/Amsterdam';
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
274
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
275
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
276 $event = $this->vcal->createComponent('VEVENT');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
277 $event->add($elem);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
278
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
279 $timezone = $this->vcal->createComponent('VTIMEZONE');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
280 $timezone->TZID = '/freeassociation.sourceforge.net/Tzfile/Europe/Amsterdam';
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
281 $timezone->{'X-LIC-LOCATION'} = 'Europe/Amsterdam';
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
282
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
283 $this->vcal->add($event);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
284 $this->vcal->add($timezone);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
285
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
286 $dt = $elem->getDateTime();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
287
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
288 $this->assertInstanceOf('DateTime', $dt);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
289 $this->assertEquals('1985-07-04 01:30:00', $dt->format('Y-m-d H:i:s'));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
290 $this->assertEquals('Europe/Amsterdam', $dt->getTimeZone()->getName());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
291
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
292 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
293
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
294 function testGetDateTimeBadTimeZone() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
295
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
296 $default = date_default_timezone_get();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
297 date_default_timezone_set('Canada/Eastern');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
298
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
299 $elem = $this->vcal->createProperty('DTSTART','19850704T013000');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
300 $elem['TZID'] = 'Moon';
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
301
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
302
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
303 $event = $this->vcal->createComponent('VEVENT');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
304 $event->add($elem);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
305
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
306 $timezone = $this->vcal->createComponent('VTIMEZONE');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
307 $timezone->TZID = 'Moon';
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
308 $timezone->{'X-LIC-LOCATION'} = 'Moon';
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 $this->vcal->add($event);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
312 $this->vcal->add($timezone);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
313
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
314 $dt = $elem->getDateTime();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
315
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
316 $this->assertInstanceOf('DateTime', $dt);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
317 $this->assertEquals('1985-07-04 01:30:00', $dt->format('Y-m-d H:i:s'));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
318 $this->assertEquals('Canada/Eastern', $dt->getTimeZone()->getName());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
319 date_default_timezone_set($default);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
320
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
321 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
322
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
323 function testUpdateValueParameter() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
324
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
325 $dtStart = $this->vcal->createProperty('DTSTART', new \DateTime('2013-06-07 15:05:00'));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
326 $dtStart['VALUE'] = 'DATE';
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
327
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
328 $this->assertEquals("DTSTART;VALUE=DATE:20130607\r\n", $dtStart->serialize());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
329
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
330 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
331
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
332 function testValidate() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
333
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
334 $exDate = $this->vcal->createProperty('EXDATE', '-00011130T143000Z');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
335 $messages = $exDate->validate();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
336 $this->assertEquals(1, count($messages));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
337 $this->assertEquals(3, $messages[0]['level']);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
338
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
339 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
340
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
341 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
342 * This issue was discovered on the sabredav mailing list.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
343 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
344 function testCreateDatePropertyThroughAdd() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
345
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
346 $vcal = new VCalendar();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
347 $vevent = $vcal->add('VEVENT');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
348
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
349 $dtstart = $vevent->add(
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
350 'DTSTART',
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
351 new \DateTime('2014-03-07'),
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
352 array('VALUE' => 'DATE')
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
353 );
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
354
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
355 $this->assertEquals("DTSTART;VALUE=DATE:20140307\r\n", $dtstart->serialize());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
356
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 }