3 require_once 'Sabre/CalDAV/TestUtil.php';
5 class Sabre_VObject_DateTimeParserTest extends PHPUnit_Framework_TestCase {
7 function testParseICalendarDuration() {
9 $this->assertEquals('+1 weeks', Sabre_VObject_DateTimeParser::parseDuration('P1W',true));
10 $this->assertEquals('+5 days', Sabre_VObject_DateTimeParser::parseDuration('P5D',true));
11 $this->assertEquals('+5 days 3 hours 50 minutes 12 seconds', Sabre_VObject_DateTimeParser::parseDuration('P5DT3H50M12S',true));
12 $this->assertEquals('-1 weeks 50 minutes', Sabre_VObject_DateTimeParser::parseDuration('-P1WT50M',true));
13 $this->assertEquals('+50 days 3 hours 2 seconds', Sabre_VObject_DateTimeParser::parseDuration('+P50DT3H2S',true));
14 $this->assertEquals(new DateInterval('PT0S'), Sabre_VObject_DateTimeParser::parseDuration('PT0S'));
18 function testParseICalendarDurationDateInterval() {
20 $expected = new DateInterval('P7D');
21 $this->assertEquals($expected, Sabre_VObject_DateTimeParser::parseDuration('P1W'));
22 $this->assertEquals($expected, Sabre_VObject_DateTimeParser::parse('P1W'));
24 $expected = new DateInterval('PT3M');
25 $expected->invert = true;
26 $this->assertEquals($expected, Sabre_VObject_DateTimeParser::parseDuration('-PT3M'));
31 * @expectedException Sabre_DAV_Exception_BadRequest
33 function testParseICalendarDurationFail() {
35 Sabre_VObject_DateTimeParser::parseDuration('P1X',true);
39 function testParseICalendarDateTime() {
41 $dateTime = Sabre_VObject_DateTimeParser::parseDateTime('20100316T141405');
43 $compare = new DateTime('2010-03-16 14:14:05',new DateTimeZone('UTC'));
45 $this->assertEquals($compare, $dateTime);
50 * @depends testParseICalendarDateTime
51 * @expectedException Sabre_DAV_Exception_BadRequest
53 function testParseICalendarDateTimeBadFormat() {
55 $dateTime = Sabre_VObject_DateTimeParser::parseDateTime('20100316T141405 ');
60 * @depends testParseICalendarDateTime
62 function testParseICalendarDateTimeUTC() {
64 $dateTime = Sabre_VObject_DateTimeParser::parseDateTime('20100316T141405Z');
66 $compare = new DateTime('2010-03-16 14:14:05',new DateTimeZone('UTC'));
67 $this->assertEquals($compare, $dateTime);
72 * @depends testParseICalendarDateTime
74 function testParseICalendarDateTimeUTC2() {
76 $dateTime = Sabre_VObject_DateTimeParser::parseDateTime('20101211T160000Z');
78 $compare = new DateTime('2010-12-11 16:00:00',new DateTimeZone('UTC'));
79 $this->assertEquals($compare, $dateTime);
84 * @depends testParseICalendarDateTime
86 function testParseICalendarDateTimeCustomTimeZone() {
88 $dateTime = Sabre_VObject_DateTimeParser::parseDateTime('20100316T141405', new DateTimeZone('Europe/Amsterdam'));
90 $compare = new DateTime('2010-03-16 13:14:05',new DateTimeZone('UTC'));
91 $this->assertEquals($compare, $dateTime);
95 function testParseICalendarDate() {
97 $dateTime = Sabre_VObject_DateTimeParser::parseDate('20100316');
99 $expected = new DateTime('2010-03-16 00:00:00',new DateTimeZone('UTC'));
101 $this->assertEquals($expected, $dateTime);
103 $dateTime = Sabre_VObject_DateTimeParser::parse('20100316');
104 $this->assertEquals($expected, $dateTime);
109 * @depends testParseICalendarDate
110 * @expectedException Sabre_DAV_Exception_BadRequest
112 function testParseICalendarDateBadFormat() {
114 $dateTime = Sabre_VObject_DateTimeParser::parseDate('20100316T141405');