Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F8198228
timezone_converter.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
7 KB
Referenced Files
None
Subscribers
None
timezone_converter.php
View Options
<?php
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
();
$output
=
$converter
->
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=='
);
$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
[
'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
[
'daylightHour'
],
0
);
}
function
data_timezone_conversion
()
{
return
array
(
array
(
'Asia/Tehran'
,
'Lv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAgADABcAOwA7AOcDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAEAAAAAAAAAAAAxP///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
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Wed, Jul 8, 6:27 PM (1 d, 20 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1051771
Default Alt Text
timezone_converter.php (7 KB)
Attached To
Mode
R4 syncroton
Attached
Detach File
Event Timeline
Log In to Comment