Projects
Kolab:16:Enterprise
kolab-syncroton
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 49
View file
kolab-syncroton.spec
Changed
@@ -36,7 +36,7 @@ %global _ap_sysconfdir %{_sysconfdir}/%{httpd_name} Name: kolab-syncroton -Version: 2.3.22 +Version: 2.3.23 Release: 1%{?dist} Summary: ActiveSync for Kolab Groupware
View file
debian.changelog
Changed
@@ -1,3 +1,9 @@ +kolab-syncroton (2.3.23-0~kolab1) unstable; urgency=low + + * Release version 2.3.23 + + -- Christian Mollekopf <mollekopf@apheleia-it.ch> Wed, 19 Apr 2023 15:13:40 +0200 + kolab-syncroton (2.3.22-1~kolab1) unstable; urgency=low * Fixed timezone issue
View file
kolab-syncroton-2.3.22.tar.gz/composer.json-dist -> kolab-syncroton-2.3.23.tar.gz/composer.json-dist
Changed
@@ -23,6 +23,6 @@ "zf1s/zend-log": "~1.12.20" }, "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.7 || ^6 || ^7" + "phpunit/phpunit": "^4.8 || ^5.7 || ^6 || ^7 || ^9" } }
View file
kolab-syncroton-2.3.22.tar.gz/lib/ext/Syncroton/Command/GetAttachment.php -> kolab-syncroton-2.3.23.tar.gz/lib/ext/Syncroton/Command/GetAttachment.php
Changed
@@ -49,7 +49,7 @@ if (PHP_SAPI !== 'cli') { // cache for 3600 seconds $maxAge = 3600; - $now = new DateTime(null, new DateTimeZone('UTC')); + $now = new DateTime('now', new DateTimeZone('UTC')); header('Cache-Control: private, max-age=' . $maxAge); header("Expires: " . gmdate('D, d M Y H:i:s', $now->modify("+{$maxAge} sec")->getTimestamp()) . " GMT");
View file
kolab-syncroton-2.3.22.tar.gz/lib/ext/Syncroton/Command/Sync.php -> kolab-syncroton-2.3.23.tar.gz/lib/ext/Syncroton/Command/Sync.php
Changed
@@ -465,7 +465,7 @@ $wakeupCallback(); - $now = new DateTime(null, new DateTimeZone('utc')); + $now = new DateTime('now', new DateTimeZone('UTC')); foreach($this->_collections as $collectionData) { // continue immediately if folder does not exist @@ -633,7 +633,7 @@ if ($hasChanges) { // update _syncTimeStamp as $dataController->hasChanges might have spent some time - $this->_syncTimeStamp = new DateTime(null, new DateTimeZone('utc')); + $this->_syncTimeStamp = new DateTime('now', new DateTimeZone('UTC')); try { // fetch entries added since last sync
View file
kolab-syncroton-2.3.22.tar.gz/lib/ext/Syncroton/Command/Wbxml.php -> kolab-syncroton-2.3.23.tar.gz/lib/ext/Syncroton/Command/Wbxml.php
Changed
@@ -154,7 +154,7 @@ $this->_logger = Syncroton_Registry::get('loggerBackend'); } - $this->_syncTimeStamp = new DateTime(null, new DateTimeZone('UTC')); + $this->_syncTimeStamp = new DateTime('now', new DateTimeZone('UTC')); // set default content type $this->_headers'Content-Type' = 'application/vnd.ms-sync.wbxml';
View file
kolab-syncroton-2.3.22.tar.gz/lib/ext/Syncroton/Model/AEntry.php -> kolab-syncroton-2.3.23.tar.gz/lib/ext/Syncroton/Model/AEntry.php
Changed
@@ -40,6 +40,7 @@ * (non-PHPdoc) * @see Countable::count() */ + #\ReturnTypeWillChange public function count() { return count($this->_elements); @@ -49,6 +50,7 @@ * (non-PHPdoc) * @see IteratorAggregate::getIterator() */ + #\ReturnTypeWillChange public function getIterator() { return new ArrayIterator($this->_elements);
View file
kolab-syncroton-2.3.22.tar.gz/lib/ext/rtf.php -> kolab-syncroton-2.3.23.tar.gz/lib/ext/rtf.php
Changed
@@ -101,6 +101,7 @@ var $cfirst; // could this be the first character ? so watch out for control symbols var $flags = array(); // parser flags + var $fonttable = array(); var $queue; // every character which is no sepcial char, not belongs to a control word/symbol; is generally considered being 'plain' @@ -399,7 +400,6 @@ $this->out.="<group>"; } if($state == "close") { /* pop from the stack */ - $this->last_flags = $this->flags; $this->flags = array_pop($this->stack); $this->flags"fonttbl_current_write" = ""; // on group close, no more fontdefinition will be written to this id
View file
kolab-syncroton-2.3.22.tar.gz/lib/kolab_sync_backend.php -> kolab-syncroton-2.3.23.tar.gz/lib/kolab_sync_backend.php
Changed
@@ -919,7 +919,7 @@ $synctime = $synctime->format('Y-m-d H:i:s'); $rcube = rcube::get_instance(); $db = $rcube->get_dbh(); - $old_data = $this->modseq$folderid$synctime; + $old_data = $this->modseq$folderid$synctime ?? null; if (empty($old_data)) { $this->modseq$folderid$synctime = $data; @@ -971,7 +971,7 @@ $synctime = $synctime->format('Y-m-d H:i:s'); $rcube = rcube::get_instance(); $db = $rcube->get_dbh(); - $old_data = $this->relations$folderid$synctime; + $old_data = $this->relations$folderid$synctime ?? null; if (empty($old_data)) { $this->relations$folderid$synctime = $relations;
View file
kolab-syncroton-2.3.22.tar.gz/lib/kolab_sync_data.php -> kolab-syncroton-2.3.23.tar.gz/lib/kolab_sync_data.php
Changed
@@ -675,7 +675,7 @@ */ protected function getChangesByRelations($folderid, $filter) { - if (!$this->tag_categories) { + if (isset($this->tag_categories) && !$this->tag_categories) { return; } @@ -1011,7 +1011,7 @@ } // convert categories into tags, save them after creating an object - if ($this->tag_categories) { + if (isset($this->tag_categories) && $this->tag_categories) { $tags = $data'categories'; unset($data'categories'); } @@ -1045,7 +1045,7 @@ $folder = $this->getFolderObject($object'_mailbox'); // convert categories into tags, save them after updating an object - if ($this->tag_categories && array_key_exists('categories', $data)) { + if (isset($this->tag_categories) && $this->tag_categories && array_key_exists('categories', $data)) { $tags = (array) $data'categories'; unset($data'categories'); } @@ -1077,7 +1077,7 @@ $folder = $this->getFolderObject($object'_mailbox'); if ($folder && $folder->valid && $folder->delete($object'uid')) { - if ($this->tag_categories) { + if (isset($this->tag_categories) && $this->tag_categories) { $this->setKolabTags($object'uid', null); } @@ -1522,7 +1522,7 @@ $real_length = $body_length = strlen($body); // truncate the body if needed - if (($truncateAt = $prefs$type'truncationSize') && $body_length > $truncateAt) { + if (isset($prefs$type) && ($truncateAt = $prefs$type'truncationSize') && $body_length > $truncateAt) { $body = mb_strcut($body, 0, $truncateAt); $body_length = strlen($body);
View file
kolab-syncroton-2.3.22.tar.gz/lib/kolab_sync_data_calendar.php -> kolab-syncroton-2.3.23.tar.gz/lib/kolab_sync_data_calendar.php
Changed
@@ -194,7 +194,7 @@ if ($timezone && ($tz_name = $timezone->getName()) != 'UTC') { $tzc = kolab_sync_timezone_converter::getInstance(); - if ($tz_name = $tzc->encodeTimezone($tz_name)) { + if ($tz_name = $tzc->encodeTimezone($tz_name, $event'start'->format('Y-m-d'))) { $result'timezone' = $tz_name; } } @@ -236,10 +236,16 @@ break; case 'sensitivity': + if (empty($value)) { + continue; + } $value = intval($this->sensitivityMap$value); break; case 'free_busy': + if (empty($value)) { + continue; + } $value = $this->busyStatusMap$value; break; @@ -374,6 +380,7 @@ $timezone = new DateTimeZone($timezone); } catch (Exception $e) { + $this->logger->warn('Failed to convert the timezone information. UID: ' . $event'uid' . 'Timezone: ' . $data->timezone); $timezone = null; } }
View file
kolab-syncroton-2.3.22.tar.gz/lib/kolab_sync_data_email.php -> kolab-syncroton-2.3.23.tar.gz/lib/kolab_sync_data_email.php
Changed
@@ -93,6 +93,9 @@ */ protected $folderType = Syncroton_Command_FolderSync::FOLDERTYPE_MAIL_USER_CREATED; + private $lastsync_folder = null; + private $lastsync_time = null; + /** * the constructor @@ -350,7 +353,7 @@ $result'contentClass' = 'urn:content-classes:message'; // Categories (Tags) - if ($this->tag_categories) { + if (isset($this->tag_categories) && $this->tag_categories) { // convert kolab tags into categories $result'categories' = $this->getKolabTags($message); }
View file
kolab-syncroton-2.3.22.tar.gz/lib/kolab_sync_timezone_converter.php -> kolab-syncroton-2.3.23.tar.gz/lib/kolab_sync_timezone_converter.php
Changed
@@ -57,6 +57,14 @@ ) ); + + protected $_legacyTimezones = array( + # This is an outdated timezone that outlook keeps sending because of an outdate timezone database on windows + 'Lv///0kAcgBhAG4AIABTAHQAYQBuAGQAYQByAGQAIABUAGkAbQBlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkABAADABcAOwA7AOcDAAAAAEkAcgBhAG4AIABEAGEAeQBsAGkAZwBoAHQAIABUAGkAbQBlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAwAEAAAAAAAAAAAAxP///w==' => array( + 'Asia/Tehran' => '+0330' + ) + ); + /** * don't use the constructor. Use the singleton. * @@ -140,6 +148,9 @@ if (is_string($_offsets) && isset($this->_knownTimezones$_offsets)) { $timezones = $this->_knownTimezones$_offsets; } + elseif (is_string($_offsets) && isset($this->_legacyTimezones$_offsets)) { + $timezones = $this->_legacyTimezones$_offsets; + } else { if (is_string($_offsets)) { // unpack timezone info to array @@ -151,18 +162,12 @@ } $this->_setDefaultStartDateIfEmpty($_offsets); - $cacheId = $this->_getCacheId('timezones', $_offsets); - $timezones = $this->_loadFromCache($cacheId); - - if (!is_array($timezones)) { - $timezones = array(); - foreach (DateTimeZone::listIdentifiers() as $timezoneIdentifier) { - $timezone = new DateTimeZone($timezoneIdentifier); - if (false !== ($matchingTransition = $this->_checkTimezone($timezone, $_offsets))) { - $timezones$timezoneIdentifier = $matchingTransition'abbr'; - } + $timezones = array(); + foreach (DateTimeZone::listIdentifiers() as $timezoneIdentifier) { + $timezone = new DateTimeZone($timezoneIdentifier); + if (false !== ($matchingTransition = $this->_checkTimezone($timezone, $_offsets))) { + $timezones$timezoneIdentifier = $matchingTransition'abbr'; } - $this->_saveInCache($timezones, $cacheId); } } @@ -224,36 +229,30 @@ { $this->_setStartDate($_startDate); - $cacheId = $this->_getCacheId('offsets', array($_timezone)); - - if (!($offsets = $this->_loadFromCache($cacheId))) { - $offsets = $this->_getOffsetsTemplate(); + $offsets = $this->_getOffsetsTemplate(); - try { - $timezone = new DateTimeZone($_timezone); - } - catch (Exception $e) { - return null; - } + try { + $timezone = new DateTimeZone($_timezone); + } + catch (Exception $e) { + return null; + } - list($standardTransition, $daylightTransition) = $this->_getTransitionsForTimezoneAndYear($timezone, $this->_startDate'year'); + list($standardTransition, $daylightTransition) = $this->_getTransitionsForTimezoneAndYear($timezone, $this->_startDate'year'); - if ($standardTransition) { - $offsets'bias' = $standardTransition'offset'/60*-1; - if ($daylightTransition) { - $offsets = $this->_generateOffsetsForTransition($offsets, $standardTransition, 'standard', $timezone); - $offsets = $this->_generateOffsetsForTransition($offsets, $daylightTransition, 'daylight', $timezone); + if ($standardTransition) { + $offsets'bias' = $standardTransition'offset'/60*-1; + if ($daylightTransition) { + $offsets = $this->_generateOffsetsForTransition($offsets, $standardTransition, 'standard', $timezone); + $offsets = $this->_generateOffsetsForTransition($offsets, $daylightTransition, 'daylight', $timezone); - //@todo how do we get the standardBias (is usually 0)? - //$offsets'standardBias' = ... + //@todo how do we get the standardBias (is usually 0)? + //$offsets'standardBias' = ... - $offsets'daylightBias' = ($daylightTransition'offset' - $standardTransition'offset')/60*-1; - $offsets'standardHour' -= $offsets'daylightBias' / 60; - $offsets'daylightHour' += $offsets'daylightBias' / 60; - } + $offsets'daylightBias' = ($daylightTransition'offset' - $standardTransition'offset')/60*-1; + $offsets'standardHour' -= $offsets'daylightBias' / 60; + $offsets'daylightHour' += $offsets'daylightBias' / 60; } - - $this->_saveInCache($offsets, $cacheId); } return $offsets; @@ -539,7 +538,7 @@ } else if (is_int($_startDate)) { $startDateParsed'ts' = $_startDate; - $startDateParsed'string' = strftime('%F', $_startDate); + $startDateParsed'string' = date('Y-m-d', $_startDate); } else { $this->_setDefaultStartDateIfEmpty(); @@ -618,8 +617,8 @@ } foreach ($transitions as $index => $transition) { - if (strftime('%Y', $transition'ts') == $_year) { - if (isset($transitions$index+1) && strftime('%Y', $transitions$index'ts') == strftime('%Y', $transitions$index+1'ts')) { + if (date('Y', $transition'ts') == $_year) { + if (isset($transitions$index+1) && date('Y', $transitions$index'ts') == date('Y', $transitions$index+1'ts')) { $daylightTransition = $transition'isdst' ? $transition : $transitions$index+1; $standardTransition = $transition'isdst' ? $transitions$index+1 : $transition; } @@ -636,39 +635,4 @@ return array($standardTransition, $daylightTransition); } - - protected function _getCacheId($_prefix, $_offsets) - { - return $_prefix . md5(serialize($_offsets)); - } - - protected function _loadFromCache($key) - { - if ($cache = $this->getCache()) { - return $cache->get($key); - } - - return false; - } - - protected function _saveInCache($value, $key) - { - if ($cache = $this->getCache()) { - $cache->set($key, $value); - } - } - - /** - * Getter for the cache engine object - */ - protected function getCache() - { - if ($this->cache === null) { - $rcube = rcube::get_instance(); - $cache = $rcube->get_cache_shared('activesync'); - $this->cache = $cache ? $cache : false; - } - - return $this->cache; - } }
View file
kolab-syncroton-2.3.22.tar.gz/tests/body_converter.php -> kolab-syncroton-2.3.23.tar.gz/tests/body_converter.php
Changed
@@ -2,11 +2,6 @@ class body_converter extends PHPUnit\Framework\TestCase { - function setUp() - { - } - - function data_html_to_text() { return array(
View file
kolab-syncroton-2.3.22.tar.gz/tests/message.php -> kolab-syncroton-2.3.23.tar.gz/tests/message.php
Changed
@@ -2,11 +2,6 @@ class message extends PHPUnit\Framework\TestCase { - function setUp() - { - } - - /** * Test message parsing and headers setting */
View file
kolab-syncroton-2.3.22.tar.gz/tests/timezone_converter.php -> kolab-syncroton-2.3.23.tar.gz/tests/timezone_converter.php
Changed
@@ -2,69 +2,74 @@ class timezone_converter extends PHPUnit\Framework\TestCase { - function setUp() - { - } - - function test_list_timezones() { // date_default_timezone_set('America/Los_Angeles'); - $converter = timezone_converter_test::getInstance(); + $converter = kolab_sync_timezone_converter::getInstance(); $output = $converter->getListOfTimezones('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAEAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAEAAAAAAAAAxP///w=='); $this->assertTrue(is_array($output)); $this->assertSame(array(), $output); - $converter = timezone_converter_test::getInstance(); + $converter = kolab_sync_timezone_converter::getInstance(); $output = $converter->getListOfTimezones('xP///0MAZQBuAHQAcgBhAGwAIABFAHUAcgBvAHAAZQAgAFMAdABhAG4AZABhAHIAZAAgAFQAaQBtAGUAAAAAAAAAAAAAAAoAAAAFAAMAAAAAAAAAAAAAAEMAZQBuAHQAcgBhAGwAIABFAHUAcgBvAHAAZQAgAEQAYQB5AGwAaQBnAGgAdAAgAFQAaQBtAGUAAAAAAAAAAAAAAAMAAAAFAAIAAAAAAAAAxP///w=='); $this->assertTrue(is_array($output)); $this->assertTrue(isset($output'Europe/Warsaw')); - $converter = timezone_converter_test::getInstance(); + $converter = kolab_sync_timezone_converter::getInstance(); $output = $converter->getListOfTimezones('4AEAAFAAYQBjAGkAZgBpAGMAIABTAHQAYQBuAGQAYQByAGQAIABUAGkAbQBlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAIAAAAAAAAAAAAAAFAAYQBjAGkAZgBpAGMAIABEAGEAeQBsAGkAZwBoAHQAIABUAGkAbQBlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAIAAAAAAAAAxP///w=='); $this->assertTrue(is_array($output)); $this->assertTrue(isset($output'America/Los_Angeles')); - $converter = timezone_converter_test::getInstance(); - $output = $converter->getListOfTimezones('Lv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAwADABcAOwA7AOcDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAgAEAAAAAAAAAAAAxP///w=='); + $converter = kolab_sync_timezone_converter::getInstance(); + $output = $converter->getListOfTimezones('Lv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=='); $this->assertTrue(is_array($output)); $this->assertTrue(isset($output'Asia/Tehran')); - } - - function test_get_timezone() - { - date_default_timezone_set('America/Los_Angeles'); - $converter = timezone_converter_test::getInstance(); - $datetime = new DateTime('2017-01-01T12:00:00Z'); + # As seen in outlook + $converter = kolab_sync_timezone_converter::getInstance(); + $output = $converter->getListOfTimezones('Lv///0kAcgBhAG4AIABTAHQAYQBuAGQAYQByAGQAIABUAGkAbQBlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkABAADABcAOwA7AOcDAAAAAEkAcgBhAG4AIABEAGEAeQBsAGkAZwBoAHQAIABUAGkAbQBlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAwAEAAAAAAAAAAAAxP///w=='); - $offsets = $converter->getOffsetsForTimezone('UTC', $datetime); - $output = $converter->getTimezone($offsets, 'UTC'); - - $this->assertSame('UTC', $output); + $this->assertTrue(is_array($output)); + $this->assertTrue(isset($output'Asia/Tehran')); + } - $offsets = $converter->getOffsetsForTimezone('Europe/Warsaw', $datetime); - $output = $converter->getTimezone($offsets, 'Europe/Warsaw'); + function data_get_timezone() + { + return + 'UTC', + 'Europe/Warsaw', + 'Europe/Zurich', + 'America/Los_Angeles', + 'Asia/Tehran', + ; + } - $this->assertSame('Europe/Warsaw', $output); + /** + * @dataProvider data_get_timezone + */ + function test_get_timezone($tzName) + { + date_default_timezone_set('America/Los_Angeles'); - $offsets = $converter->getOffsetsForTimezone('America/Los_Angeles', $datetime); - $output = $converter->getTimezone($offsets, 'America/Los_Angeles'); + $converter = kolab_sync_timezone_converter::getInstance(); + $datetime = '2017-01-01T12:00:00Z'; - $this->assertSame('America/Los_Angeles', $output); + $offsets = $converter->getOffsetsForTimezone($tzName, $datetime); + $output = $converter->getTimezone($offsets, $tzName); + $this->assertSame($tzName, $output); } function test_get_offsets_for_timezone() { date_default_timezone_set('America/Los_Angeles'); - $converter = timezone_converter_test::getInstance(); - $datetime = new DateTime('2017-01-01T12:00:00Z'); + $converter = kolab_sync_timezone_converter::getInstance(); + $datetime = '2017-01-01T12:00:00Z'; $output = $converter->getOffsetsForTimezone('UTC', $datetime); @@ -109,37 +114,55 @@ $this->assertSame($output'daylightWeek', 5); $this->assertSame($output'daylightHour', 0); + //Check before dst change $output = $converter->getOffsetsForTimezone('Asia/Tehran', $datetime); $this->assertSame($output'bias', -210); $this->assertSame($output'standardBias', 0); $this->assertSame($output'standardMonth', 9); $this->assertSame($output'standardWeek', 3); - $this->assertSame($output'standardDayOfWeek', 3); + $this->assertSame($output'standardDayOfWeek', 4); $this->assertSame($output'standardHour', 24); $this->assertSame($output'daylightBias', -60); $this->assertSame($output'daylightMonth', 3); $this->assertSame($output'daylightWeek', 4); - $this->assertSame($output'daylightDayOfWeek', 2); + $this->assertSame($output'daylightDayOfWeek', 3); + $this->assertSame($output'daylightHour', 0); + + //Check after dst change + $output = $converter->getOffsetsForTimezone('Asia/Tehran', '2023-01-01T12:00:00Z'); + + $this->assertSame($output'bias', -210); + $this->assertSame($output'standardBias', 0); + $this->assertSame($output'standardMonth', 0); + $this->assertSame($output'standardWeek', 0); + $this->assertSame($output'standardDayOfWeek', 0); + $this->assertSame($output'standardHour', 0); + $this->assertSame($output'daylightBias', 0); + $this->assertSame($output'daylightMonth', 0); + $this->assertSame($output'daylightWeek', 0); + $this->assertSame($output'daylightDayOfWeek', 0); $this->assertSame($output'daylightHour', 0); } function data_timezone_conversion() { return array( - array('Asia/Tehran', 'Lv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAwADABcAOwA7AOcDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAgAEAAAAAAAAAAAAxP///w=='), - array('Pacific/Pago_Pago', 'lAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=='), - array('Europe/Warsaw', 'xP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAFAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAIAAAAAAAAAxP///w=='), + //Pre dst change + array('Asia/Tehran', 'Lv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAgADABcAOwA7AOcDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAEAAAAAAAAAAAAxP///w==', '2021-07-01T12:00:00Z'), + //Post dst change + array('Asia/Tehran', 'Lv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==', '2023-04-01T12:00:00Z'), + array('Pacific/Pago_Pago', 'lAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==', '2021-07-01T12:00:00Z'), + array('Europe/Warsaw', 'xP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAFAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAIAAAAAAAAAxP///w==', '2021-07-01T12:00:00Z'), ); } /** * @dataProvider data_timezone_conversion */ - function test_timezone_conversion($tz, $expected) + function test_timezone_conversion($tz, $expected, $datetime) { - $datetime = new DateTime('2021-07-01T12:00:00Z'); - $converter = timezone_converter_test::getInstance(); + $converter = kolab_sync_timezone_converter::getInstance(); $output = $converter->encodeTimezone($tz, $datetime); $this->assertSame($expected, $output); @@ -150,12 +173,3 @@ $this->assertTrue(isset($output$tz)); } } - -class timezone_converter_test extends kolab_sync_timezone_converter -{ - // disable cache - function getCache() - { - return null; - } -}
View file
kolab-syncroton.dsc
Changed
@@ -2,7 +2,7 @@ Source: kolab-syncroton Binary: kolab-syncroton Architecture: all -Version: 2.3.22-1~kolab1 +Version: 2.3.23-1~kolab1 Maintainer: Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> Uploaders: Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> Homepage: http://www.kolab.org/ @@ -12,5 +12,5 @@ Package-List: kolab-syncroton deb utils extra Files: - 00000000000000000000000000000000 0 kolab-syncroton-2.3.22.tar.gz + 00000000000000000000000000000000 0 kolab-syncroton-2.3.23.tar.gz 00000000000000000000000000000000 0 debian.tar.gz
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.