7
|
1 <?php
|
|
2
|
|
3 namespace Sabre\VObject;
|
|
4
|
|
5 class ParameterTest extends \PHPUnit_Framework_TestCase {
|
|
6
|
|
7 function testSetup() {
|
|
8
|
|
9 $cal = new Component\VCalendar();
|
|
10
|
|
11 $param = new Parameter($cal, 'name','value');
|
|
12 $this->assertEquals('NAME',$param->name);
|
|
13 $this->assertEquals('value',$param->getValue());
|
|
14
|
|
15 }
|
|
16
|
|
17 function testSetupNameLess() {
|
|
18
|
|
19 $card = new Component\VCard();
|
|
20
|
|
21 $param = new Parameter($card, null,'URL');
|
|
22 $this->assertEquals('VALUE',$param->name);
|
|
23 $this->assertEquals('URL',$param->getValue());
|
|
24 $this->assertTrue($param->noName);
|
|
25
|
|
26 }
|
|
27
|
|
28 function testModify() {
|
|
29
|
|
30 $cal = new Component\VCalendar();
|
|
31
|
|
32 $param = new Parameter($cal, 'name', null);
|
|
33 $param->addValue(1);
|
|
34 $this->assertEquals(array(1), $param->getParts());
|
|
35
|
|
36 $param->setParts(array(1,2));
|
|
37 $this->assertEquals(array(1,2), $param->getParts());
|
|
38
|
|
39 $param->addValue(3);
|
|
40 $this->assertEquals(array(1,2,3), $param->getParts());
|
|
41
|
|
42 $param->setValue(4);
|
|
43 $param->addValue(5);
|
|
44 $this->assertEquals(array(4,5), $param->getParts());
|
|
45
|
|
46 }
|
|
47
|
|
48 function testCastToString() {
|
|
49
|
|
50 $cal = new Component\VCalendar();
|
|
51 $param = new Parameter($cal, 'name', 'value');
|
|
52 $this->assertEquals('value',$param->__toString());
|
|
53 $this->assertEquals('value',(string)$param);
|
|
54
|
|
55 }
|
|
56
|
|
57 function testCastNullToString() {
|
|
58
|
|
59 $cal = new Component\VCalendar();
|
|
60 $param = new Parameter($cal, 'name', null);
|
|
61 $this->assertEquals('',$param->__toString());
|
|
62 $this->assertEquals('',(string)$param);
|
|
63
|
|
64 }
|
|
65
|
|
66 function testSerialize() {
|
|
67
|
|
68 $cal = new Component\VCalendar();
|
|
69 $param = new Parameter($cal, 'name', 'value');
|
|
70 $this->assertEquals('NAME=value',$param->serialize());
|
|
71
|
|
72 }
|
|
73
|
|
74 function testSerializeEmpty() {
|
|
75
|
|
76 $cal = new Component\VCalendar();
|
|
77 $param = new Parameter($cal, 'name', null);
|
|
78 $this->assertEquals('NAME=',$param->serialize());
|
|
79
|
|
80 }
|
|
81
|
|
82 function testSerializeComplex() {
|
|
83
|
|
84 $cal = new Component\VCalendar();
|
|
85 $param = new Parameter($cal, 'name',array("val1", "val2;", "val3^", "val4\n", "val5\""));
|
|
86 $this->assertEquals('NAME=val1,"val2;","val3^^","val4^n","val5^\'"',$param->serialize());
|
|
87
|
|
88 }
|
|
89
|
|
90 /**
|
|
91 * iCal 7.0 (OSX 10.9) has major issues with the EMAIL property, when the
|
|
92 * value contains a plus sign, and it's not quoted.
|
|
93 *
|
|
94 * So we specifically added support for that.
|
|
95 */
|
|
96 function testSerializePlusSign() {
|
|
97
|
|
98 $cal = new Component\VCalendar();
|
|
99 $param = new Parameter($cal, 'EMAIL',"user+something@example.org");
|
|
100 $this->assertEquals('EMAIL="user+something@example.org"',$param->serialize());
|
|
101
|
|
102 }
|
|
103
|
|
104 function testIterate() {
|
|
105
|
|
106 $cal = new Component\VCalendar();
|
|
107
|
|
108 $param = new Parameter($cal, 'name', array(1,2,3,4));
|
|
109 $result = array();
|
|
110
|
|
111 foreach($param as $value) {
|
|
112 $result[] = $value;
|
|
113 }
|
|
114
|
|
115 $this->assertEquals(array(1,2,3,4), $result);
|
|
116
|
|
117 }
|
|
118
|
|
119 function testSerializeColon() {
|
|
120
|
|
121 $cal = new Component\VCalendar();
|
|
122 $param = new Parameter($cal, 'name','va:lue');
|
|
123 $this->assertEquals('NAME="va:lue"',$param->serialize());
|
|
124
|
|
125 }
|
|
126
|
|
127 function testSerializeSemiColon() {
|
|
128
|
|
129 $cal = new Component\VCalendar();
|
|
130 $param = new Parameter($cal, 'name','va;lue');
|
|
131 $this->assertEquals('NAME="va;lue"',$param->serialize());
|
|
132
|
|
133 }
|
|
134
|
|
135 }
|