assertTrue( $statusOK->isGood(), 'Password is longer than minimal policy' ); $statusShort = PasswordPolicyChecks::checkMinimalPasswordLength( 10, // policy value User::newFromName( 'user' ), // User 'password' // password ); $this->assertFalse( $statusShort->isGood(), 'Password is shorter than minimal policy' ); $this->assertTrue( $statusShort->isOK(), 'Password is shorter than minimal policy, not fatal' ); } /** * @covers PasswordPolicyChecks::checkMinimumPasswordLengthToLogin */ public function testCheckMinimumPasswordLengthToLogin() { $statusOK = PasswordPolicyChecks::checkMinimumPasswordLengthToLogin( 3, // policy value User::newFromName( 'user' ), // User 'password' // password ); $this->assertTrue( $statusOK->isGood(), 'Password is longer than minimal policy' ); $statusShort = PasswordPolicyChecks::checkMinimumPasswordLengthToLogin( 10, // policy value User::newFromName( 'user' ), // User 'password' // password ); $this->assertFalse( $statusShort->isGood(), 'Password is shorter than minimum login policy' ); $this->assertFalse( $statusShort->isOK(), 'Password is shorter than minimum login policy, fatal' ); } /** * @covers PasswordPolicyChecks::checkMaximalPasswordLength */ public function testCheckMaximalPasswordLength() { $statusOK = PasswordPolicyChecks::checkMaximalPasswordLength( 100, // policy value User::newFromName( 'user' ), // User 'password' // password ); $this->assertTrue( $statusOK->isGood(), 'Password is shorter than maximal policy' ); $statusLong = PasswordPolicyChecks::checkMaximalPasswordLength( 4, // policy value User::newFromName( 'user' ), // User 'password' // password ); $this->assertFalse( $statusLong->isGood(), 'Password is longer than maximal policy' ); $this->assertFalse( $statusLong->isOK(), 'Password is longer than maximal policy, fatal' ); } /** * @covers PasswordPolicyChecks::checkPasswordCannotMatchUsername */ public function testCheckPasswordCannotMatchUsername() { $statusOK = PasswordPolicyChecks::checkPasswordCannotMatchUsername( 1, // policy value User::newFromName( 'user' ), // User 'password' // password ); $this->assertTrue( $statusOK->isGood(), 'Password does not match username' ); $statusLong = PasswordPolicyChecks::checkPasswordCannotMatchUsername( 1, // policy value User::newFromName( 'user' ), // User 'user' // password ); $this->assertFalse( $statusLong->isGood(), 'Password matches username' ); $this->assertTrue( $statusLong->isOK(), 'Password matches username, not fatal' ); } /** * @covers PasswordPolicyChecks::checkPasswordCannotMatchBlacklist */ public function testCheckPasswordCannotMatchBlacklist() { $statusOK = PasswordPolicyChecks::checkPasswordCannotMatchBlacklist( true, // policy value User::newFromName( 'Username' ), // User 'AUniquePassword' // password ); $this->assertTrue( $statusOK->isGood(), 'Password is not on blacklist' ); $statusLong = PasswordPolicyChecks::checkPasswordCannotMatchBlacklist( true, // policy value User::newFromName( 'Useruser1' ), // User 'Passpass1' // password ); $this->assertFalse( $statusLong->isGood(), 'Password matches blacklist' ); $this->assertTrue( $statusLong->isOk(), 'Password matches blacklist, not fatal' ); } }