X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests%2FUtilsTest.php;h=02eecda216f8c03adafe50f57bcb32bdf7ace787;hb=refs%2Fpull%2F355%2Fhead;hp=28e15f5a651268e24e8de545824821fd9ba9ca6a;hpb=96db105e4c0833324f7168edb5673278de8ccd54;p=github%2Fshaarli%2FShaarli.git diff --git a/tests/UtilsTest.php b/tests/UtilsTest.php index 28e15f5a..02eecda2 100644 --- a/tests/UtilsTest.php +++ b/tests/UtilsTest.php @@ -4,12 +4,28 @@ */ require_once 'application/Utils.php'; +require_once 'tests/utils/ReferenceSessionIdHashes.php'; + +// Initialize reference data before PHPUnit starts a session +ReferenceSessionIdHashes::genAllHashes(); + /** * Unitary tests for Shaarli utilities */ class UtilsTest extends PHPUnit_Framework_TestCase { + // Session ID hashes + protected static $sidHashes = null; + + /** + * Assign reference data + */ + public static function setUpBeforeClass() + { + self::$sidHashes = ReferenceSessionIdHashes::getHashes(); + } + /** * Represent a link by its hash */ @@ -102,6 +118,8 @@ class UtilsTest extends PHPUnit_Framework_TestCase $this->assertEquals($ref, generateLocation($ref, 'localhost')); $ref = 'http://localhost:8080/?test'; $this->assertEquals($ref, generateLocation($ref, 'localhost:8080')); + $ref = '?localreferer#hash'; + $this->assertEquals($ref, generateLocation($ref, 'localhost:8080')); } /** @@ -121,34 +139,89 @@ class UtilsTest extends PHPUnit_Framework_TestCase } /** - * Check supported PHP versions + * Test is_session_id_valid with a valid ID - TEST ALL THE HASHES! + * + * This tests extensively covers all hash algorithms / bit representations + */ + public function testIsAnyHashSessionIdValid() + { + foreach (self::$sidHashes as $algo => $bpcs) { + foreach ($bpcs as $bpc => $hash) { + $this->assertTrue(is_session_id_valid($hash)); + } + } + } + + /** + * Test is_session_id_valid with a valid ID - SHA-1 hashes + */ + public function testIsSha1SessionIdValid() + { + $this->assertTrue(is_session_id_valid(sha1('shaarli'))); + } + + /** + * Test is_session_id_valid with a valid ID - SHA-256 hashes + */ + public function testIsSha256SessionIdValid() + { + $this->assertTrue(is_session_id_valid(hash('sha256', 'shaarli'))); + } + + /** + * Test is_session_id_valid with a valid ID - SHA-512 hashes + */ + public function testIsSha512SessionIdValid() + { + $this->assertTrue(is_session_id_valid(hash('sha512', 'shaarli'))); + } + + /** + * Test is_session_id_valid with invalid IDs. + */ + public function testIsSessionIdInvalid() + { + $this->assertFalse(is_session_id_valid('')); + $this->assertFalse(is_session_id_valid(array())); + $this->assertFalse( + is_session_id_valid('c0ZqcWF3VFE2NmJBdm1HMVQ0ZHJ3UmZPbTFsNGhkNHI=') + ); + } + + /** + * Test text2clickable without a redirector being set. */ - public function testCheckSupportedPHPVersion() + public function testText2clickableWithoutRedirector() { - $minVersion = '5.3'; - checkPHPVersion($minVersion, '5.4.32'); - checkPHPVersion($minVersion, '5.5'); - checkPHPVersion($minVersion, '5.6.10'); + $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); } /** - * Check a unsupported PHP version - * @expectedException Exception - * @expectedExceptionMessageRegExp /Your PHP version is obsolete/ + * Test text2clickable a redirector set. */ - public function testCheckSupportedPHPVersion51() + public function testText2clickableWithRedirector() { - checkPHPVersion('5.3', '5.1.0'); + $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); } /** - * Check another unsupported PHP version - * @expectedException Exception - * @expectedExceptionMessageRegExp /Your PHP version is obsolete/ + * Test testSpace2nbsp. */ - public function testCheckSupportedPHPVersion52() + public function testSpace2nbsp() { - checkPHPVersion('5.3', '5.2'); + $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); } } -?>