mediawiki-extensions-OATHAuth/tests/phpunit/Key/TOTPKeyTest.php
Taavi Väänänen 370452d05b TOTPKey: Drop newFromString
Only used in tests.

Change-Id: I4eb020eb507d5342e4e5ab8f92bf1ee22db0056b
2024-01-11 16:19:14 +00:00

30 lines
950 B
PHP

<?php
namespace MediaWiki\Extension\OATHAuth\Tests\Key;
use MediaWiki\Extension\OATHAuth\Key\TOTPKey;
/**
* @covers \MediaWiki\Extension\OATHAuth\Key\TOTPKey
*/
class TOTPKeyTest extends \MediaWikiIntegrationTestCase {
public function testDeserialization() {
$key = TOTPKey::newFromRandom();
$deserialized = TOTPKey::newFromArray( json_decode( json_encode( $key ), true ) );
$this->assertSame( $key->getSecret(), $deserialized->getSecret() );
$this->assertSame( $key->getScratchTokens(), $deserialized->getScratchTokens() );
}
public function testIsScratchToken() {
$key = TOTPKey::newFromArray( [
'secret' => '123456',
'scratch_tokens' => [ '64SZLJTTPRI5XBUE' ],
] );
$this->assertTrue( $key->isScratchToken( '64SZLJTTPRI5XBUE' ) );
// Whitespace is stripped
$this->assertTrue( $key->isScratchToken( ' 64SZLJTTPRI5XBUE ' ) );
// Wrong token
$this->assertFalse( $key->isScratchToken( 'WIQGC24UJUFXQDW4' ) );
}
}