diff options
author | Maat <maat-pub@mageia.biz> | 2020-05-08 21:52:11 +0200 |
---|---|---|
committer | Maat <maat-pub@mageia.biz> | 2020-05-08 21:52:11 +0200 |
commit | 8ea437e30605e0f66b5220bf904a61d7c1d11ddd (patch) | |
tree | e0db2bb4a012d5b06a633160b19f62f4868ecd28 /tests/passwords | |
parent | 36bc1870f21fac04736a1049c1d5b8e127d729f4 (diff) | |
parent | 2fdd46b36431ae0f58bb2e78e42553168db9a0ff (diff) | |
download | forums-8ea437e30605e0f66b5220bf904a61d7c1d11ddd.tar forums-8ea437e30605e0f66b5220bf904a61d7c1d11ddd.tar.gz forums-8ea437e30605e0f66b5220bf904a61d7c1d11ddd.tar.bz2 forums-8ea437e30605e0f66b5220bf904a61d7c1d11ddd.tar.xz forums-8ea437e30605e0f66b5220bf904a61d7c1d11ddd.zip |
Merge remote-tracking branch 'upstream/prep-release-3.2.9'
Diffstat (limited to 'tests/passwords')
-rw-r--r-- | tests/passwords/drivers_test.php | 23 | ||||
-rw-r--r-- | tests/passwords/manager_test.php | 54 |
2 files changed, 73 insertions, 4 deletions
diff --git a/tests/passwords/drivers_test.php b/tests/passwords/drivers_test.php index 5f9fd523c9..01c69a38bb 100644 --- a/tests/passwords/drivers_test.php +++ b/tests/passwords/drivers_test.php @@ -23,8 +23,8 @@ class phpbb_passwords_helper_test extends \phpbb_test_case $php_ext = 'php'; $this->passwords_drivers = array( - 'passwords.driver.bcrypt_2y' => new \phpbb\passwords\driver\bcrypt_2y($config, $this->driver_helper), - 'passwords.driver.bcrypt' => new \phpbb\passwords\driver\bcrypt($config, $this->driver_helper), + 'passwords.driver.bcrypt_2y' => new \phpbb\passwords\driver\bcrypt_2y($config, $this->driver_helper, 10), + 'passwords.driver.bcrypt' => new \phpbb\passwords\driver\bcrypt($config, $this->driver_helper, 10), 'passwords.driver.salted_md5' => new \phpbb\passwords\driver\salted_md5($config, $this->driver_helper), 'passwords.driver.phpass' => new \phpbb\passwords\driver\phpass($config, $this->driver_helper), 'passwords.driver.sha1_smf' => new \phpbb\passwords\driver\sha1_smf($config, $this->driver_helper), @@ -413,4 +413,23 @@ class phpbb_passwords_helper_test extends \phpbb_test_case ); return strtr($string, $transform); } + + public function data_needs_rehash() + { + return array( + array('passwords.driver.bcrypt_2y', '$2y$10$somerandomhash', false), + array('passwords.driver.bcrypt', '$2a$10$somerandomhash', false), + array('passwords.driver.salted_md5', 'foobar', false), + array('passwords.driver.bcrypt_2y', '$2y$9$somerandomhash', true), + array('passwords.driver.bcrypt', '$2a$04$somerandomhash', true), + ); + } + + /** + * @dataProvider data_needs_rehash + */ + public function test_needs_rehash($driver, $hash, $expected) + { + $this->assertSame($this->passwords_drivers[$driver]->needs_rehash($hash), $expected); + } } diff --git a/tests/passwords/manager_test.php b/tests/passwords/manager_test.php index 333834ee07..0410d7035f 100644 --- a/tests/passwords/manager_test.php +++ b/tests/passwords/manager_test.php @@ -29,8 +29,8 @@ class phpbb_passwords_manager_test extends \phpbb_test_case $php_ext = 'php'; $this->passwords_drivers = array( - 'passwords.driver.bcrypt_2y' => new \phpbb\passwords\driver\bcrypt_2y($config, $this->driver_helper), - 'passwords.driver.bcrypt' => new \phpbb\passwords\driver\bcrypt($config, $this->driver_helper), + 'passwords.driver.bcrypt_2y' => new \phpbb\passwords\driver\bcrypt_2y($config, $this->driver_helper, 10), + 'passwords.driver.bcrypt' => new \phpbb\passwords\driver\bcrypt($config, $this->driver_helper, 10), 'passwords.driver.salted_md5' => new \phpbb\passwords\driver\salted_md5($config, $this->driver_helper), 'passwords.driver.phpass' => new \phpbb\passwords\driver\phpass($config, $this->driver_helper), 'passwords.driver.convert_password' => new \phpbb\passwords\driver\convert_password($config, $this->driver_helper), @@ -344,4 +344,54 @@ class phpbb_passwords_manager_test extends \phpbb_test_case { $this->assertSame($expected, $this->driver_helper->string_compare($a, $b)); } + + public function data_driver_interface_driver() + { + return array( + array(false, false, false), + array(true, false, false), + array(true, true, true), + ); + } + + /** + * @dataProvider data_driver_interface_driver + */ + public function test_driver_interface_driver($use_new_interface, $needs_rehash, $expected) + { + if ($use_new_interface) + { + $test_driver = $this->getMock('\phpbb\passwords\driver\rehashable_driver_interface', array('needs_rehash', 'get_prefix', 'check', 'is_supported', 'is_legacy', 'hash', 'get_settings_only')); + $test_driver->method('needs_rehash') + ->willReturn($needs_rehash); + } + else + { + $test_driver = $this->getMock('\phpbb\passwords\driver\driver_interface', array('get_prefix', 'check', 'is_supported', 'is_legacy', 'hash', 'get_settings_only')); + } + $config = new \phpbb\config\config(array()); + + $test_driver->method('is_supported') + ->willReturn(true); + $test_driver->method('get_prefix') + ->willReturn('$test$'); + $test_driver->method('check') + ->with($this->anything()) + ->willReturn(true); + $passwords_drivers = array( + 'passwords.driver.foobar' => $test_driver, + 'passwords.driver.bcrypt_2y' => new \phpbb\passwords\driver\bcrypt_2y($config, $this->driver_helper, 10), + ); + // Set up another manager + $foobar_manager = new \phpbb\passwords\manager($config, $passwords_drivers, $this->helper, array('passwords.driver.foobar')); + + $this->assertTrue($foobar_manager->check('foobar', '$test$somerandomstuff')); + $this->assertEquals($expected, $foobar_manager->convert_flag); + + // Should always return true in case a different driver is default + $foobar_manager = new \phpbb\passwords\manager($config, $passwords_drivers, $this->helper, array('passwords.driver.bcrypt_2y', 'passwords.driver.foobar')); + + $this->assertTrue($foobar_manager->check('foobar', '$test$somerandomstuff')); + $this->assertTrue($foobar_manager->convert_flag); + } } |