]> git.mxchange.org Git - friendica-addons.git/blob - dav/SabreDAV/tests/Sabre/VObject/PropertyTest.php
Merge remote branch 'upstream/master'
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / VObject / PropertyTest.php
1 <?php
2
3 class Sabre_VObject_PropertyTest extends PHPUnit_Framework_TestCase {
4
5     public function testToString() {
6
7         $property = new Sabre_VObject_Property('propname','propvalue');
8         $this->assertEquals('PROPNAME', $property->name);
9         $this->assertEquals('propvalue', $property->value);
10         $this->assertEquals('propvalue', $property->__toString());
11         $this->assertEquals('propvalue', (string)$property);
12
13     }
14
15     public function testParameterExists() {
16
17         $property = new Sabre_VObject_Property('propname','propvalue');
18         $property->parameters[] = new Sabre_VObject_Parameter('paramname','paramvalue');
19
20         $this->assertTrue(isset($property['PARAMNAME']));
21         $this->assertTrue(isset($property['paramname']));
22         $this->assertFalse(isset($property['foo']));
23
24     }
25
26     public function testParameterGet() {
27
28         $property = new Sabre_VObject_Property('propname','propvalue');
29         $property->parameters[] = new Sabre_VObject_Parameter('paramname','paramvalue');
30
31         $this->assertInstanceOf('Sabre_VObject_Parameter',$property['paramname']);
32
33     }
34
35     public function testParameterNotExists() {
36
37         $property = new Sabre_VObject_Property('propname','propvalue');
38         $property->parameters[] = new Sabre_VObject_Parameter('paramname','paramvalue');
39
40         $this->assertInternalType('null',$property['foo']);
41
42     }
43
44     public function testParameterMultiple() {
45
46         $property = new Sabre_VObject_Property('propname','propvalue');
47         $property->parameters[] = new Sabre_VObject_Parameter('paramname','paramvalue');
48         $property->parameters[] = new Sabre_VObject_Parameter('paramname','paramvalue');
49
50         $this->assertInstanceOf('Sabre_VObject_Parameter',$property['paramname']);
51         $this->assertEquals(2,count($property['paramname']));
52
53     }
54
55     public function testSetParameterAsString() {
56
57         $property = new Sabre_VObject_Property('propname','propvalue');
58         $property['paramname'] = 'paramvalue';
59
60         $this->assertEquals(1,count($property->parameters));
61         $this->assertInstanceOf('Sabre_VObject_Parameter', $property->parameters[0]);
62         $this->assertEquals('PARAMNAME',$property->parameters[0]->name);
63         $this->assertEquals('paramvalue',$property->parameters[0]->value);
64
65     }
66
67     /**
68      * @expectedException InvalidArgumentException
69      */
70     public function testSetParameterAsStringNoKey() {
71
72         $property = new Sabre_VObject_Property('propname','propvalue');
73         $property[] = 'paramvalue';
74
75     }
76
77     public function testSetParameterObject() {
78
79         $property = new Sabre_VObject_Property('propname','propvalue');
80         $param = new Sabre_VObject_Parameter('paramname','paramvalue');
81
82         $property[] = $param;
83
84         $this->assertEquals(1,count($property->parameters));
85         $this->assertEquals($param, $property->parameters[0]);
86
87     }
88
89     /**
90      * @expectedException InvalidArgumentException
91      */
92     public function testSetParameterObjectWithKey() {
93
94         $property = new Sabre_VObject_Property('propname','propvalue');
95         $param = new Sabre_VObject_Parameter('paramname','paramvalue');
96
97         $property['key'] = $param;
98
99     }
100
101
102     /**
103      * @expectedException InvalidArgumentException
104      */
105     public function testSetParameterObjectRandomObject() {
106
107         $property = new Sabre_VObject_Property('propname','propvalue');
108         $property[] = new StdClass();
109
110     }
111
112     public function testUnsetParameter() {
113
114         $property = new Sabre_VObject_Property('propname','propvalue');
115         $param = new Sabre_VObject_Parameter('paramname','paramvalue');
116         $property->parameters[] = $param;
117
118         unset($property['PARAMNAME']);
119         $this->assertEquals(0,count($property->parameters));
120
121     }
122
123     public function testParamCount() {
124
125         $property = new Sabre_VObject_Property('propname','propvalue');
126         $param = new Sabre_VObject_Parameter('paramname','paramvalue');
127         $property->parameters[] = $param;
128         $property->parameters[] = clone $param;
129
130         $this->assertEquals(2,count($property->parameters));
131
132     }
133
134     public function testSerialize() {
135
136         $property = new Sabre_VObject_Property('propname','propvalue');
137
138         $this->assertEquals("PROPNAME:propvalue\r\n",$property->serialize());
139
140     }
141
142     public function testSerializeParam() {
143
144         $property = new Sabre_VObject_Property('propname','propvalue');
145         $property->parameters[] = new Sabre_VObject_Parameter('paramname','paramvalue');
146         $property->parameters[] = new Sabre_VObject_Parameter('paramname2','paramvalue2');
147
148         $this->assertEquals("PROPNAME;PARAMNAME=paramvalue;PARAMNAME2=paramvalue2:propvalue\r\n",$property->serialize());
149
150     }
151
152     public function testSerializeNewLine() {
153
154         $property = new Sabre_VObject_Property('propname',"line1\nline2");
155
156         $this->assertEquals("PROPNAME:line1\\nline2\r\n",$property->serialize());
157
158     }
159
160     public function testSerializeLongLine() {
161
162         $value = str_repeat('!',200);
163         $property = new Sabre_VObject_Property('propname',$value);
164
165         $expected = "PROPNAME:" . str_repeat('!',66) . "\r\n " . str_repeat('!',74) . "\r\n " . str_repeat('!',60) . "\r\n";
166
167         $this->assertEquals($expected,$property->serialize());
168
169     }
170
171     public function testSerializeUTF8LineFold() {
172
173         $value = str_repeat('!',65) . "\xc3\xa4bla"; // inserted umlaut-a
174         $property = new Sabre_VObject_Property('propname', $value);
175         $expected = "PROPNAME:" . str_repeat('!',65) . "\r\n \xc3\xa4bla\r\n";
176         $this->assertEquals($expected, $property->serialize());
177
178     }
179
180     public function testGetIterator() {
181
182         $it = new Sabre_VObject_ElementList(array());
183         $property = new Sabre_VObject_Property('propname','propvalue', $it);
184         $this->assertEquals($it,$property->getIterator());
185
186     }
187
188
189     public function testGetIteratorDefault() {
190
191         $property = new Sabre_VObject_Property('propname','propvalue');
192         $it = $property->getIterator();
193         $this->assertTrue($it instanceof Sabre_VObject_ElementList);
194         $this->assertEquals(1,count($it));
195
196     }
197
198     function testAddScalar() {
199
200         $property = new Sabre_VObject_Property('EMAIL');
201
202         $property->add('myparam','value');
203
204         $this->assertEquals(1, count($property->parameters));
205
206         $this->assertTrue($property->parameters[0] instanceof Sabre_VObject_Parameter);
207         $this->assertEquals('MYPARAM',$property->parameters[0]->name);
208         $this->assertEquals('value',$property->parameters[0]->value);
209
210     }
211
212     function testAddParameter() {
213
214         $prop = new Sabre_VObject_Property('EMAIL');
215
216         $prop->add(new Sabre_VObject_Parameter('MYPARAM','value'));
217
218         $this->assertEquals(1, count($prop->parameters));
219         $this->assertEquals('MYPARAM',$prop['myparam']->name);
220
221     }
222
223     function testAddParameterTwice() {
224
225         $prop = new Sabre_VObject_Property('EMAIL');
226
227         $prop->add(new Sabre_VObject_Parameter('MYPARAM', 'value1'));
228         $prop->add(new Sabre_VObject_Parameter('MYPARAM', 'value2'));
229
230         $this->assertEquals(2, count($prop->parameters));
231
232         $this->assertEquals('MYPARAM',$prop['MYPARAM']->name);
233
234     }
235
236     /**
237      * @expectedException InvalidArgumentException
238      */
239     function testAddArgFail() {
240
241         $prop = new Sabre_VObject_Property('EMAIL');
242         $prop->add(new Sabre_VObject_Parameter('MPARAM'),'hello');
243
244     }
245
246     /**
247      * @expectedException InvalidArgumentException
248      */
249     function testAddArgFail2() {
250
251         $property = new Sabre_VObject_Property('EMAIL','value');
252         $property->add(array());
253
254     }
255
256     /**
257      * @expectedException InvalidArgumentException
258      */
259     function testAddArgFail3() {
260
261         $property = new Sabre_VObject_Property('EMAIL','value');
262         $property->add('hello',array());
263
264     }
265
266     function testClone() {
267
268         $property = new Sabre_VObject_Property('EMAIL','value');
269         $property['FOO'] = 'BAR';
270
271         $property2 = clone $property;
272         
273         $property['FOO'] = 'BAZ';
274         $this->assertEquals('BAR', (string)$property2['FOO']);
275
276     }
277
278 }