Files
DomFramework/Tests/EncryptTest.php
2022-11-25 21:21:30 +01:00

173 lines
4.6 KiB
PHP

<?php
/** DomFramework - Tests
* @package domframework
* @author Dominique Fournier <dominique@fournier38.fr>
*/
namespace Domframework\Tests;
use Domframework\Encrypt;
/** Test the Encrypt.php file */
class EncryptTest extends \PHPUnit_Framework_TestCase
{
/** Check the length of the otken with cipher
*/
public function testEncrypt1()
{
$encrypt = new Encrypt();
$res = $encrypt->encrypt(
"TextToEncode",
"123456789012345678901234"
);
$this->assertSame(strlen($res), 24);
}
/** Check if the encrypt/decrypt process return the same result
*/
public function testEncrypt2()
{
$encrypt = new Encrypt();
$payload = "TextToEncode";
$ckey = "123456789012345678901234";
$token = $encrypt->encrypt($payload, $ckey);
$res = $encrypt->decrypt($token, $ckey);
$this->assertSame($res, $payload);
}
/** Check if the encrypted part is well unreadable
*/
public function testEncrypt3()
{
$encrypt = new Encrypt();
$payload = "TextToEncode";
$token = $encrypt->encrypt($payload, "123456789012345678901234");
$res = strpos($token, "Text");
$this->assertSame($res, false);
}
/** Encrypt : Invalid Cipher method
*/
public function testInvalidCypher1()
{
$this->expectException(
"Exception",
"Invalid cipher provided to encrypt method : doesn't exists in OpenSSL",
500
);
$encrypt = new Encrypt();
$payload = "TextToEncode";
$token = $encrypt->encrypt($payload, "123456789012345678901234", "TOTO");
}
/** Encrypt : Invalid Payload to encrypt
*/
public function testInvalidPayload()
{
$this->expectException(
"Exception",
"Invalid payload provided to encrypt method : Not a string",
500
);
$encrypt = new Encrypt();
$payload = array ("Invalid");
$token = $encrypt->encrypt($payload, "123456789012345678901234");
}
/** Encrypt : Invalid Cipher Key to encrypt
*/
public function testInvalidCipherKey()
{
$this->expectException(
"Exception",
"Invalid cipherKey provided to encrypt method : " .
"length different of 24 chars",
500
);
$encrypt = new Encrypt();
$payload = "Payload";
$token = $encrypt->encrypt($payload, "124");
}
/** Decrypt : invalid cipher text
*/
public function testDecryptInvalidCipherKey()
{
$this->expectException(
"Exception",
"Invalid cipherKey provided to decrypt method : " .
"length different of 24 chars",
500
);
$encrypt = new Encrypt();
$token = $encrypt->decrypt("zfz", "124");
}
/** Decrypt : empty cipher string
*/
public function testDecryptEmptyCipherString()
{
$this->expectException(
"Exception",
"Invalid ciphertext provided to decrypt method : empty string",
500
);
$encrypt = new Encrypt();
$token = $encrypt->decrypt("", "124");
}
/** Decrypt : Not a string cypher
*/
public function testDecryptNotStringCipherString()
{
$this->expectException(
"Exception",
"Invalid ciphertext provided to decrypt method : not a string",
500
);
$encrypt = new Encrypt();
$token = $encrypt->decrypt(array (), "124");
}
/** Decrypt : Not a string cypher key
*/
public function testDecryptNotStringCipherKey()
{
$this->expectException(
"Exception",
"Invalid cipherkey provided to decrypt method : not a string",
500
);
$encrypt = new Encrypt();
$token = $encrypt->decrypt("1224", array ());
}
/** Decrypt : Not a cipher method string
*/
public function testDecryptNotStringCipherMethod()
{
$this->expectException(
"Exception",
"Invalid cipherMethod provided to decrypt method : not a string",
500
);
$encrypt = new Encrypt();
$token = $encrypt->decrypt("1224", "1234", array ());
}
/** Decrypt : Not a known cipher method
*/
public function testDecryptUnknownCipherMethod()
{
$this->expectException(
"Exception",
"Invalid cipherMethod provided to decrypt method : " .
"doesn't exists in OpenSSL",
500
);
$encrypt = new Encrypt();
$token = $encrypt->decrypt("1224", "1234", "unknown");
}
}