Files
Chamilo/vendor/sabre/vobject/tests/VObject/ITip/BrokerTimezoneInParseEventInfoWithoutMasterTest.php
2025-04-10 12:24:57 +02:00

78 lines
2.2 KiB
PHP

<?php
namespace Sabre\VObject\ITip;
use Sabre\VObject\Reader;
class BrokerTimezoneInParseEventInfoWithoutMasterTest extends \PHPUnit_Framework_TestCase {
function testTimezoneInParseEventInfoWithoutMaster()
{
$calendar = <<<ICS
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//Mac OS X 10.9.5//EN
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:Europe/Minsk
BEGIN:DAYLIGHT
TZOFFSETFROM:+0200
RRULE:FREQ=YEARLY;UNTIL=20100328T000000Z;BYMONTH=3;BYDAY=-1SU
DTSTART:19930328T020000
TZNAME:GMT+3
TZOFFSETTO:+0300
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
DTSTART:20110327T020000
TZNAME:GMT+3
TZOFFSETTO:+0300
RDATE:20110327T020000
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20160331T163031Z
UID:B9301437-417C-4136-8DB3-8D1555863791
DTEND;TZID=Europe/Minsk:20160405T100000
TRANSP:OPAQUE
ATTENDEE;CN=User Invitee;CUTYPE=INDIVIDUAL;EMAIL=invitee@test.com;PARTSTAT=
ACCEPTED;ROLE=REQ-PARTICIPANT:mailto:invitee@test.com
ATTENDEE;CN=User Organizer;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:organ
izer@test.com
SUMMARY:Event title
DTSTART;TZID=Europe/Minsk:20160405T090000
DTSTAMP:20160331T164108Z
ORGANIZER;CN=User Organizer:mailto:organizer@test.com
SEQUENCE:6
RECURRENCE-ID;TZID=Europe/Minsk:20160405T090000
END:VEVENT
BEGIN:VEVENT
CREATED:20160331T163031Z
UID:B9301437-417C-4136-8DB3-8D1555863791
DTEND;TZID=Europe/Minsk:20160406T100000
TRANSP:OPAQUE
ATTENDEE;CN=User Invitee;CUTYPE=INDIVIDUAL;EMAIL=invitee@test.com;PARTSTAT=
ACCEPTED;ROLE=REQ-PARTICIPANT:mailto:invitee@test.com
ATTENDEE;CN=User Organizer;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:organ
izer@test.com
SUMMARY:Event title
DTSTART;TZID=Europe/Minsk:20160406T090000
DTSTAMP:20160331T165845Z
ORGANIZER;CN=User Organizer:mailto:organizer@test.com
SEQUENCE:6
RECURRENCE-ID;TZID=Europe/Minsk:20160406T090000
END:VEVENT
END:VCALENDAR
ICS;
$calendar = Reader::read($calendar);
$broker = new Broker();
$reflectionMethod = new \ReflectionMethod($broker, 'parseEventInfo');
$reflectionMethod->setAccessible(true);
$data = $reflectionMethod->invoke($broker, $calendar);
$this->assertInstanceOf('DateTimeZone', $data['timezone']);
$this->assertEquals($data['timezone']->getName(), 'Europe/Minsk');
}
}