1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
<?php
declare(strict_types=1);
namespace PhpMyAdmin\Tests;
use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\ConfigStorage\RelationCleanup;
use PhpMyAdmin\Message;
use PhpMyAdmin\Server\Plugins;
use PhpMyAdmin\Server\Privileges;
use PhpMyAdmin\Template;
use PhpMyAdmin\UserPassword;
use function str_repeat;
/**
* @covers \PhpMyAdmin\UserPassword
*/
class UserPasswordTest extends AbstractTestCase
{
/** @var UserPassword */
private $object;
protected function setUp(): void
{
parent::setUp();
$relation = new Relation($GLOBALS['dbi']);
$serverPrivileges = new Privileges(
new Template(),
$GLOBALS['dbi'],
$relation,
new RelationCleanup($GLOBALS['dbi'], $relation),
new Plugins($GLOBALS['dbi'])
);
$this->object = new UserPassword($serverPrivileges);
}
/**
* @dataProvider providerSetChangePasswordMsg
*/
public function testSetChangePasswordMsg(
bool $error,
Message $message,
string $noPassword,
string $password,
string $passwordConfirmation
): void {
$_POST['nopass'] = $noPassword;
$_POST['pma_pw'] = $password;
$_POST['pma_pw2'] = $passwordConfirmation;
$this->assertEquals(['error' => $error, 'msg' => $message], $this->object->setChangePasswordMsg());
}
/**
* @psalm-return array{0: bool, 1: Message, 2: string, 3: string, 4: string}[]
*/
public function providerSetChangePasswordMsg(): array
{
return [
[false, Message::success('The profile has been updated.'), '1', '', ''],
[true, Message::error('The password is empty!'), '0', '', ''],
[true, Message::error('The password is empty!'), '0', 'a', ''],
[true, Message::error('The password is empty!'), '0', '', 'a'],
[true, Message::error('The passwords aren\'t the same!'), '0', 'a', 'b'],
[true, Message::error('Password is too long!'), '0', str_repeat('a', 257), str_repeat('a', 257)],
[
false,
Message::success('The profile has been updated.'),
'0',
str_repeat('a', 256),
str_repeat('a', 256),
],
];
}
}
|