annotate vendor/sabre/vobject/tests/VObject/Recur/EventIterator/ByMonthInDailyTest.php @ 40:3ea4a836c377

tweaks
author Charlie Root
date Fri, 24 Jan 2025 14:16:58 -0500
parents 430dbd5346f7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
1 <?php
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
2
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
3 namespace Sabre\VObject;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
4
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
5 use
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
6 DateTime;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
7
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
8 class RecurrenceIteratorByMonthInDailyTest extends \PHPUnit_Framework_TestCase {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
9
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
10 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
11 * This tests the expansion of dates with DAILY frequency in RRULE with BYMONTH restrictions
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
12 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
13 function testExpand() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
14
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
15 $ics = <<<ICS
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
16 BEGIN:VCALENDAR
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
17 VERSION:2.0
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
18 PRODID:-//Apple Inc.//iCal 4.0.4//EN
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
19 CALSCALE:GREGORIAN
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
20 BEGIN:VEVENT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
21 TRANSP:OPAQUE
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
22 DTEND:20070925T183000Z
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
23 UID:uuid
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
24 DTSTAMP:19700101T000000Z
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
25 LOCATION:
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
26 DESCRIPTION:
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
27 STATUS:CONFIRMED
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
28 SEQUENCE:18
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
29 SUMMARY:Stuff
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
30 DTSTART:20070925T160000Z
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
31 CREATED:20071004T144642Z
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
32 RRULE:FREQ=DAILY;BYMONTH=9,10;BYDAY=SU
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
33 END:VEVENT
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
34 END:VCALENDAR
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
35 ICS;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
36
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
37 $vcal = Reader::read($ics);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
38 $this->assertInstanceOf('Sabre\\VObject\\Component\\VCalendar', $vcal);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
39
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
40 $vcal->expand(new DateTime('2013-09-28'), new DateTime('2014-09-11'));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
41
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
42 foreach ($vcal->VEVENT as $event) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
43 $dates[] = $event->DTSTART->getValue();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
44 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
45
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
46 $expectedDates = array(
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
47 "20130929T160000Z",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
48 "20131006T160000Z",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
49 "20131013T160000Z",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
50 "20131020T160000Z",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
51 "20131027T160000Z",
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
52 "20140907T160000Z"
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
53 );
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
54
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
55 $this->assertEquals($expectedDates, $dates, 'Recursed dates are restricted by month');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
56 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
57
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
58 }