*/ 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"); } }