comparison vendor/sabre/vobject/tests/VObject/JCalTest.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 JCalTest extends \PHPUnit_Framework_TestCase {
6
7 function testToJCal() {
8
9 $cal = new Component\VCalendar();
10
11 $event = $cal->add('VEVENT', array(
12 "UID" => "foo",
13 "DTSTART" => new \DateTime("2013-05-26 18:10:00Z"),
14 "DURATION" => "P1D",
15 "CATEGORIES" => array('home', 'testing'),
16 "CREATED" => new \DateTime("2013-05-26 18:10:00Z"),
17
18 "ATTENDEE" => "mailto:armin@example.org",
19 "GEO" => array(51.96668, 7.61876),
20 "SEQUENCE" => 5,
21 "FREEBUSY" => array("20130526T210213Z/PT1H", "20130626T120000Z/20130626T130000Z"),
22 "URL" => "http://example.org/",
23 "TZOFFSETFROM" => "+05:00",
24 "RRULE" => array('FREQ' => 'WEEKLY', 'BYDAY' => array('MO','TU')),
25 ));
26
27 // Modifying DTSTART to be a date-only.
28 $event->dtstart['VALUE'] = 'DATE';
29 $event->add("X-BOOL", true, array('VALUE' => 'BOOLEAN'));
30 $event->add("X-TIME", "08:00:00", array('VALUE' => 'TIME'));
31 $event->add("ATTACH", "attachment", array('VALUE' => 'BINARY'));
32 $event->add("ATTENDEE", "mailto:dominik@example.org", array("CN" => "Dominik", "PARTSTAT" => "DECLINED"));
33
34 $event->add('REQUEST-STATUS', array("2.0", "Success"));
35 $event->add('REQUEST-STATUS', array("3.7", "Invalid Calendar User", "ATTENDEE:mailto:jsmith@example.org"));
36
37 $event->add('DTEND', '20150108T133000');
38
39 $expected = array(
40 "vcalendar",
41 array(
42 array(
43 "version",
44 new \StdClass(),
45 "text",
46 "2.0"
47 ),
48 array(
49 "prodid",
50 new \StdClass(),
51 "text",
52 "-//Sabre//Sabre VObject " . Version::VERSION . "//EN",
53 ),
54 array(
55 "calscale",
56 new \StdClass(),
57 "text",
58 "GREGORIAN"
59 ),
60 ),
61 array(
62 array("vevent",
63 array(
64 array(
65 "uid", new \StdClass(), "text", "foo",
66 ),
67 array(
68 "dtstart", new \StdClass(), "date", "2013-05-26",
69 ),
70 array(
71 "duration", new \StdClass(), "duration", "P1D",
72 ),
73 array(
74 "categories", new \StdClass(), "text", "home", "testing",
75 ),
76 array(
77 "created", new \StdClass(), "date-time", "2013-05-26T18:10:00Z",
78 ),
79
80 array(
81 "attendee", new \StdClass(), "cal-address", "mailto:armin@example.org",
82 ),
83 array(
84 "geo", new \StdClass(), "float", array(51.96668, 7.61876),
85 ),
86 array(
87 "sequence", new \StdClass(), "integer", 5
88 ),
89 array(
90 "freebusy", new \StdClass(), "period", array("2013-05-26T21:02:13", "PT1H"), array("2013-06-26T12:00:00", "2013-06-26T13:00:00"),
91 ),
92 array(
93 "url", new \StdClass(), "uri", "http://example.org/",
94 ),
95 array(
96 "tzoffsetfrom", new \StdClass(), "utc-offset", "+05:00",
97 ),
98 array(
99 "rrule", new \StdClass(), "recur", array(
100 'freq' => 'WEEKLY',
101 'byday' => array('MO', 'TU'),
102 ),
103 ),
104 array(
105 "x-bool", new \StdClass(), "boolean", true
106 ),
107 array(
108 "x-time", new \StdClass(), "time", "08:00:00",
109 ),
110 array(
111 "attach", new \StdClass(), "binary", base64_encode('attachment')
112 ),
113 array(
114 "attendee",
115 (object)array(
116 "cn" => "Dominik",
117 "partstat" => "DECLINED",
118 ),
119 "cal-address",
120 "mailto:dominik@example.org"
121 ),
122 array(
123 "request-status",
124 new \StdClass(),
125 "text",
126 array("2.0", "Success"),
127 ),
128 array(
129 "request-status",
130 new \StdClass(),
131 "text",
132 array("3.7", "Invalid Calendar User", "ATTENDEE:mailto:jsmith@example.org"),
133 ),
134 array(
135 'dtend',
136 new \StdClass(),
137 "date-time",
138 "2015-01-08T13:30:00",
139 ),
140 ),
141 array(),
142 )
143 ),
144 );
145
146 $this->assertEquals($expected, $cal->jsonSerialize());
147
148 }
149
150 }