annotate vendor/sabre/vobject/tests/VObject/ReaderTest.php @ 41:d2414df68d78

Updated by Alex S Grebenschikov (www.poralix.com) to make it compatible with RoundCube 1.3.0
author Charlie Root
date Fri, 24 Jan 2025 14:20:15 -0500
parents 430dbd5346f7
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 ReaderTest 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 testReadComponent() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
8
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
9 $data = "BEGIN:VCALENDAR\r\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
10
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
11 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
12
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
13 $this->assertInstanceOf('Sabre\\VObject\\Component', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
14 $this->assertEquals('VCALENDAR', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
15 $this->assertEquals(0, count($result->children));
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 function testReadStream() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
19
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
20 $data = "BEGIN:VCALENDAR\r\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
21
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
22 $stream = fopen('php://memory', 'r+');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
23 fwrite($stream, $data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
24 rewind($stream);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
25
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
26 $result = Reader::read($stream);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
27
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
28 $this->assertInstanceOf('Sabre\\VObject\\Component', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
29 $this->assertEquals('VCALENDAR', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
30 $this->assertEquals(0, count($result->children));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
31
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
32 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
33
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
34 function testReadComponentUnixNewLine() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
35
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
36 $data = "BEGIN:VCALENDAR\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
37
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
38 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
39
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
40 $this->assertInstanceOf('Sabre\\VObject\\Component', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
41 $this->assertEquals('VCALENDAR', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
42 $this->assertEquals(0, count($result->children));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
43
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
44 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
45
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
46 function testReadComponentLineFold() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
47
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
48 $data = "BEGIN:\r\n\tVCALENDAR\r\nE\r\n ND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
49
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
50 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
51
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
52 $this->assertInstanceOf('Sabre\\VObject\\Component', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
53 $this->assertEquals('VCALENDAR', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
54 $this->assertEquals(0, count($result->children));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
55
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
56 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
57
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
58 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
59 * @expectedException Sabre\VObject\ParseException
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
60 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
61 function testReadCorruptComponent() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
62
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
63 $data = "BEGIN:VCALENDAR\r\nEND:FOO";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
64
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
65 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
66
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
67 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
68
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
69 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
70 * @expectedException Sabre\VObject\ParseException
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
71 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
72 function testReadCorruptSubComponent() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
73
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
74 $data = "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nEND:FOO\r\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
75
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
76 $result = Reader::read($data);
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
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
80 function testReadProperty() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
81
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
82 $data = "BEGIN:VCALENDAR\r\nSUMMARY:propValue\r\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
83 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
84
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
85 $result = $result->SUMMARY;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
86 $this->assertInstanceOf('Sabre\\VObject\\Property', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
87 $this->assertEquals('SUMMARY', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
88 $this->assertEquals('propValue', $result->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
89
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
90 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
91
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
92 function testReadPropertyWithNewLine() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
93
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
94 $data = "BEGIN:VCALENDAR\r\nSUMMARY:Line1\\nLine2\\NLine3\\\\Not the 4th line!\r\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
95 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
96
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
97 $result = $result->SUMMARY;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
98 $this->assertInstanceOf('Sabre\\VObject\\Property', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
99 $this->assertEquals('SUMMARY', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
100 $this->assertEquals("Line1\nLine2\nLine3\\Not the 4th line!", $result->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
101
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 function testReadMappedProperty() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
105
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
106 $data = "BEGIN:VCALENDAR\r\nDTSTART:20110529\r\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
107 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
108
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
109 $result = $result->DTSTART;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
110 $this->assertInstanceOf('Sabre\\VObject\\Property\\ICalendar\\DateTime', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
111 $this->assertEquals('DTSTART', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
112 $this->assertEquals('20110529', $result->getValue());
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
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
116 function testReadMappedPropertyGrouped() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
117
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
118 $data = "BEGIN:VCALENDAR\r\nfoo.DTSTART:20110529\r\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
119 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
120
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
121 $result = $result->DTSTART;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
122 $this->assertInstanceOf('Sabre\\VObject\\Property\\ICalendar\\DateTime', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
123 $this->assertEquals('DTSTART', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
124 $this->assertEquals('20110529', $result->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
125
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
126 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
127
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
128 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
129 * @expectedException Sabre\VObject\ParseException
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
130 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
131 function testReadBrokenLine() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
132
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
133 $data = "BEGIN:VCALENDAR\r\nPROPNAME;propValue";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
134 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
135
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
136 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
137
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
138 function testReadPropertyInComponent() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
139
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
140 $data = array(
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
141 "BEGIN:VCALENDAR",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
142 "PROPNAME:propValue",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
143 "END:VCALENDAR"
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 $result = Reader::read(implode("\r\n",$data));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
147
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
148 $this->assertInstanceOf('Sabre\\VObject\\Component', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
149 $this->assertEquals('VCALENDAR', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
150 $this->assertEquals(1, count($result->children()));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
151 $this->assertInstanceOf('Sabre\\VObject\\Property', $result->children[0]);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
152 $this->assertEquals('PROPNAME', $result->children[0]->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
153 $this->assertEquals('propValue', $result->children[0]->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
154
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
155 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
156
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
157 function testReadNestedComponent() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
158
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
159 $data = array(
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
160 "BEGIN:VCALENDAR",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
161 "BEGIN:VTIMEZONE",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
162 "BEGIN:DAYLIGHT",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
163 "END:DAYLIGHT",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
164 "END:VTIMEZONE",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
165 "END:VCALENDAR"
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 $result = Reader::read(implode("\r\n",$data));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
169
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
170 $this->assertInstanceOf('Sabre\\VObject\\Component', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
171 $this->assertEquals('VCALENDAR', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
172 $this->assertEquals(1, count($result->children()));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
173 $this->assertInstanceOf('Sabre\\VObject\\Component', $result->children[0]);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
174 $this->assertEquals('VTIMEZONE', $result->children[0]->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
175 $this->assertEquals(1, count($result->children[0]->children()));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
176 $this->assertInstanceOf('Sabre\\VObject\\Component', $result->children[0]->children[0]);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
177 $this->assertEquals('DAYLIGHT', $result->children[0]->children[0]->name);
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
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
182 function testReadPropertyParameter() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
183
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
184 $data = "BEGIN:VCALENDAR\r\nPROPNAME;PARAMNAME=paramvalue:propValue\r\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
185 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
186
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
187 $result = $result->PROPNAME;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
188
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
189 $this->assertInstanceOf('Sabre\\VObject\\Property', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
190 $this->assertEquals('PROPNAME', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
191 $this->assertEquals('propValue', $result->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
192 $this->assertEquals(1, count($result->parameters()));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
193 $this->assertEquals('PARAMNAME', $result->parameters['PARAMNAME']->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
194 $this->assertEquals('paramvalue', $result->parameters['PARAMNAME']->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
195
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
196 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
197
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
198 function testReadPropertyRepeatingParameter() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
199
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
200 $data = "BEGIN:VCALENDAR\r\nPROPNAME;N=1;N=2;N=3,4;N=\"5\",6;N=\"7,8\";N=9,10;N=^'11^':propValue\r\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
201 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
202
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
203 $result = $result->PROPNAME;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
204
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
205 $this->assertInstanceOf('Sabre\\VObject\\Property', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
206 $this->assertEquals('PROPNAME', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
207 $this->assertEquals('propValue', $result->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
208 $this->assertEquals(1, count($result->parameters()));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
209 $this->assertEquals('N', $result->parameters['N']->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
210 $this->assertEquals('1,2,3,4,5,6,7,8,9,10,"11"', $result->parameters['N']->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
211 $this->assertEquals(array(1,2,3,4,5,6,"7,8",9,10,'"11"'), $result->parameters['N']->getParts());
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 function testReadPropertyRepeatingNamelessGuessedParameter() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
216 $data = "BEGIN:VCALENDAR\r\nPROPNAME;WORK;VOICE;PREF:propValue\r\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
217 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
218
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
219 $result = $result->PROPNAME;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
220
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
221 $this->assertInstanceOf('Sabre\\VObject\\Property', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
222 $this->assertEquals('PROPNAME', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
223 $this->assertEquals('propValue', $result->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
224 $this->assertEquals(1, count($result->parameters()));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
225 $this->assertEquals('TYPE', $result->parameters['TYPE']->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
226 $this->assertEquals('WORK,VOICE,PREF', $result->parameters['TYPE']->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
227 $this->assertEquals(array('WORK', 'VOICE', 'PREF'), $result->parameters['TYPE']->getParts());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
228
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
229 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
230
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
231 function testReadPropertyNoName() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
232
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
233 $data = "BEGIN:VCALENDAR\r\nPROPNAME;PRODIGY:propValue\r\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
234 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
235
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
236 $result = $result->PROPNAME;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
237
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
238 $this->assertInstanceOf('Sabre\\VObject\\Property', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
239 $this->assertEquals('PROPNAME', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
240 $this->assertEquals('propValue', $result->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
241 $this->assertEquals(1, count($result->parameters()));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
242 $this->assertEquals('TYPE', $result->parameters['TYPE']->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
243 $this->assertTrue($result->parameters['TYPE']->noName);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
244 $this->assertEquals('PRODIGY', $result->parameters['TYPE']);
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
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
248 function testReadPropertyParameterExtraColon() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
249
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
250 $data = "BEGIN:VCALENDAR\r\nPROPNAME;PARAMNAME=paramvalue:propValue:anotherrandomstring\r\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
251 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
252
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
253 $result = $result->PROPNAME;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
254
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
255 $this->assertInstanceOf('Sabre\\VObject\\Property', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
256 $this->assertEquals('PROPNAME', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
257 $this->assertEquals('propValue:anotherrandomstring', $result->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
258 $this->assertEquals(1, count($result->parameters()));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
259 $this->assertEquals('PARAMNAME', $result->parameters['PARAMNAME']->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
260 $this->assertEquals('paramvalue', $result->parameters['PARAMNAME']->getValue());
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
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
264 function testReadProperty2Parameters() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
265
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
266 $data = "BEGIN:VCALENDAR\r\nPROPNAME;PARAMNAME=paramvalue;PARAMNAME2=paramvalue2:propValue\r\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
267 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
268
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
269 $result = $result->PROPNAME;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
270
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
271 $this->assertInstanceOf('Sabre\\VObject\\Property', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
272 $this->assertEquals('PROPNAME', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
273 $this->assertEquals('propValue', $result->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
274 $this->assertEquals(2, count($result->parameters()));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
275 $this->assertEquals('PARAMNAME', $result->parameters['PARAMNAME']->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
276 $this->assertEquals('paramvalue', $result->parameters['PARAMNAME']->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
277 $this->assertEquals('PARAMNAME2', $result->parameters['PARAMNAME2']->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
278 $this->assertEquals('paramvalue2', $result->parameters['PARAMNAME2']->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
279
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
280 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
281
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
282 function testReadPropertyParameterQuoted() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
283
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
284 $data = "BEGIN:VCALENDAR\r\nPROPNAME;PARAMNAME=\"paramvalue\":propValue\r\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
285 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
286
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
287 $result = $result->PROPNAME;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
288
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
289 $this->assertInstanceOf('Sabre\\VObject\\Property', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
290 $this->assertEquals('PROPNAME', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
291 $this->assertEquals('propValue', $result->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
292 $this->assertEquals(1, count($result->parameters()));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
293 $this->assertEquals('PARAMNAME', $result->parameters['PARAMNAME']->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
294 $this->assertEquals('paramvalue', $result->parameters['PARAMNAME']->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
295
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
296 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
297
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
298 function testReadPropertyParameterNewLines() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
299
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
300 $data = "BEGIN:VCALENDAR\r\nPROPNAME;PARAMNAME=paramvalue1^nvalue2^^nvalue3:propValue\r\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
301 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
302
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
303 $result = $result->propname;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
304
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
305 $this->assertInstanceOf('Sabre\\VObject\\Property', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
306 $this->assertEquals('PROPNAME', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
307 $this->assertEquals('propValue', $result->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
308
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
309 $this->assertEquals(1, count($result->parameters()));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
310 $this->assertEquals('PARAMNAME', $result->parameters['PARAMNAME']->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
311 $this->assertEquals("paramvalue1\nvalue2^nvalue3", $result->parameters['PARAMNAME']->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
312
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
313 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
314
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
315 function testReadPropertyParameterQuotedColon() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
316
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
317 $data = "BEGIN:VCALENDAR\r\nPROPNAME;PARAMNAME=\"param:value\":propValue\r\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
318 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
319 $result = $result->propname;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
320
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
321 $this->assertInstanceOf('Sabre\\VObject\\Property', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
322 $this->assertEquals('PROPNAME', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
323 $this->assertEquals('propValue', $result->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
324 $this->assertEquals(1, count($result->parameters()));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
325 $this->assertEquals('PARAMNAME', $result->parameters['PARAMNAME']->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
326 $this->assertEquals('param:value', $result->parameters['PARAMNAME']->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
327
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
328 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
329
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
330 function testReadForgiving() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
331
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
332 $data = array(
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
333 "BEGIN:VCALENDAR",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
334 "X_PROP:propValue",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
335 "END:VCALENDAR"
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
336 );
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
337
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
338 $caught = false;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
339 try {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
340 $result = Reader::read(implode("\r\n",$data));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
341 } catch (ParseException $e) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
342 $caught = true;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
343 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
344
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
345 $this->assertEquals(true, $caught);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
346
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
347 $result = Reader::read(implode("\r\n",$data), Reader::OPTION_FORGIVING);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
348
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
349 $expected = implode("\r\n", array(
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
350 "BEGIN:VCALENDAR",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
351 "X_PROP:propValue",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
352 "END:VCALENDAR",
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
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
356 $this->assertEquals($expected, $result->serialize());
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 function testReadWithInvalidLine() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
361
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
362 $data = array(
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
363 "BEGIN:VCALENDAR",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
364 "DESCRIPTION:propValue",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
365 "Yes, we've actually seen a file with non-idented property values on multiple lines",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
366 "END:VCALENDAR"
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
367 );
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
368
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
369 $caught = false;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
370 try {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
371 $result = Reader::read(implode("\r\n",$data));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
372 } catch (ParseException $e) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
373 $caught = true;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
374 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
375
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
376 $this->assertEquals(true, $caught);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
377
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
378 $result = Reader::read(implode("\r\n",$data), Reader::OPTION_IGNORE_INVALID_LINES);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
379
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
380 $expected = implode("\r\n", array(
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
381 "BEGIN:VCALENDAR",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
382 "DESCRIPTION:propValue",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
383 "END:VCALENDAR",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
384 ""
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
385 ));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
386
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
387 $this->assertEquals($expected, $result->serialize());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
388
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
389 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
390
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
391 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
392 * Reported as Issue 32.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
393 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
394 * @expectedException \Sabre\VObject\ParseException
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
395 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
396 public function testReadIncompleteFile() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
397
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
398 $input = <<<ICS
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
399 BEGIN:VCALENDAR
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
400 VERSION:1.0
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
401 BEGIN:VEVENT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
402 X-FUNAMBOL-FOLDER:DEFAULT_FOLDER
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
403 X-FUNAMBOL-ALLDAY:0
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
404 DTSTART:20111017T110000Z
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
405 DTEND:20111017T123000Z
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
406 X-MICROSOFT-CDO-BUSYSTATUS:BUSY
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
407 CATEGORIES:
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
408 LOCATION;ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:Netviewer Meeting
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
409 PRIORITY:1
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
410 STATUS:3
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
411 X-MICROSOFT-CDO-REPLYTIME:20111017T064200Z
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
412 SUMMARY;ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:Kopieren: test
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
413 CLASS:PUBLIC
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
414 AALARM:
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
415 RRULE:
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
416 X-FUNAMBOL-BILLINGINFO:
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
417 X-FUNAMBOL-COMPANIES:
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
418 X-FUNAMBOL-MILEAGE:
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
419 X-FUNAMBOL-NOAGING:0
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
420 ATTENDEE;STATUS=NEEDS ACTION;ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:'Heino' heino@test.com
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
421 ATTENDEE;STATUS=NEEDS ACTION;ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:'Markus' test@test.com
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
422 ATTENDEE;STATUS=NEEDS AC
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
423 ICS;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
424
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
425 Reader::read($input);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
426
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
427 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
428
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
429 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
430 * @expectedException \InvalidArgumentException
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
431 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
432 public function testReadBrokenInput() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
433
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
434 Reader::read(false);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
435
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
436 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
437
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
438 public function testReadBOM() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
439
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
440 $data = chr(0xef) . chr(0xbb) . chr(0xbf) . "BEGIN:VCALENDAR\r\nEND:VCALENDAR";
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
441 $result = Reader::read($data);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
442
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
443 $this->assertInstanceOf('Sabre\\VObject\\Component', $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
444 $this->assertEquals('VCALENDAR', $result->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
445 $this->assertEquals(0, count($result->children));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
446
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
447 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
448
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
449 }