xref: /plugin/davcal/vendor/sabre/vobject/tests/VObject/JCardTest.php (revision a1a3b6794e0e143a4a8b51d3185ce2d339be61ab)
1*a1a3b679SAndreas Boehler<?php
2*a1a3b679SAndreas Boehler
3*a1a3b679SAndreas Boehlernamespace Sabre\VObject;
4*a1a3b679SAndreas Boehler
5*a1a3b679SAndreas Boehlerclass JCardTest extends \PHPUnit_Framework_TestCase {
6*a1a3b679SAndreas Boehler
7*a1a3b679SAndreas Boehler    function testToJCard() {
8*a1a3b679SAndreas Boehler
9*a1a3b679SAndreas Boehler        $card = new Component\VCard(array(
10*a1a3b679SAndreas Boehler            "VERSION" => "4.0",
11*a1a3b679SAndreas Boehler            "UID" => "foo",
12*a1a3b679SAndreas Boehler            "BDAY" => "19850407",
13*a1a3b679SAndreas Boehler            "REV"  => "19951031T222710Z",
14*a1a3b679SAndreas Boehler            "LANG" => "nl",
15*a1a3b679SAndreas Boehler            "N" => array("Last", "First", "Middle", "", ""),
16*a1a3b679SAndreas Boehler            "item1.TEL" => "+1 555 123456",
17*a1a3b679SAndreas Boehler            "item1.X-AB-LABEL" => "Walkie Talkie",
18*a1a3b679SAndreas Boehler            "ADR" => array(
19*a1a3b679SAndreas Boehler                "",
20*a1a3b679SAndreas Boehler                "",
21*a1a3b679SAndreas Boehler                array("My Street", "Left Side", "Second Shack"),
22*a1a3b679SAndreas Boehler                "Hometown",
23*a1a3b679SAndreas Boehler                "PA",
24*a1a3b679SAndreas Boehler                "18252",
25*a1a3b679SAndreas Boehler                "U.S.A",
26*a1a3b679SAndreas Boehler            ),
27*a1a3b679SAndreas Boehler        ));
28*a1a3b679SAndreas Boehler
29*a1a3b679SAndreas Boehler        $card->add('BDAY', '1979-12-25', array('VALUE' => 'DATE', 'X-PARAM' => array(1,2)));
30*a1a3b679SAndreas Boehler        $card->add('BDAY', '1979-12-25T02:00:00', array('VALUE' => 'DATE-TIME'));
31*a1a3b679SAndreas Boehler
32*a1a3b679SAndreas Boehler
33*a1a3b679SAndreas Boehler        $card->add('X-TRUNCATED', '--1225', array('VALUE' => 'DATE'));
34*a1a3b679SAndreas Boehler        $card->add('X-TIME-LOCAL', '123000', array('VALUE' => 'TIME'));
35*a1a3b679SAndreas Boehler        $card->add('X-TIME-UTC', '12:30:00Z', array('VALUE' => 'TIME'));
36*a1a3b679SAndreas Boehler        $card->add('X-TIME-OFFSET', '12:30:00-08:00', array('VALUE' => 'TIME'));
37*a1a3b679SAndreas Boehler        $card->add('X-TIME-REDUCED', '23', array('VALUE' => 'TIME'));
38*a1a3b679SAndreas Boehler        $card->add('X-TIME-TRUNCATED', '--30', array('VALUE' => 'TIME'));
39*a1a3b679SAndreas Boehler
40*a1a3b679SAndreas Boehler        $card->add('X-KARMA-POINTS', '42', array('VALUE' => 'INTEGER'));
41*a1a3b679SAndreas Boehler        $card->add('X-GRADE', '1.3', array('VALUE' => 'FLOAT'));
42*a1a3b679SAndreas Boehler
43*a1a3b679SAndreas Boehler        $card->add('TZ', '-05:00', array('VALUE' => 'UTC-OFFSET'));
44*a1a3b679SAndreas Boehler
45*a1a3b679SAndreas Boehler        $expected = array(
46*a1a3b679SAndreas Boehler            "vcard",
47*a1a3b679SAndreas Boehler            array(
48*a1a3b679SAndreas Boehler                array(
49*a1a3b679SAndreas Boehler                    "version",
50*a1a3b679SAndreas Boehler                    new \StdClass(),
51*a1a3b679SAndreas Boehler                    "text",
52*a1a3b679SAndreas Boehler                    "4.0"
53*a1a3b679SAndreas Boehler                ),
54*a1a3b679SAndreas Boehler                array(
55*a1a3b679SAndreas Boehler                    "prodid",
56*a1a3b679SAndreas Boehler                    new \StdClass(),
57*a1a3b679SAndreas Boehler                    "text",
58*a1a3b679SAndreas Boehler                    "-//Sabre//Sabre VObject " . Version::VERSION . "//EN",
59*a1a3b679SAndreas Boehler                ),
60*a1a3b679SAndreas Boehler                array(
61*a1a3b679SAndreas Boehler                    "uid",
62*a1a3b679SAndreas Boehler                    new \StdClass(),
63*a1a3b679SAndreas Boehler                    "text",
64*a1a3b679SAndreas Boehler                    "foo",
65*a1a3b679SAndreas Boehler                ),
66*a1a3b679SAndreas Boehler                array(
67*a1a3b679SAndreas Boehler                    "bday",
68*a1a3b679SAndreas Boehler                    new \StdClass(),
69*a1a3b679SAndreas Boehler                    "date-and-or-time",
70*a1a3b679SAndreas Boehler                    "1985-04-07",
71*a1a3b679SAndreas Boehler                ),
72*a1a3b679SAndreas Boehler                array(
73*a1a3b679SAndreas Boehler                    "rev",
74*a1a3b679SAndreas Boehler                    new \StdClass(),
75*a1a3b679SAndreas Boehler                    "timestamp",
76*a1a3b679SAndreas Boehler                    "1995-10-31T22:27:10Z",
77*a1a3b679SAndreas Boehler                ),
78*a1a3b679SAndreas Boehler                array(
79*a1a3b679SAndreas Boehler                    "lang",
80*a1a3b679SAndreas Boehler                    new \StdClass(),
81*a1a3b679SAndreas Boehler                    "language-tag",
82*a1a3b679SAndreas Boehler                    "nl",
83*a1a3b679SAndreas Boehler                ),
84*a1a3b679SAndreas Boehler                array(
85*a1a3b679SAndreas Boehler                    "n",
86*a1a3b679SAndreas Boehler                    new \StdClass(),
87*a1a3b679SAndreas Boehler                    "text",
88*a1a3b679SAndreas Boehler                    array("Last", "First", "Middle", "", ""),
89*a1a3b679SAndreas Boehler                ),
90*a1a3b679SAndreas Boehler                array(
91*a1a3b679SAndreas Boehler                    "tel",
92*a1a3b679SAndreas Boehler                    (object)array(
93*a1a3b679SAndreas Boehler                        "group" => "item1",
94*a1a3b679SAndreas Boehler                    ),
95*a1a3b679SAndreas Boehler                    "text",
96*a1a3b679SAndreas Boehler                    "+1 555 123456",
97*a1a3b679SAndreas Boehler                ),
98*a1a3b679SAndreas Boehler                array(
99*a1a3b679SAndreas Boehler                    "x-ab-label",
100*a1a3b679SAndreas Boehler                    (object)array(
101*a1a3b679SAndreas Boehler                        "group" => "item1",
102*a1a3b679SAndreas Boehler                    ),
103*a1a3b679SAndreas Boehler                    "unknown",
104*a1a3b679SAndreas Boehler                    "Walkie Talkie",
105*a1a3b679SAndreas Boehler                ),
106*a1a3b679SAndreas Boehler                array(
107*a1a3b679SAndreas Boehler                    "adr",
108*a1a3b679SAndreas Boehler                    new \StdClass(),
109*a1a3b679SAndreas Boehler                    "text",
110*a1a3b679SAndreas Boehler                        array(
111*a1a3b679SAndreas Boehler                            "",
112*a1a3b679SAndreas Boehler                            "",
113*a1a3b679SAndreas Boehler                            array("My Street", "Left Side", "Second Shack"),
114*a1a3b679SAndreas Boehler                            "Hometown",
115*a1a3b679SAndreas Boehler                            "PA",
116*a1a3b679SAndreas Boehler                            "18252",
117*a1a3b679SAndreas Boehler                            "U.S.A",
118*a1a3b679SAndreas Boehler                        ),
119*a1a3b679SAndreas Boehler                ),
120*a1a3b679SAndreas Boehler                array(
121*a1a3b679SAndreas Boehler                    "bday",
122*a1a3b679SAndreas Boehler                    (object)array(
123*a1a3b679SAndreas Boehler                        'x-param' => array(1,2),
124*a1a3b679SAndreas Boehler                    ),
125*a1a3b679SAndreas Boehler                    "date",
126*a1a3b679SAndreas Boehler                    "1979-12-25",
127*a1a3b679SAndreas Boehler                ),
128*a1a3b679SAndreas Boehler                array(
129*a1a3b679SAndreas Boehler                    "bday",
130*a1a3b679SAndreas Boehler                    new \StdClass(),
131*a1a3b679SAndreas Boehler                    "date-time",
132*a1a3b679SAndreas Boehler                    "1979-12-25T02:00:00",
133*a1a3b679SAndreas Boehler                ),
134*a1a3b679SAndreas Boehler                array(
135*a1a3b679SAndreas Boehler                    "x-truncated",
136*a1a3b679SAndreas Boehler                    new \StdClass(),
137*a1a3b679SAndreas Boehler                    "date",
138*a1a3b679SAndreas Boehler                    "--12-25",
139*a1a3b679SAndreas Boehler                ),
140*a1a3b679SAndreas Boehler                array(
141*a1a3b679SAndreas Boehler                    "x-time-local",
142*a1a3b679SAndreas Boehler                    new \StdClass(),
143*a1a3b679SAndreas Boehler                    "time",
144*a1a3b679SAndreas Boehler                    "12:30:00"
145*a1a3b679SAndreas Boehler                ),
146*a1a3b679SAndreas Boehler                array(
147*a1a3b679SAndreas Boehler                    "x-time-utc",
148*a1a3b679SAndreas Boehler                    new \StdClass(),
149*a1a3b679SAndreas Boehler                    "time",
150*a1a3b679SAndreas Boehler                    "12:30:00Z"
151*a1a3b679SAndreas Boehler                ),
152*a1a3b679SAndreas Boehler                array(
153*a1a3b679SAndreas Boehler                    "x-time-offset",
154*a1a3b679SAndreas Boehler                    new \StdClass(),
155*a1a3b679SAndreas Boehler                    "time",
156*a1a3b679SAndreas Boehler                    "12:30:00-08:00"
157*a1a3b679SAndreas Boehler                ),
158*a1a3b679SAndreas Boehler                array(
159*a1a3b679SAndreas Boehler                    "x-time-reduced",
160*a1a3b679SAndreas Boehler                    new \StdClass(),
161*a1a3b679SAndreas Boehler                    "time",
162*a1a3b679SAndreas Boehler                    "23"
163*a1a3b679SAndreas Boehler                ),
164*a1a3b679SAndreas Boehler                array(
165*a1a3b679SAndreas Boehler                    "x-time-truncated",
166*a1a3b679SAndreas Boehler                    new \StdClass(),
167*a1a3b679SAndreas Boehler                    "time",
168*a1a3b679SAndreas Boehler                    "--30"
169*a1a3b679SAndreas Boehler                ),
170*a1a3b679SAndreas Boehler                array(
171*a1a3b679SAndreas Boehler                    "x-karma-points",
172*a1a3b679SAndreas Boehler                    new \StdClass(),
173*a1a3b679SAndreas Boehler                    "integer",
174*a1a3b679SAndreas Boehler                    42
175*a1a3b679SAndreas Boehler                ),
176*a1a3b679SAndreas Boehler                array(
177*a1a3b679SAndreas Boehler                    "x-grade",
178*a1a3b679SAndreas Boehler                    new \StdClass(),
179*a1a3b679SAndreas Boehler                    "float",
180*a1a3b679SAndreas Boehler                    1.3
181*a1a3b679SAndreas Boehler                ),
182*a1a3b679SAndreas Boehler                array(
183*a1a3b679SAndreas Boehler                    "tz",
184*a1a3b679SAndreas Boehler                    new \StdClass(),
185*a1a3b679SAndreas Boehler                    "utc-offset",
186*a1a3b679SAndreas Boehler                    "-05:00",
187*a1a3b679SAndreas Boehler                ),
188*a1a3b679SAndreas Boehler            ),
189*a1a3b679SAndreas Boehler        );
190*a1a3b679SAndreas Boehler
191*a1a3b679SAndreas Boehler        $this->assertEquals($expected, $card->jsonSerialize());
192*a1a3b679SAndreas Boehler
193*a1a3b679SAndreas Boehler    }
194*a1a3b679SAndreas Boehler
195*a1a3b679SAndreas Boehler}
196