+
+ /**
+ * 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 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 normalize_spaces.
+ */
+ public function testNormalizeSpace()
+ {
+ $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 arrays_combine
+ */
+ public function testCartesianProductGenerator()
+ {
+ $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 date_format() with invalid parameter.
+ */
+ public function testDateFormatInvalid()
+ {
+ $this->assertFalse(format_date([]));
+ $this->assertFalse(format_date(null));
+ }