File: UserPasswordTest.php

package info (click to toggle)
phpmyadmin 4%3A5.2.1%2Bdfsg-1%2Bdeb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 131,332 kB
  • sloc: javascript: 212,681; php: 168,094; xml: 18,098; sql: 504; sh: 274; makefile: 205; python: 199
file content (77 lines) | stat: -rw-r--r-- 2,318 bytes parent folder | download
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),
            ],
        ];
    }
}