Mercurial > hg > rc1
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/sabre/vobject/tests/VObject/JCalTest.php Sat Jan 13 09:06:10 2018 -0500 @@ -0,0 +1,150 @@ +<?php + +namespace Sabre\VObject; + +class JCalTest extends \PHPUnit_Framework_TestCase { + + function testToJCal() { + + $cal = new Component\VCalendar(); + + $event = $cal->add('VEVENT', array( + "UID" => "foo", + "DTSTART" => new \DateTime("2013-05-26 18:10:00Z"), + "DURATION" => "P1D", + "CATEGORIES" => array('home', 'testing'), + "CREATED" => new \DateTime("2013-05-26 18:10:00Z"), + + "ATTENDEE" => "mailto:armin@example.org", + "GEO" => array(51.96668, 7.61876), + "SEQUENCE" => 5, + "FREEBUSY" => array("20130526T210213Z/PT1H", "20130626T120000Z/20130626T130000Z"), + "URL" => "http://example.org/", + "TZOFFSETFROM" => "+05:00", + "RRULE" => array('FREQ' => 'WEEKLY', 'BYDAY' => array('MO','TU')), + )); + + // Modifying DTSTART to be a date-only. + $event->dtstart['VALUE'] = 'DATE'; + $event->add("X-BOOL", true, array('VALUE' => 'BOOLEAN')); + $event->add("X-TIME", "08:00:00", array('VALUE' => 'TIME')); + $event->add("ATTACH", "attachment", array('VALUE' => 'BINARY')); + $event->add("ATTENDEE", "mailto:dominik@example.org", array("CN" => "Dominik", "PARTSTAT" => "DECLINED")); + + $event->add('REQUEST-STATUS', array("2.0", "Success")); + $event->add('REQUEST-STATUS', array("3.7", "Invalid Calendar User", "ATTENDEE:mailto:jsmith@example.org")); + + $event->add('DTEND', '20150108T133000'); + + $expected = array( + "vcalendar", + array( + array( + "version", + new \StdClass(), + "text", + "2.0" + ), + array( + "prodid", + new \StdClass(), + "text", + "-//Sabre//Sabre VObject " . Version::VERSION . "//EN", + ), + array( + "calscale", + new \StdClass(), + "text", + "GREGORIAN" + ), + ), + array( + array("vevent", + array( + array( + "uid", new \StdClass(), "text", "foo", + ), + array( + "dtstart", new \StdClass(), "date", "2013-05-26", + ), + array( + "duration", new \StdClass(), "duration", "P1D", + ), + array( + "categories", new \StdClass(), "text", "home", "testing", + ), + array( + "created", new \StdClass(), "date-time", "2013-05-26T18:10:00Z", + ), + + array( + "attendee", new \StdClass(), "cal-address", "mailto:armin@example.org", + ), + array( + "geo", new \StdClass(), "float", array(51.96668, 7.61876), + ), + array( + "sequence", new \StdClass(), "integer", 5 + ), + array( + "freebusy", new \StdClass(), "period", array("2013-05-26T21:02:13", "PT1H"), array("2013-06-26T12:00:00", "2013-06-26T13:00:00"), + ), + array( + "url", new \StdClass(), "uri", "http://example.org/", + ), + array( + "tzoffsetfrom", new \StdClass(), "utc-offset", "+05:00", + ), + array( + "rrule", new \StdClass(), "recur", array( + 'freq' => 'WEEKLY', + 'byday' => array('MO', 'TU'), + ), + ), + array( + "x-bool", new \StdClass(), "boolean", true + ), + array( + "x-time", new \StdClass(), "time", "08:00:00", + ), + array( + "attach", new \StdClass(), "binary", base64_encode('attachment') + ), + array( + "attendee", + (object)array( + "cn" => "Dominik", + "partstat" => "DECLINED", + ), + "cal-address", + "mailto:dominik@example.org" + ), + array( + "request-status", + new \StdClass(), + "text", + array("2.0", "Success"), + ), + array( + "request-status", + new \StdClass(), + "text", + array("3.7", "Invalid Calendar User", "ATTENDEE:mailto:jsmith@example.org"), + ), + array( + 'dtend', + new \StdClass(), + "date-time", + "2015-01-08T13:30:00", + ), + ), + array(), + ) + ), + ); + + $this->assertEquals($expected, $cal->jsonSerialize()); + + } + +}