]> git.mxchange.org Git - friendica-addons.git/blob - dav/sabre-vobject/tests/Sabre/VObject/DateTimeParserTest.php
removed community home addon
[friendica-addons.git] / dav / sabre-vobject / tests / Sabre / VObject / DateTimeParserTest.php
1 <?php
2
3 namespace Sabre\VObject;
4
5 use DateTime;
6 use DateTimeZone;
7 use DateInterval;
8
9 class DateTimeParserTest extends \PHPUnit_Framework_TestCase {
10
11     function testParseICalendarDuration() {
12
13         $this->assertEquals('+1 weeks', DateTimeParser::parseDuration('P1W',true));
14         $this->assertEquals('+5 days',  DateTimeParser::parseDuration('P5D',true));
15         $this->assertEquals('+5 days 3 hours 50 minutes 12 seconds', DateTimeParser::parseDuration('P5DT3H50M12S',true));
16         $this->assertEquals('-1 weeks 50 minutes', DateTimeParser::parseDuration('-P1WT50M',true));
17         $this->assertEquals('+50 days 3 hours 2 seconds', DateTimeParser::parseDuration('+P50DT3H2S',true));
18         $this->assertEquals(new DateInterval('PT0S'), DateTimeParser::parseDuration('PT0S'));
19
20     }
21
22     function testParseICalendarDurationDateInterval() {
23
24         $expected = new DateInterval('P7D');
25         $this->assertEquals($expected, DateTimeParser::parseDuration('P1W'));
26         $this->assertEquals($expected, DateTimeParser::parse('P1W'));
27
28         $expected = new DateInterval('PT3M');
29         $expected->invert = true;
30         $this->assertEquals($expected, DateTimeParser::parseDuration('-PT3M'));
31
32     }
33
34     /**
35      * @expectedException LogicException
36      */
37     function testParseICalendarDurationFail() {
38
39         DateTimeParser::parseDuration('P1X',true);
40
41     }
42
43     function testParseICalendarDateTime() {
44
45         $dateTime = DateTimeParser::parseDateTime('20100316T141405');
46
47         $compare = new DateTime('2010-03-16 14:14:05',new DateTimeZone('UTC'));
48
49         $this->assertEquals($compare, $dateTime);
50
51     }
52
53     /**
54      * @depends testParseICalendarDateTime
55      * @expectedException LogicException
56      */
57     function testParseICalendarDateTimeBadFormat() {
58
59         $dateTime = DateTimeParser::parseDateTime('20100316T141405 ');
60
61     }
62
63     /**
64      * @depends testParseICalendarDateTime
65      */
66     function testParseICalendarDateTimeUTC() {
67
68         $dateTime = DateTimeParser::parseDateTime('20100316T141405Z');
69
70         $compare = new DateTime('2010-03-16 14:14:05',new DateTimeZone('UTC'));
71         $this->assertEquals($compare, $dateTime);
72
73     }
74
75     /**
76      * @depends testParseICalendarDateTime
77      */
78     function testParseICalendarDateTimeUTC2() {
79
80         $dateTime = DateTimeParser::parseDateTime('20101211T160000Z');
81
82         $compare = new DateTime('2010-12-11 16:00:00',new DateTimeZone('UTC'));
83         $this->assertEquals($compare, $dateTime);
84
85     }
86
87     /**
88      * @depends testParseICalendarDateTime
89      */
90     function testParseICalendarDateTimeCustomTimeZone() {
91
92         $dateTime = DateTimeParser::parseDateTime('20100316T141405', new DateTimeZone('Europe/Amsterdam'));
93
94         $compare = new DateTime('2010-03-16 13:14:05',new DateTimeZone('UTC'));
95         $this->assertEquals($compare, $dateTime);
96
97     }
98
99     function testParseICalendarDate() {
100
101         $dateTime = DateTimeParser::parseDate('20100316');
102
103         $expected = new DateTime('2010-03-16 00:00:00',new DateTimeZone('UTC'));
104
105         $this->assertEquals($expected, $dateTime);
106
107         $dateTime = DateTimeParser::parse('20100316');
108         $this->assertEquals($expected, $dateTime);
109
110     }
111
112     /**
113      * @depends testParseICalendarDate
114      * @expectedException LogicException
115      */
116     function testParseICalendarDateBadFormat() {
117
118         $dateTime = DateTimeParser::parseDate('20100316T141405');
119
120     }
121 }