wiki.techinc.nl/tests/phpunit/includes/password/PasswordPolicyChecksTest.php
Petr Pchelko 48402ba83a Remove User from password policy check interfaces
This doesn't yet completely eliminate the dependency
on user, because the individual password policy check
functions are still documented to receive User.
Password policy check functions can be defined by
extensions, and configured via $wgPasswordPolicy,
so we still need to unwrap user identity to a User
before passing into the actual check. But, this removes
User from the PassworkPolicyCheck interface.

Change-Id: If813b9b0ebbeb89bc61331c9da8efb86e591bfb9
2021-06-11 10:21:14 -07:00

51 lines
1.8 KiB
PHP

<?php
/**
* Testing password-policy check functions
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/gpl.html
*
* @file
*/
use MediaWiki\User\UserIdentityValue;
/**
* See also the unit tests at \MediaWiki\Tests\Unit\PasswordPolicyChecksTest
*/
class PasswordPolicyChecksTest extends MediaWikiIntegrationTestCase {
/**
* @covers PasswordPolicyChecks::checkPasswordCannotMatchUsername
*
* Uses MediaWikiServices for the content language, so can't move to unit tests
*/
public function testCheckPasswordCannotMatchUsername() {
$user = UserIdentityValue::newRegistered( 42, 'user' );
$statusOK = PasswordPolicyChecks::checkPasswordCannotMatchUsername(
1, // policy value
$user, // User
'password' // password
);
$this->assertTrue( $statusOK->isGood(), 'Password does not match username' );
$statusLong = PasswordPolicyChecks::checkPasswordCannotMatchUsername(
1, // policy value
$user, // User
'user' // password
);
$this->assertFalse( $statusLong->isGood(), 'Password matches username' );
$this->assertTrue( $statusLong->isOK(), 'Password matches username, not fatal' );
}
}