Add @covers tags for more tests
[lhc/web/wiklou.git] / tests / phpunit / includes / utils / MWCryptHashTest.php
1 <?php
2
3 /**
4 * @group Hash
5 *
6 * @covers MWCryptHash
7 */
8 class MWCryptHashTest extends PHPUnit_Framework_TestCase {
9
10 public function testHashLength() {
11 if ( MWCryptHash::hashAlgo() !== 'whirlpool' ) {
12 $this->markTestSkipped( 'Hash algorithm isn\'t whirlpool' );
13 }
14
15 $this->assertEquals( 64, MWCryptHash::hashLength(), 'Raw hash length' );
16 $this->assertEquals( 128, MWCryptHash::hashLength( false ), 'Hex hash length' );
17 }
18
19 public function testHash() {
20 if ( MWCryptHash::hashAlgo() !== 'whirlpool' ) {
21 $this->markTestSkipped( 'Hash algorithm isn\'t whirlpool' );
22 }
23
24 $data = 'foobar';
25 // @codingStandardsIgnoreStart Generic.Files.LineLength
26 $hash = '9923afaec3a86f865bb231a588f453f84e8151a2deb4109aebc6de4284be5bebcff4fab82a7e51d920237340a043736e9d13bab196006dcca0fe65314d68eab9';
27 // @codingStandardsIgnoreEnd
28
29 $this->assertEquals(
30 hex2bin( $hash ),
31 MWCryptHash::hash( $data ),
32 'Raw hash'
33 );
34 $this->assertEquals(
35 $hash,
36 MWCryptHash::hash( $data, false ),
37 'Hex hash'
38 );
39 }
40
41 public function testHmac() {
42 if ( MWCryptHash::hashAlgo() !== 'whirlpool' ) {
43 $this->markTestSkipped( 'Hash algorithm isn\'t whirlpool' );
44 }
45
46 $data = 'foobar';
47 $key = 'secret';
48 // @codingStandardsIgnoreStart Generic.Files.LineLength
49 $hash = 'ddc94177b2020e55ce2049199fd9cc6327f416ff6dc621cc34cb43d9bec61d73372b4790c0e24957f565ecaf2d42821e6303619093e99cbe14a3b9250bda5f81';
50 // @codingStandardsIgnoreEnd
51
52 $this->assertEquals(
53 hex2bin( $hash ),
54 MWCryptHash::hmac( $data, $key ),
55 'Raw hmac'
56 );
57 $this->assertEquals(
58 $hash,
59 MWCryptHash::hmac( $data, $key, false ),
60 'Hex hmac'
61 );
62 }
63
64 }