Fix invalid VTIMEZONE definitions for offsets negative to UTC
Resolves T428
This commit is contained in:
parent
6221557e3c
commit
c01f8017e3
2 changed files with 5 additions and 3 deletions
|
@ -1303,8 +1303,8 @@ class libvcalendar implements Iterator
|
|||
$offset = $trans['offset'] / 3600;
|
||||
|
||||
$cmp->DTSTART = $dt->format('Ymd\THis');
|
||||
$cmp->TZOFFSETFROM = sprintf('%s%02d%02d', $tzfrom >= 0 ? '+' : '', floor($tzfrom), ($tzfrom - floor($tzfrom)) * 60);
|
||||
$cmp->TZOFFSETTO = sprintf('%s%02d%02d', $offset >= 0 ? '+' : '', floor($offset), ($offset - floor($offset)) * 60);
|
||||
$cmp->TZOFFSETFROM = sprintf('%+03d%02d', floor($tzfrom), ($tzfrom - floor($tzfrom)) * 60);
|
||||
$cmp->TZOFFSETTO = sprintf('%+03d%02d', floor($offset), ($offset - floor($offset)) * 60);
|
||||
|
||||
if (!empty($trans['abbr'])) {
|
||||
$cmp->TZNAME = $trans['abbr'];
|
||||
|
|
|
@ -376,7 +376,7 @@ class libvcalendar_test extends PHPUnit_Framework_TestCase
|
|||
$event['attachments'][0]['id'] = '1';
|
||||
$event['description'] = '*Exported by libvcalendar*';
|
||||
|
||||
$event['start']->setTimezone(new DateTimezone('Europe/Berlin'));
|
||||
$event['start']->setTimezone(new DateTimezone('America/Montreal'));
|
||||
$event['end']->setTimezone(new DateTimezone('Europe/Berlin'));
|
||||
|
||||
$ics = $ical->export(array($event), 'REQUEST', false, array($this, 'get_attachment_data'), true);
|
||||
|
@ -387,6 +387,8 @@ class libvcalendar_test extends PHPUnit_Framework_TestCase
|
|||
$this->assertContains('TZID:Europe/Berlin', $ics, "Timezone ID");
|
||||
$this->assertContains('TZOFFSETFROM:+0100', $ics, "Timzone transition FROM");
|
||||
$this->assertContains('TZOFFSETTO:+0200', $ics, "Timzone transition TO");
|
||||
$this->assertContains('TZOFFSETFROM:-0400', $ics, "TZOFFSETFROM with negative offset (Bug T428)");
|
||||
$this->assertContains('TZOFFSETTO:-0500', $ics, "TZOFFSETTO with negative offset (Bug T428)");
|
||||
$this->assertContains('END:VTIMEZONE', $ics, "VTIMEZONE encapsulation END");
|
||||
|
||||
$this->assertContains('BEGIN:VEVENT', $ics, "VEVENT encapsulation BEGIN");
|
||||
|
|
Loading…
Add table
Reference in a new issue