annotate vendor/sabre/vobject/tests/VObject/ParameterTest.php @ 43:771f6803cc4b default tip

somehow lost the correctly updated metadata so e.g. 'mail' package wasn't being imported
author Charlie Root
date Sun, 26 Jan 2025 13:13:49 -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 ParameterTest 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 testSetup() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
8
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
9 $cal = new Component\VCalendar();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
10
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
11 $param = new Parameter($cal, 'name','value');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
12 $this->assertEquals('NAME',$param->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
13 $this->assertEquals('value',$param->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
14
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
15 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
16
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
17 function testSetupNameLess() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
18
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
19 $card = new Component\VCard();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
20
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
21 $param = new Parameter($card, null,'URL');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
22 $this->assertEquals('VALUE',$param->name);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
23 $this->assertEquals('URL',$param->getValue());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
24 $this->assertTrue($param->noName);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
25
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
26 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
27
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
28 function testModify() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
29
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
30 $cal = new Component\VCalendar();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
31
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
32 $param = new Parameter($cal, 'name', null);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
33 $param->addValue(1);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
34 $this->assertEquals(array(1), $param->getParts());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
35
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
36 $param->setParts(array(1,2));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
37 $this->assertEquals(array(1,2), $param->getParts());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
38
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
39 $param->addValue(3);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
40 $this->assertEquals(array(1,2,3), $param->getParts());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
41
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
42 $param->setValue(4);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
43 $param->addValue(5);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
44 $this->assertEquals(array(4,5), $param->getParts());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
45
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
46 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
47
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
48 function testCastToString() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
49
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
50 $cal = new Component\VCalendar();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
51 $param = new Parameter($cal, 'name', 'value');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
52 $this->assertEquals('value',$param->__toString());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
53 $this->assertEquals('value',(string)$param);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
54
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 function testCastNullToString() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
58
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
59 $cal = new Component\VCalendar();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
60 $param = new Parameter($cal, 'name', null);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
61 $this->assertEquals('',$param->__toString());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
62 $this->assertEquals('',(string)$param);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
63
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 testSerialize() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
67
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
68 $cal = new Component\VCalendar();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
69 $param = new Parameter($cal, 'name', 'value');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
70 $this->assertEquals('NAME=value',$param->serialize());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
71
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
72 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
73
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
74 function testSerializeEmpty() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
75
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
76 $cal = new Component\VCalendar();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
77 $param = new Parameter($cal, 'name', null);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
78 $this->assertEquals('NAME=',$param->serialize());
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
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
82 function testSerializeComplex() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
83
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
84 $cal = new Component\VCalendar();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
85 $param = new Parameter($cal, 'name',array("val1", "val2;", "val3^", "val4\n", "val5\""));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
86 $this->assertEquals('NAME=val1,"val2;","val3^^","val4^n","val5^\'"',$param->serialize());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
87
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
88 }
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 * iCal 7.0 (OSX 10.9) has major issues with the EMAIL property, when the
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
92 * value contains a plus sign, and it's not quoted.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
93 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
94 * So we specifically added support for that.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
95 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
96 function testSerializePlusSign() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
97
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
98 $cal = new Component\VCalendar();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
99 $param = new Parameter($cal, 'EMAIL',"user+something@example.org");
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
100 $this->assertEquals('EMAIL="user+something@example.org"',$param->serialize());
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 testIterate() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
105
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
106 $cal = new Component\VCalendar();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
107
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
108 $param = new Parameter($cal, 'name', array(1,2,3,4));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
109 $result = array();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
110
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
111 foreach($param as $value) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
112 $result[] = $value;
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 $this->assertEquals(array(1,2,3,4), $result);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
116
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
117 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
118
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
119 function testSerializeColon() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
120
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
121 $cal = new Component\VCalendar();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
122 $param = new Parameter($cal, 'name','va:lue');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
123 $this->assertEquals('NAME="va:lue"',$param->serialize());
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
124
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 function testSerializeSemiColon() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
128
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
129 $cal = new Component\VCalendar();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
130 $param = new Parameter($cal, 'name','va;lue');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
131 $this->assertEquals('NAME="va;lue"',$param->serialize());
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
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
135 }