Skip to content

Commit

Permalink
Add URL support fix #40
Browse files Browse the repository at this point in the history
  • Loading branch information
Roman Ožana committed Nov 6, 2019
1 parent bde9cb1 commit 5209e74
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/IcalParser.php
Expand Up @@ -248,9 +248,9 @@ private function parseRow($row) {

//implement 4.3.11 Text ESCAPED-CHAR
$text_properties = [
'CALSCALE', 'METHOD', 'PRODID', 'VERSION', 'CATEGORIES', 'CLASS', 'COMMENT', 'DESCRIPTION'
, 'LOCATION', 'RESOURCES', 'STATUS', 'SUMMARY', 'TRANSP', 'TZID', 'TZNAME', 'CONTACT', 'RELATED-TO', 'UID'
, 'ACTION', 'REQUEST-STATUS',
'CALSCALE', 'METHOD', 'PRODID', 'VERSION', 'CATEGORIES', 'CLASS', 'COMMENT', 'DESCRIPTION',
'LOCATION', 'RESOURCES', 'STATUS', 'SUMMARY', 'TRANSP', 'TZID', 'TZNAME', 'CONTACT',
'RELATED-TO', 'UID', 'ACTION', 'REQUEST-STATUS', 'URL',
];
if (in_array($key, $text_properties) || strpos($key, 'X-') === 0) {
if (is_array($value)) {
Expand Down Expand Up @@ -434,7 +434,7 @@ public function getAlarms() {
public function getTimezones() {
return isset($this->data['VTIMEZONE']) ? $this->data['VTIMEZONE'] : [];
}

/**
* @return array
*/
Expand Down
32 changes: 32 additions & 0 deletions tests/cal/url.ics
@@ -0,0 +1,32 @@
BEGIN:VCALENDAR
VERSION:2.0
X-WR-CALNAME:URL
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:Europe/Berlin
TZURL:http://tzurl.org/zoneinfo-outlook/Europe/Berlin
X-LIC-LOCATION:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:20191106T093607Z
UID:20191106T093607Z-791992399@marudot.com
DTSTART;VALUE=DATE:20191101
DTEND;VALUE=DATE:20191102
SUMMARY:Example event
URL:https%3A%2F%2Fgithub.com%2FOzzyCzech%2Ficalparser%2F
END:VEVENT
END:VCALENDAR
20 changes: 20 additions & 0 deletions tests/url.phpt
@@ -0,0 +1,20 @@
<?php
/**
* @author Roman Ozana <ozana@omdesign.cz>
*/

use Tester\Assert;
use Tester\Environment;

require_once __DIR__ . '/../vendor/autoload.php';
Environment::setup();
date_default_timezone_set('Europe/Prague');

// sort by date
$cal = new \om\IcalParser();
$results = $cal->parseFile(__DIR__ . '/cal/url.ics');

Assert::true(isset($results['VEVENT'][0]));
$event = reset($results['VEVENT']);
Assert::true(isset($event['URL']));
Assert::equal($event['URL'], urlencode('https://github.com/OzzyCzech/icalparser/'));

0 comments on commit 5209e74

Please sign in to comment.