xref: /plugin/davcal/vendor/sabre/vobject/tests/VObject/Component/VJournalTest.php (revision a1a3b6794e0e143a4a8b51d3185ce2d339be61ab)
1*a1a3b679SAndreas Boehler<?php
2*a1a3b679SAndreas Boehler
3*a1a3b679SAndreas Boehlernamespace Sabre\VObject\Component;
4*a1a3b679SAndreas Boehler
5*a1a3b679SAndreas Boehleruse Sabre\VObject\Component;
6*a1a3b679SAndreas Boehleruse Sabre\VObject\Reader;
7*a1a3b679SAndreas Boehler
8*a1a3b679SAndreas Boehlerclass VJournalTest extends \PHPUnit_Framework_TestCase {
9*a1a3b679SAndreas Boehler
10*a1a3b679SAndreas Boehler    /**
11*a1a3b679SAndreas Boehler     * @dataProvider timeRangeTestData
12*a1a3b679SAndreas Boehler     */
13*a1a3b679SAndreas Boehler    public function testInTimeRange(VJournal $vtodo,$start,$end,$outcome) {
14*a1a3b679SAndreas Boehler
15*a1a3b679SAndreas Boehler        $this->assertEquals($outcome, $vtodo->isInTimeRange($start, $end));
16*a1a3b679SAndreas Boehler
17*a1a3b679SAndreas Boehler    }
18*a1a3b679SAndreas Boehler
19*a1a3b679SAndreas Boehler    public function testValidate() {
20*a1a3b679SAndreas Boehler
21*a1a3b679SAndreas Boehler        $input = <<<HI
22*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
23*a1a3b679SAndreas BoehlerVERSION:2.0
24*a1a3b679SAndreas BoehlerPRODID:YoYo
25*a1a3b679SAndreas BoehlerBEGIN:VJOURNAL
26*a1a3b679SAndreas BoehlerUID:12345678
27*a1a3b679SAndreas BoehlerDTSTAMP:20140402T174100Z
28*a1a3b679SAndreas BoehlerEND:VJOURNAL
29*a1a3b679SAndreas BoehlerEND:VCALENDAR
30*a1a3b679SAndreas BoehlerHI;
31*a1a3b679SAndreas Boehler
32*a1a3b679SAndreas Boehler        $obj = Reader::read($input);
33*a1a3b679SAndreas Boehler
34*a1a3b679SAndreas Boehler        $warnings = $obj->validate();
35*a1a3b679SAndreas Boehler        $messages = array();
36*a1a3b679SAndreas Boehler        foreach($warnings as $warning) {
37*a1a3b679SAndreas Boehler            $messages[] = $warning['message'];
38*a1a3b679SAndreas Boehler        }
39*a1a3b679SAndreas Boehler
40*a1a3b679SAndreas Boehler        $this->assertEquals(array(), $messages);
41*a1a3b679SAndreas Boehler
42*a1a3b679SAndreas Boehler    }
43*a1a3b679SAndreas Boehler
44*a1a3b679SAndreas Boehler    public function testValidateBroken() {
45*a1a3b679SAndreas Boehler
46*a1a3b679SAndreas Boehler        $input = <<<HI
47*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
48*a1a3b679SAndreas BoehlerVERSION:2.0
49*a1a3b679SAndreas BoehlerPRODID:YoYo
50*a1a3b679SAndreas BoehlerBEGIN:VJOURNAL
51*a1a3b679SAndreas BoehlerUID:12345678
52*a1a3b679SAndreas BoehlerDTSTAMP:20140402T174100Z
53*a1a3b679SAndreas BoehlerURL:http://example.org/
54*a1a3b679SAndreas BoehlerURL:http://example.com/
55*a1a3b679SAndreas BoehlerEND:VJOURNAL
56*a1a3b679SAndreas BoehlerEND:VCALENDAR
57*a1a3b679SAndreas BoehlerHI;
58*a1a3b679SAndreas Boehler
59*a1a3b679SAndreas Boehler        $obj = Reader::read($input);
60*a1a3b679SAndreas Boehler
61*a1a3b679SAndreas Boehler        $warnings = $obj->validate();
62*a1a3b679SAndreas Boehler        $messages = array();
63*a1a3b679SAndreas Boehler        foreach($warnings as $warning) {
64*a1a3b679SAndreas Boehler            $messages[] = $warning['message'];
65*a1a3b679SAndreas Boehler        }
66*a1a3b679SAndreas Boehler
67*a1a3b679SAndreas Boehler        $this->assertEquals(
68*a1a3b679SAndreas Boehler            array("URL MUST NOT appear more than once in a VJOURNAL component"),
69*a1a3b679SAndreas Boehler            $messages
70*a1a3b679SAndreas Boehler        );
71*a1a3b679SAndreas Boehler
72*a1a3b679SAndreas Boehler    }
73*a1a3b679SAndreas Boehler
74*a1a3b679SAndreas Boehler    public function timeRangeTestData() {
75*a1a3b679SAndreas Boehler
76*a1a3b679SAndreas Boehler        $calendar = new VCalendar();
77*a1a3b679SAndreas Boehler
78*a1a3b679SAndreas Boehler        $tests = array();
79*a1a3b679SAndreas Boehler
80*a1a3b679SAndreas Boehler        $vjournal = $calendar->createComponent('VJOURNAL');
81*a1a3b679SAndreas Boehler        $vjournal->DTSTART = '20111223T120000Z';
82*a1a3b679SAndreas Boehler        $tests[] = array($vjournal, new \DateTime('2011-01-01'), new \DateTime('2012-01-01'), true);
83*a1a3b679SAndreas Boehler        $tests[] = array($vjournal, new \DateTime('2011-01-01'), new \DateTime('2011-11-01'), false);
84*a1a3b679SAndreas Boehler
85*a1a3b679SAndreas Boehler        $vjournal2 = $calendar->createComponent('VJOURNAL');
86*a1a3b679SAndreas Boehler        $vjournal2->DTSTART = '20111223';
87*a1a3b679SAndreas Boehler        $vjournal2->DTSTART['VALUE'] = 'DATE';
88*a1a3b679SAndreas Boehler        $tests[] = array($vjournal2, new \DateTime('2011-01-01'), new \DateTime('2012-01-01'), true);
89*a1a3b679SAndreas Boehler        $tests[] = array($vjournal2, new \DateTime('2011-01-01'), new \DateTime('2011-11-01'), false);
90*a1a3b679SAndreas Boehler
91*a1a3b679SAndreas Boehler        $vjournal3 = $calendar->createComponent('VJOURNAL');
92*a1a3b679SAndreas Boehler        $tests[] = array($vjournal3, new \DateTime('2011-01-01'), new \DateTime('2012-01-01'), false);
93*a1a3b679SAndreas Boehler        $tests[] = array($vjournal3, new \DateTime('2011-01-01'), new \DateTime('2011-11-01'), false);
94*a1a3b679SAndreas Boehler
95*a1a3b679SAndreas Boehler        return $tests;
96*a1a3b679SAndreas Boehler    }
97*a1a3b679SAndreas Boehler
98*a1a3b679SAndreas Boehler
99*a1a3b679SAndreas Boehler
100*a1a3b679SAndreas Boehler}
101*a1a3b679SAndreas Boehler
102