comparison vendor/sabre/vobject/tests/VObject/ParameterTest.php @ 7:430dbd5346f7

vendor sabre as distributed
author Charlie Root
date Sat, 13 Jan 2018 09:06:10 -0500
parents
children
comparison
equal deleted inserted replaced
6:cec75ba50afc 7:430dbd5346f7
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 }