From 52b503105d389d1796698114573ff618b2ad34a2 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Sat, 7 Jan 2017 14:30:42 +0100 Subject: Improve datetime display Use php-intl extension to display datetimes a bit more nicely, depending on the locale. What changes: * the day is no longer displayed * day number and month are ordered according to the locale * the timezone is more readable (UTC+1 instead of CET) --- tests/UtilsTest.php | 46 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 11 deletions(-) (limited to 'tests/UtilsTest.php') diff --git a/tests/UtilsTest.php b/tests/UtilsTest.php index b8f608b9..e70cc1ae 100644 --- a/tests/UtilsTest.php +++ b/tests/UtilsTest.php @@ -23,7 +23,12 @@ class UtilsTest extends PHPUnit_Framework_TestCase // Expected log date format protected static $dateFormat = 'Y/m/d H:i:s'; - + + /** + * @var string Save the current timezone. + */ + protected static $defaultTimeZone; + /** * Assign reference data @@ -31,6 +36,17 @@ class UtilsTest extends PHPUnit_Framework_TestCase public static function setUpBeforeClass() { self::$sidHashes = ReferenceSessionIdHashes::getHashes(); + self::$defaultTimeZone = date_default_timezone_get(); + // Timezone without DST for test consistency + date_default_timezone_set('Africa/Nairobi'); + } + + /** + * Reset the timezone + */ + public static function tearDownAfterClass() + { + date_default_timezone_set(self::$defaultTimeZone); } /** @@ -286,20 +302,28 @@ class UtilsTest extends PHPUnit_Framework_TestCase /** * Test arrays_combine */ - public function testArraysCombination() + public function testCartesianProductGenerator() { $arr = [['ab', 'cd'], ['ef', 'gh'], ['ij', 'kl'], ['m']]; $expected = [ - 'abefijm', - 'cdefijm', - 'abghijm', - 'cdghijm', - 'abefklm', - 'cdefklm', - 'abghklm', - 'cdghklm', + ['ab', 'ef', 'ij', 'm'], + ['ab', 'ef', 'kl', 'm'], + ['ab', 'gh', 'ij', 'm'], + ['ab', 'gh', 'kl', 'm'], + ['cd', 'ef', 'ij', 'm'], + ['cd', 'ef', 'kl', 'm'], + ['cd', 'gh', 'ij', 'm'], + ['cd', 'gh', 'kl', 'm'], ]; - $this->assertEquals($expected, arrays_combination($arr)); + $this->assertEquals($expected, iterator_to_array(cartesian_product_generator($arr))); } + /** + * Test date_format() with invalid parameter. + */ + public function testDateFormatInvalid() + { + $this->assertFalse(format_date([])); + $this->assertFalse(format_date(null)); + } } -- cgit v1.2.3