[Pkg-owncloud-commits] [php-sabre-vobject] 133/341: Fix <rdate />.
David Prévot
taffit at moszumanska.debian.org
Tue Aug 11 13:35:41 UTC 2015
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository php-sabre-vobject.
commit 0169f69432a625efdab212ffef44a3b02764ca23
Author: Ivan Enderlin <ivan.enderlin at hoa-project.net>
Date: Thu Jan 15 15:25:14 2015 +0100
Fix <rdate />.
---
lib/Parser/XML.php | 21 +++++-
tests/VObject/Parser/XmlTest.php | 146 +++++++++++++++++++++++++++++++++++++++
2 files changed, 166 insertions(+), 1 deletion(-)
diff --git a/lib/Parser/XML.php b/lib/Parser/XML.php
index 852daf0..3eac6f3 100644
--- a/lib/Parser/XML.php
+++ b/lib/Parser/XML.php
@@ -169,13 +169,32 @@ class XML extends Parser {
case 'resources':
case 'freebusy':
case 'exdate':
- case 'rdate':
foreach ($xmlProperty['value'] as $specialChild) {
$propertyValue[static::getTagName($specialChild['name'])]
= $specialChild['value'];
}
break;
+ case 'rdate':
+ $propertyType = 'date-time';
+
+ foreach ($xmlProperty['value'] as $specialChild) {
+
+ $tagName = static::getTagName($specialChild['name']);
+
+ if ('period' === $tagName) {
+
+ $propertyParameters['value'] = 'PERIOD';
+ $propertyValue[] = implode('/', $specialChild['value']);
+
+ }
+ else {
+ $propertyValue[] = $specialChild['value'];
+ }
+ }
+
+ break;
+
case 'period':
$propertyType = 'period';
$propertyValue = [implode('/', $xmlProperty['value'])];
diff --git a/tests/VObject/Parser/XmlTest.php b/tests/VObject/Parser/XmlTest.php
index 58924dd..b988102 100644
--- a/tests/VObject/Parser/XmlTest.php
+++ b/tests/VObject/Parser/XmlTest.php
@@ -971,6 +971,152 @@ XML
}
+ function testRDateWithDateTime() {
+
+ $this->assertXCalEqualsToICal(
+<<<XML
+<?xml version="1.0" encoding="utf-8"?>
+ <icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0">
+ <vcalendar>
+ <properties>
+ <rdate>
+ <date-time>2008-02-05T19:12:24Z</date-time>
+ </rdate>
+ </properties>
+ </vcalendar>
+ </icalendar>
+XML
+,
+ 'BEGIN:VCALENDAR' . CRLF .
+ 'RDATE:20080205T191224Z' . CRLF .
+ 'END:VCALENDAR' . CRLF
+ );
+
+ $this->assertXCalEqualsToICal(
+<<<XML
+<?xml version="1.0" encoding="utf-8"?>
+ <icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0">
+ <vcalendar>
+ <properties>
+ <rdate>
+ <date-time>2008-02-05T19:12:24Z</date-time>
+ <date-time>2009-02-05T19:12:24Z</date-time>
+ </rdate>
+ </properties>
+ </vcalendar>
+ </icalendar>
+XML
+,
+ 'BEGIN:VCALENDAR' . CRLF .
+ 'RDATE:20080205T191224Z,20090205T191224Z' . CRLF .
+ 'END:VCALENDAR' . CRLF
+ );
+
+ }
+
+ function testRDateWithDate() {
+
+ $this->assertXCalEqualsToICal(
+<<<XML
+<?xml version="1.0" encoding="utf-8"?>
+ <icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0">
+ <vcalendar>
+ <properties>
+ <rdate>
+ <date>2008-10-06</date>
+ </rdate>
+ </properties>
+ </vcalendar>
+ </icalendar>
+XML
+,
+ 'BEGIN:VCALENDAR' . CRLF .
+ 'RDATE:20081006' . CRLF .
+ 'END:VCALENDAR' . CRLF
+ );
+
+ $this->assertXCalEqualsToICal(
+<<<XML
+<?xml version="1.0" encoding="utf-8"?>
+ <icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0">
+ <vcalendar>
+ <properties>
+ <rdate>
+ <date>2008-10-06</date>
+ <date>2009-10-06</date>
+ <date>2010-10-06</date>
+ </rdate>
+ </properties>
+ </vcalendar>
+ </icalendar>
+XML
+,
+ 'BEGIN:VCALENDAR' . CRLF .
+ 'RDATE:20081006,20091006,20101006' . CRLF .
+ 'END:VCALENDAR' . CRLF
+ );
+
+ }
+
+ function testRDateWithPeriod() {
+
+ $this->assertXCalEqualsToICal(
+<<<XML
+<?xml version="1.0" encoding="utf-8"?>
+ <icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0">
+ <vcalendar>
+ <properties>
+ <rdate>
+ <parameters>
+ <tzid><text>US/Eastern</text></tzid>
+ </parameters>
+ <period>
+ <start>2006-01-02T15:00:00</start>
+ <duration>PT2H</duration>
+ </period>
+ </rdate>
+ </properties>
+ </vcalendar>
+ </icalendar>
+XML
+,
+ 'BEGIN:VCALENDAR' . CRLF .
+ 'RDATE;TZID=US/Eastern;VALUE=PERIOD:20060102T150000/PT2H' . CRLF .
+ 'END:VCALENDAR' . CRLF
+ );
+
+ $this->assertXCalEqualsToICal(
+<<<XML
+<?xml version="1.0" encoding="utf-8"?>
+ <icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0">
+ <vcalendar>
+ <properties>
+ <rdate>
+ <parameters>
+ <tzid><text>US/Eastern</text></tzid>
+ </parameters>
+ <period>
+ <start>2006-01-02T15:00:00</start>
+ <duration>PT2H</duration>
+ </period>
+ <period>
+ <start>2008-01-02T15:00:00</start>
+ <duration>PT1H</duration>
+ </period>
+ </rdate>
+ </properties>
+ </vcalendar>
+ </icalendar>
+XML
+,
+ 'BEGIN:VCALENDAR' . CRLF .
+ 'RDATE;TZID=US/Eastern;VALUE=PERIOD:20060102T150000/PT2H,20080102T150000/PT1' . CRLF .
+ ' H' . CRLF .
+ 'END:VCALENDAR' . CRLF
+ );
+
+ }
+
protected function assertXCalEqualsToICal($xcal, $ical) {
$component = VObject\Reader::readXML($xcal);
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/php-sabre-vobject.git
More information about the Pkg-owncloud-commits
mailing list