X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests%2FUtilsTest.php;h=869a9695be1b2075eac0e6f0e9eadcdc170ed5b7;hb=1abe655597da7b3c5b59146c4351eef59f69514c;hp=311d4bfb4979016146549518637f9af931e2b3e3;hpb=d01c234235411bafb97661d335fcb6ea1e67ffbc;p=github%2Fshaarli%2FShaarli.git diff --git a/tests/UtilsTest.php b/tests/UtilsTest.php old mode 100755 new mode 100644 index 311d4bfb..869a9695 --- a/tests/UtilsTest.php +++ b/tests/UtilsTest.php @@ -18,6 +18,13 @@ class UtilsTest extends PHPUnit_Framework_TestCase // Session ID hashes protected static $sidHashes = null; + // Log file + protected static $testLogFile = 'tests.log'; + + // Expected log date format + protected static $dateFormat = 'Y/m/d_H:i:s'; + + /** * Assign reference data */ @@ -26,6 +33,65 @@ class UtilsTest extends PHPUnit_Framework_TestCase self::$sidHashes = ReferenceSessionIdHashes::getHashes(); } + /** + * Resets test data before each test + */ + protected function setUp() + { + if (file_exists(self::$testLogFile)) { + unlink(self::$testLogFile); + } + } + + /** + * Returns a list of the elements from the last logged entry + * + * @return list (date, ip address, message) + */ + protected function getLastLogEntry() + { + $logFile = file(self::$testLogFile); + return explode(' - ', trim(array_pop($logFile), '\n')); + } + + /** + * Log a message to a file - IPv4 client address + */ + public function testLogmIp4() + { + $logMessage = 'IPv4 client connected'; + logm(self::$testLogFile, '127.0.0.1', $logMessage); + list($date, $ip, $message) = $this->getLastLogEntry(); + + $this->assertInstanceOf( + 'DateTime', + DateTime::createFromFormat(self::$dateFormat, $date) + ); + $this->assertTrue( + filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) !== false + ); + $this->assertEquals($logMessage, $message); + } + + /** + * Log a message to a file - IPv6 client address + */ + public function testLogmIp6() + { + $logMessage = 'IPv6 client connected'; + logm(self::$testLogFile, '2001:db8::ff00:42:8329', $logMessage); + list($date, $ip, $message) = $this->getLastLogEntry(); + + $this->assertInstanceOf( + 'DateTime', + DateTime::createFromFormat(self::$dateFormat, $date) + ); + $this->assertTrue( + filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) !== false + ); + $this->assertEquals($logMessage, $message); + } + /** * Represent a link by its hash */ @@ -138,37 +204,6 @@ class UtilsTest extends PHPUnit_Framework_TestCase $this->assertEquals('?', generateLocation($ref, 'localhost')); } - /** - * Check supported PHP versions - */ - public function testCheckSupportedPHPVersion() - { - $minVersion = '5.3'; - checkPHPVersion($minVersion, '5.4.32'); - checkPHPVersion($minVersion, '5.5'); - checkPHPVersion($minVersion, '5.6.10'); - } - - /** - * Check a unsupported PHP version - * @expectedException Exception - * @expectedExceptionMessageRegExp /Your PHP version is obsolete/ - */ - public function testCheckSupportedPHPVersion51() - { - checkPHPVersion('5.3', '5.1.0'); - } - - /** - * Check another unsupported PHP version - * @expectedException Exception - * @expectedExceptionMessageRegExp /Your PHP version is obsolete/ - */ - public function testCheckSupportedPHPVersion52() - { - checkPHPVersion('5.3', '5.2'); - } - /** * Test is_session_id_valid with a valid ID - TEST ALL THE HASHES! * @@ -218,4 +253,41 @@ class UtilsTest extends PHPUnit_Framework_TestCase is_session_id_valid('c0ZqcWF3VFE2NmJBdm1HMVQ0ZHJ3UmZPbTFsNGhkNHI=') ); } + + /** + * Test text2clickable without a redirector being set. + */ + public function testText2clickableWithoutRedirector() + { + $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); + } + + /** + * Test text2clickable a redirector set. + */ + public function testText2clickableWithRedirector() + { + $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); + } + + /** + * Test testSpace2nbsp. + */ + public function testSpace2nbsp() + { + $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); + } }