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