Mercurial > hg > rc1
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 } |
