X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests%2FUtilsTest.php;h=e70cc1aef10197d66718149a0ded03f85cbec072;hb=dcc85ea619ee728361c62b2b7a7cc8f37081dfbf;hp=3073b5eb45ca2736f7ed8cf649ad9997392e1287;hpb=25d88c90aa74ea05162dfc59f47843df639beb75;p=github%2Fshaarli%2FShaarli.git diff --git a/tests/UtilsTest.php b/tests/UtilsTest.php index 3073b5eb..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); } /** @@ -253,41 +269,61 @@ class UtilsTest extends PHPUnit_Framework_TestCase is_session_id_valid('c0ZqcWF3VFE2NmJBdm1HMVQ0ZHJ3UmZPbTFsNGhkNHI=') ); } + + /** + * Test generateSecretApi. + */ + public function testGenerateSecretApi() + { + $this->assertEquals(12, strlen(generate_api_secret('foo', 'bar'))); + } + + /** + * Test generateSecretApi with invalid parameters. + */ + public function testGenerateSecretApiInvalid() + { + $this->assertFalse(generate_api_secret('', '')); + $this->assertFalse(generate_api_secret(false, false)); + } /** - * Test text2clickable without a redirector being set. + * Test normalize_spaces. */ - public function testText2clickableWithoutRedirector() + public function testNormalizeSpace() { - $text = 'stuff http://hello.there/is=someone#here otherstuff'; - $expectedText = 'stuff http://hello.there/is=someone#here otherstuff'; - $processedText = text2clickable($text, ''); - $this->assertEquals($expectedText, $processedText); + $str = ' foo bar is important '; + $this->assertEquals('foo bar is important', normalize_spaces($str)); + $this->assertEquals('foo', normalize_spaces('foo')); + $this->assertEquals('', normalize_spaces('')); + $this->assertEquals(null, normalize_spaces(null)); } /** - * Test text2clickable a redirector set. + * Test arrays_combine */ - public function testText2clickableWithRedirector() + public function testCartesianProductGenerator() { - $text = 'stuff http://hello.there/is=someone#here otherstuff'; - $redirector = 'http://redirector.to'; - $expectedText = 'stuff http://hello.there/is=someone#here otherstuff'; - $processedText = text2clickable($text, $redirector); - $this->assertEquals($expectedText, $processedText); + $arr = [['ab', 'cd'], ['ef', 'gh'], ['ij', 'kl'], ['m']]; + $expected = [ + ['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, iterator_to_array(cartesian_product_generator($arr))); } /** - * Test testSpace2nbsp. + * Test date_format() with invalid parameter. */ - public function testSpace2nbsp() + public function testDateFormatInvalid() { - $text = ' Are you thrilled by flags ?'. PHP_EOL .' Really?'; - $expectedText = '  Are you   thrilled  by flags   ?'. PHP_EOL .' Really?'; - $processedText = space2nbsp($text); - $this->assertEquals($expectedText, $processedText); + $this->assertFalse(format_date([])); + $this->assertFalse(format_date(null)); } }