aboutsummaryrefslogtreecommitdiffstats
path: root/tests/passwords/drivers_test.php
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2014-05-27 18:13:06 +0200
committerMarc Alexander <admin@m-a-styles.de>2014-06-01 21:31:04 +0200
commit3508409c89acd53943d7e9d1b32982fd021122f0 (patch)
treeffdb95b6c5c1b7ace4755bc857d0c6f25942eccc /tests/passwords/drivers_test.php
parent5a243af879b42f1323d716f75c981bcfb42b2afe (diff)
downloadforums-3508409c89acd53943d7e9d1b32982fd021122f0.tar
forums-3508409c89acd53943d7e9d1b32982fd021122f0.tar.gz
forums-3508409c89acd53943d7e9d1b32982fd021122f0.tar.bz2
forums-3508409c89acd53943d7e9d1b32982fd021122f0.tar.xz
forums-3508409c89acd53943d7e9d1b32982fd021122f0.zip
[ticket/12352] Add tests for phpBB2 md5 passwords driver
PHPBB3-12352
Diffstat (limited to 'tests/passwords/drivers_test.php')
-rw-r--r--tests/passwords/drivers_test.php37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/passwords/drivers_test.php b/tests/passwords/drivers_test.php
index 5e2518cdea..cff03b02c9 100644
--- a/tests/passwords/drivers_test.php
+++ b/tests/passwords/drivers_test.php
@@ -17,7 +17,10 @@ class phpbb_passwords_helper_test extends \phpbb_test_case
{
// Prepare dependencies for drivers
$config = new \phpbb\config\config(array());
+ $request = new phpbb_mock_request(array(), array(), array(), array(), array('password' => 'fööbar'));
$this->driver_helper = new \phpbb\passwords\driver\helper($config);
+ $phpbb_root_path = dirname(__FILE__) . '/../../phpBB/';
+ $php_ext = 'php';
$this->passwords_drivers = array(
'passwords.driver.bcrypt_2y' => new \phpbb\passwords\driver\bcrypt_2y($config, $this->driver_helper),
@@ -25,6 +28,7 @@ class phpbb_passwords_helper_test extends \phpbb_test_case
'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),
+ 'passwords.driver.phpbb2_md5' => new \phpbb\passwords\driver\phpbb2_md5($request, $phpbb_root_path, $php_ext),
);
}
@@ -115,4 +119,37 @@ class phpbb_passwords_helper_test extends \phpbb_test_case
{
$this->assertSame($expected, $this->passwords_drivers[$driver]->get_settings_only($hash));
}
+
+ public function data_phpbb2_md5_check()
+ {
+ return array(
+ array(false, 'foobar', 'ae2fc75e20ee25d4520766788fbc96ae'),
+ array(false, 'foobar', 'ae2fc75e20ee25d4520766788fbc96aeddsf'),
+ array(false, 'fööbar', 'ae2fc75e20ee25d4520766788fbc96ae'),
+ array(true, 'fööbar', 'ae2fc75e20ee25d4520766788fbc96ae', utf8_decode('fööbar')),
+ );
+ }
+
+ /**
+ * @dataProvider data_phpbb2_md5_check
+ */
+ public function test_phpbb2_md5_check($expected, $password, $hash, $request_password = false)
+ {
+ if (!$request_password)
+ {
+ unset($_REQUEST['password']);
+ }
+ else
+ {
+ $_REQUEST['password'] = $request_password;
+ }
+ $this->assertSame($expected, $this->passwords_drivers['passwords.driver.phpbb2_md5']->check($password, $hash));
+ }
+
+ public function test_phpbb2_md5_unneeded_functions()
+ {
+ $this->assertSame(false, $this->passwords_drivers['passwords.driver.phpbb2_md5']->hash('foobar'));
+
+ $this->assertSame(false, $this->passwords_drivers['passwords.driver.phpbb2_md5']->get_settings_only('ae2fc75e20ee25d4520766788fbc96ae'));
+ }
}