1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-04-19 23:32:02 +02:00

[feature/passwords] Fix tests after changes to phpBB hashing functions

PHPBB3-11610
This commit is contained in:
Marc Alexander 2013-10-02 17:24:11 +02:00
parent 3aba3235d5
commit e7e11112b1
2 changed files with 59 additions and 1 deletions

View File

@ -13,6 +13,33 @@ class phpbb_security_hash_test extends phpbb_test_case
{
public function test_check_hash_with_phpass()
{
global $phpbb_container;
$config = new phpbb\config\config(array());
$phpbb_container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
$driver_helper = new phpbb\passwords\driver\helper($config);
$passwords_drivers = array(
'passwords.driver.bcrypt' => new phpbb\passwords\driver\bcrypt($config, $driver_helper),
'passwords.driver.bcrypt_2y' => new phpbb\passwords\driver\bcrypt_2y($config, $driver_helper),
'passwords.driver.salted_md5' => new phpbb\passwords\driver\salted_md5($config, $driver_helper),
'passwords.driver.phpass' => new phpbb\passwords\driver\phpass($config, $driver_helper),
);
foreach ($passwords_drivers as $key => $driver)
{
$driver->set_name($key);
}
$passwords_helper = new phpbb\passwords\helper;
// Set up passwords manager
$passwords_manager = new phpbb\passwords\manager($config, $passwords_drivers, $passwords_helper, 'passwords.driver.bcrypt_2y');
$phpbb_container
->expects($this->any())
->method('get')
->with('passwords.manager')
->will($this->returnValue($passwords_manager));
$this->assertTrue(phpbb_check_hash('test', '$H$9isfrtKXWqrz8PvztXlL3.daw4U0zI1'));
$this->assertTrue(phpbb_check_hash('test', '$P$9isfrtKXWqrz8PvztXlL3.daw4U0zI1'));
$this->assertFalse(phpbb_check_hash('foo', '$H$9isfrtKXWqrz8PvztXlL3.daw4U0zI1'));

View File

@ -509,6 +509,7 @@ class phpbb_functional_test_case extends phpbb_test_case
set_config(null, null, null, $config);
set_config_count(null, null, null, $config);
$phpbb_dispatcher = new phpbb_mock_event_dispatcher();
$passwords_manager = $this->get_passwords_manager();
$user_row = array(
'username' => $username,
@ -518,7 +519,7 @@ class phpbb_functional_test_case extends phpbb_test_case
'user_lang' => 'en',
'user_timezone' => 0,
'user_dateformat' => '',
'user_password' => phpbb_hash($username . $username),
'user_password' => $passwords_manager->hash($username . $username),
);
return user_add($user_row);
}
@ -995,4 +996,34 @@ class phpbb_functional_test_case extends phpbb_test_case
}
return null;
}
/**
* Return a passwords manager instance
*
* @return phpbb\passwords\manager
*/
public function get_passwords_manager()
{
// Prepare dependencies for manager and driver
$config = new phpbb\config\config(array());
$driver_helper = new phpbb\passwords\driver\helper($config);
$passwords_drivers = array(
'passwords.driver.bcrypt' => new phpbb\passwords\driver\bcrypt($config, $driver_helper),
'passwords.driver.bcrypt_2y' => new phpbb\passwords\driver\bcrypt_2y($config, $driver_helper),
'passwords.driver.salted_md5' => new phpbb\passwords\driver\salted_md5($config, $driver_helper),
'passwords.driver.phpass' => new phpbb\passwords\driver\phpass($config, $driver_helper),
);
foreach ($passwords_drivers as $key => $driver)
{
$driver->set_name($key);
}
$passwords_helper = new phpbb\passwords\helper;
// Set up passwords manager
$manager = new phpbb\passwords\manager($config, $passwords_drivers, $passwords_helper, 'passwords.driver.bcrypt_2y');
return $manager;
}
}