diff --git a/tests/timezone_converter.php b/tests/timezone_converter.php index 623a399..6184f4f 100644 --- a/tests/timezone_converter.php +++ b/tests/timezone_converter.php @@ -1,161 +1,161 @@ getListOfTimezones('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAEAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAEAAAAAAAAAxP///w=='); $this->assertTrue(is_array($output)); $this->assertSame(array(), $output); $converter = timezone_converter_test::getInstance(); $output = $converter->getListOfTimezones('xP///0MAZQBuAHQAcgBhAGwAIABFAHUAcgBvAHAAZQAgAFMAdABhAG4AZABhAHIAZAAgAFQAaQBtAGUAAAAAAAAAAAAAAAoAAAAFAAMAAAAAAAAAAAAAAEMAZQBuAHQAcgBhAGwAIABFAHUAcgBvAHAAZQAgAEQAYQB5AGwAaQBnAGgAdAAgAFQAaQBtAGUAAAAAAAAAAAAAAAMAAAAFAAIAAAAAAAAAxP///w=='); $this->assertTrue(is_array($output)); $this->assertTrue(isset($output['Europe/Warsaw'])); $converter = timezone_converter_test::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///0kAcgBhAG4AIABTAHQAYQBuAGQAYQByAGQAIABUAGkAbQBlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAgADABcAOwA7AOcDAAAAAEkAcgBhAG4AIABEAGEAeQBsAGkAZwBoAHQAIABUAGkAbQBlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAEAAAAAAAAAAAAxP///w=='); + $output = $converter->getListOfTimezones('Lv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAwADABcAOwA7AOcDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAgAEAAAAAAAAAAAAxP///w=='); $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'); $offsets = $converter->getOffsetsForTimezone('UTC', $datetime); $output = $converter->getTimezone($offsets, 'UTC'); $this->assertSame('UTC', $output); $offsets = $converter->getOffsetsForTimezone('Europe/Warsaw', $datetime); $output = $converter->getTimezone($offsets, 'Europe/Warsaw'); $this->assertSame('Europe/Warsaw', $output); $offsets = $converter->getOffsetsForTimezone('America/Los_Angeles', $datetime); $output = $converter->getTimezone($offsets, 'America/Los_Angeles'); $this->assertSame('America/Los_Angeles', $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'); $output = $converter->getOffsetsForTimezone('UTC', $datetime); $this->assertSame($output['bias'], 0); $this->assertSame($output['standardBias'], 0); $this->assertSame($output['daylightBias'], 0); $this->assertSame($output['standardMonth'], 0); $this->assertSame($output['daylightMonth'], 0); $output = $converter->getOffsetsForTimezone('Europe/Warsaw', $datetime); $this->assertSame($output['standardBias'], 0); $this->assertSame($output['standardMonth'], 10); $this->assertSame($output['standardWeek'], 5); $this->assertSame($output['standardHour'], 3); $this->assertSame($output['daylightBias'], -60); $this->assertSame($output['daylightMonth'], 3); $this->assertSame($output['daylightWeek'], 5); $this->assertSame($output['daylightHour'], 2); $output = $converter->getOffsetsForTimezone('America/Los_Angeles', $datetime); $this->assertSame($output['bias'], 480); $this->assertSame($output['standardBias'], 0); $this->assertSame($output['standardMonth'], 11); $this->assertSame($output['standardWeek'], 1); $this->assertSame($output['standardHour'], 2); $this->assertSame($output['daylightBias'], -60); $this->assertSame($output['daylightMonth'], 3); $this->assertSame($output['daylightWeek'], 2); $this->assertSame($output['daylightHour'], 2); $output = $converter->getOffsetsForTimezone('Atlantic/Azores', $datetime); $this->assertSame($output['bias'], 60); $this->assertSame($output['standardBias'], 0); $this->assertSame($output['standardMonth'], 10); $this->assertSame($output['standardWeek'], 5); $this->assertSame($output['standardHour'], 1); $this->assertSame($output['daylightBias'], -60); $this->assertSame($output['daylightMonth'], 3); $this->assertSame($output['daylightWeek'], 5); $this->assertSame($output['daylightHour'], 0); $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'], 2); + $this->assertSame($output['standardDayOfWeek'], 3); $this->assertSame($output['standardHour'], 24); $this->assertSame($output['daylightBias'], -60); $this->assertSame($output['daylightMonth'], 3); $this->assertSame($output['daylightWeek'], 4); - $this->assertSame($output['daylightDayOfWeek'], 1); + $this->assertSame($output['daylightDayOfWeek'], 2); $this->assertSame($output['daylightHour'], 0); } function data_timezone_conversion() { return array( - array('Asia/Tehran', 'Lv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAgADABcAOwA7AOcDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAEAAAAAAAAAAAAxP///w=='), + array('Asia/Tehran', 'Lv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAwADABcAOwA7AOcDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAgAEAAAAAAAAAAAAxP///w=='), array('Pacific/Pago_Pago', 'lAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=='), array('Europe/Warsaw', 'xP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAFAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAIAAAAAAAAAxP///w=='), ); } /** * @dataProvider data_timezone_conversion */ function test_timezone_conversion($tz, $expected) { $datetime = new DateTime('2021-07-01T12:00:00Z'); $converter = timezone_converter_test::getInstance(); $output = $converter->encodeTimezone($tz, $datetime); $this->assertSame($expected, $output); $output = $converter->getListOfTimezones($output); $this->assertTrue(is_array($output)); $this->assertTrue(isset($output[$tz])); } } class timezone_converter_test extends kolab_sync_timezone_converter { // disable cache function getCache() { return null; } }