4require_once 
'Services/Password/classes/encoders/class.ilBcryptPhpPasswordEncoder.php';
 
    5require_once 
'Services/Password/test/ilPasswordBaseTest.php';
 
   41        if (version_compare(phpversion(), 
'5.5.0', 
'<')) {
 
   42            $this->markTestSkipped(
'Requires PHP >= 5.5.0');
 
   52        for (
$i = 4; 
$i <= 31; 
$i++) {
 
   66        $this->assertTrue((
int) $default_costs_encoder->getCosts() > 4 && (
int) $default_costs_encoder->getCosts() < 32);
 
   69            'cost' => self::VALID_COSTS
 
   71        $this->assertInstanceOf(
'ilBcryptPhpPasswordEncoder', $encoder);
 
   72        $this->assertEquals(self::VALID_COSTS, $encoder->getCosts());
 
   82        $this->assertEquals(4, $encoder->
getCosts());
 
  119        $encoder->
setCosts(self::VALID_COSTS);
 
  121        $this->assertTrue($encoder->
isPasswordValid($encoded_password, self::PASSWORD, 
''));
 
  122        $this->assertFalse($encoder->
isPasswordValid($encoded_password, self::WRONG_PASSWORD, 
''));
 
  133        $encoder->
setCosts(self::VALID_COSTS);
 
  142        $encoder->
setCosts(self::VALID_COSTS);
 
  143        $this->assertFalse($encoder->
isPasswordValid(
'encoded', str_repeat(
'a', 5000), 
''));
 
  151        $this->assertEquals(
'bcryptphp', $encoder->
getName());
 
  162        $this->assertTrue($costs_default > 4 && $costs_default < 32);
 
  163        $this->assertTrue($costs_target > 4 && $costs_target < 32);
 
  164        $this->assertInternalType(
'int', $costs_default);
 
  165        $this->assertInternalType(
'int', $costs_target);
 
  166        $this->assertNotEquals($costs_default, $costs_target);
 
An exception for terminatinating execution or to throw for unit testing.
requiresSalt()
{Returns whether or not the encoder requires a salt.boolean}
testInstanceCanBeCreated()
testCostsCanBeSetInRange($costs, ilBcryptPhpPasswordEncoder $encoder)
@depends testInstanceCanBeCreated @dataProvider costsProvider
testCostsCannotBeSetBelowRange(ilBcryptPhpPasswordEncoder $encoder)
@depends testInstanceCanBeCreated @expectedException ilPasswordException
testReencodingIsDetectedWhenNecessary(ilBcryptPhpPasswordEncoder $encoder)
@depends testInstanceCanBeCreated
testCostsCanBeDeterminedDynamically(ilBcryptPhpPasswordEncoder $encoder)
@depends testInstanceCanBeCreated
testExceptionIsRaisedIfThePasswordExceedsTheSupportedLengthOnEncoding(ilBcryptPhpPasswordEncoder $encoder)
@depends testInstanceCanBeCreated @expectedException ilPasswordException
testEncoderDoesNotRelyOnSalts(ilBcryptPhpPasswordEncoder $encoder)
@depends testInstanceCanBeCreated
testCostsCannotBeSetAboveRange(ilBcryptPhpPasswordEncoder $encoder)
@depends testInstanceCanBeCreated @expectedException ilPasswordException
testNameShouldBeBcryptPhp(ilBcryptPhpPasswordEncoder $encoder)
@depends testInstanceCanBeCreated
testCostsCanBeRetrievedWhenCostsAreSet(ilBcryptPhpPasswordEncoder $encoder)
@depends testInstanceCanBeCreated
testPasswordShouldBeCorrectlyEncodedAndVerified(ilBcryptPhpPasswordEncoder $encoder)
@depends testInstanceCanBeCreated
skipIfPhpVersionIsNotSupported()
testPasswordVerificationShouldFailIfTheRawPasswordExceedsTheSupportedLength(ilBcryptPhpPasswordEncoder $encoder)
@depends testInstanceCanBeCreated
requiresReencoding($encoded)
{{Returns whether or not the a encoded password needs to be re-encoded.boolean}}
benchmarkCost($time_target=0.05)
isPasswordValid($encoded, $raw, $salt)
{Checks a raw password against an encoded password.The raw password has to be injected into the encod...
encodePassword($raw, $salt)
{Encodes the raw password.string The encoded password}
assertException($exception_class)