Issue #2046207 by jhedstrom, Mile23: Expand phpunit tests for \Drupal\Component\Utility\Crypt.
parent
dfce8c0722
commit
3b91bd163a
|
@ -14,6 +14,9 @@ use Drupal\Component\Utility\Crypt;
|
|||
* Tests random bytes generation.
|
||||
*
|
||||
* @see \Drupal\Component\Utility\Crypt
|
||||
*
|
||||
* @group Drupal
|
||||
* @group Crypt
|
||||
*/
|
||||
class CryptTest extends UnitTestCase {
|
||||
|
||||
|
@ -37,4 +40,69 @@ class CryptTest extends UnitTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests \Drupal\Component\Utility\Crypt::hashBase64().
|
||||
*
|
||||
* @param string $data
|
||||
* Data to hash.
|
||||
* @param string $expected_hash
|
||||
* Expected result from hashing $data.
|
||||
*
|
||||
* @dataProvider providerTestHashBase64
|
||||
*/
|
||||
public function testHashBase64($data, $expected_hash) {
|
||||
$hash = Crypt::hashBase64($data);
|
||||
$this->assertEquals($expected_hash, $hash, 'The correct hash was not calculated.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests \Drupal\Component\Utility\Crypt::hmacBase64().
|
||||
*
|
||||
* @param string $data
|
||||
* Data to hash.
|
||||
* @param string $key
|
||||
* Key to use in hashing process.
|
||||
* @param string $expected_hmac
|
||||
* Expected result from hashing $data using $key.
|
||||
*
|
||||
* @dataProvider providerTestHmacBase64
|
||||
*/
|
||||
public function testHmacBase64($data, $key, $expected_hmac) {
|
||||
$hmac = Crypt::hmacBase64($data, $key);
|
||||
$this->assertEquals($expected_hmac, $hmac, 'The correct hmac was not calculated.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides data for self::testHashBase64().
|
||||
*
|
||||
* @return array Test data.
|
||||
*/
|
||||
public function providerTestHashBase64() {
|
||||
return array(
|
||||
array(
|
||||
'data' => 'The SHA (Secure Hash Algorithm) is one of a number of cryptographic hash functions. A cryptographic hash is like a signature for a text or a data file. SHA-256 algorithm generates an almost-unique, fixed size 256-bit (32-byte) hash. Hash is a one way function – it cannot be decrypted back. This makes it suitable for password validation, challenge hash authentication, anti-tamper, digital signatures.',
|
||||
'expectedHash' => '034rT6smZAVRxpq8O98cFFNLIVx_Ph1EwLZQKcmRR_s',
|
||||
),
|
||||
array(
|
||||
'data' => 'SHA-256 is one of the successor hash functions to SHA-1, and is one of the strongest hash functions available.',
|
||||
'expected_hash' => 'yuqkDDYqprL71k4xIb6K6D7n76xldO4jseRhEkEE6SI',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides data for self::testHmacBase64().
|
||||
*
|
||||
* @return array Test data.
|
||||
*/
|
||||
public function providerTestHmacBase64() {
|
||||
return array(
|
||||
array(
|
||||
'data' => 'Calculates a base-64 encoded, URL-safe sha-256 hmac.',
|
||||
'key' => 'secret-key',
|
||||
'expected_hmac' => '2AaH63zwjhekWZlEpAiufyfhAHIzbQhl9Hd9oCi3_c8',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue