diff options
Diffstat (limited to 'www/wiki/tests/phpunit/includes/password/LayeredParameterizedPasswordTest.php')
-rw-r--r-- | www/wiki/tests/phpunit/includes/password/LayeredParameterizedPasswordTest.php | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/www/wiki/tests/phpunit/includes/password/LayeredParameterizedPasswordTest.php b/www/wiki/tests/phpunit/includes/password/LayeredParameterizedPasswordTest.php new file mode 100644 index 00000000..6a965a03 --- /dev/null +++ b/www/wiki/tests/phpunit/includes/password/LayeredParameterizedPasswordTest.php @@ -0,0 +1,63 @@ +<?php + +/** + * @covers LayeredParameterizedPassword + * @covers Password + */ +class LayeredParameterizedPasswordTest extends PasswordTestCase { + protected function getTypeConfigs() { + return [ + 'testLargeLayeredTop' => [ + 'class' => LayeredParameterizedPassword::class, + 'types' => [ + 'testLargeLayeredBottom', + 'testLargeLayeredBottom', + 'testLargeLayeredBottom', + 'testLargeLayeredBottom', + 'testLargeLayeredFinal', + ], + ], + 'testLargeLayeredBottom' => [ + 'class' => Pbkdf2Password::class, + 'algo' => 'sha512', + 'cost' => 1024, + 'length' => 512, + ], + 'testLargeLayeredFinal' => [ + 'class' => BcryptPassword::class, + 'cost' => 5, + ] + ]; + } + + protected function getValidTypes() { + return [ 'testLargeLayeredFinal' ]; + } + + public static function providePasswordTests() { + // phpcs:disable Generic.Files.LineLength + return [ + [ + true, + ':testLargeLayeredTop:sha512:1024:512!sha512:1024:512!sha512:1024:512!sha512:1024:512!5!vnRy+2SrSA0fHt3dwhTP5g==!AVnwfZsAQjn+gULv7FSGjA==!xvHUX3WcpkeSn1lvjWcvBg==!It+OC/N9tu+d3ByHhuB0BQ==!Tb.gqUOiD.aWktVwHM.Q/O!7CcyMfXUPky5ptyATJsR2nq3vUqtnBC', + 'testPassword123' + ], + ]; + // phpcs:enable + } + + /** + * @covers LayeredParameterizedPassword::partialCrypt + */ + public function testLargeLayeredPartialUpdate() { + /** @var ParameterizedPassword $partialPassword */ + $partialPassword = $this->passwordFactory->newFromType( 'testLargeLayeredBottom' ); + $partialPassword->crypt( 'testPassword123' ); + + /** @var LayeredParameterizedPassword $totalPassword */ + $totalPassword = $this->passwordFactory->newFromType( 'testLargeLayeredTop' ); + $totalPassword->partialCrypt( $partialPassword ); + + $this->assertTrue( $totalPassword->equals( 'testPassword123' ) ); + } +} |