// 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
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);
}
/**
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 <a href="http://hello.there/is=someone#here">http://hello.there/is=someone#here</a> 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 <a href="'.
- $redirector .
- urlencode('http://hello.there/is=someone#here') .
- '">http://hello.there/is=someone#here</a> 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));
}
}