diff options
Diffstat (limited to 'tests/functions/validate_password_test.php')
| -rw-r--r-- | tests/functions/validate_password_test.php | 96 | 
1 files changed, 96 insertions, 0 deletions
| diff --git a/tests/functions/validate_password_test.php b/tests/functions/validate_password_test.php new file mode 100644 index 0000000000..4639f6cc89 --- /dev/null +++ b/tests/functions/validate_password_test.php @@ -0,0 +1,96 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2013 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +require_once dirname(__FILE__) . '/../../phpBB/includes/functions_user.php'; +require_once dirname(__FILE__) . '/validate_data_helper.php'; + +class phpbb_functions_validate_password_test extends phpbb_test_case +{ +	protected $helper; + +	protected function setUp() +	{ +		parent::setUp(); + +		$this->helper = new phpbb_functions_validate_data_helper($this); +	} + +	public function validate_password_data() +	{ +		return array( +			array('PASS_TYPE_ANY', array( +				'empty'			=> array(), +				'foobar_any'		=> array(), +				'foobar_mixed'		=> array(), +				'foobar_alpha'		=> array(), +				'foobar_symbol'		=> array(), +			)), +			array('PASS_TYPE_CASE', array( +				'empty'			=> array(), +				'foobar_any'		=> array('INVALID_CHARS'), +				'foobar_mixed'		=> array(), +				'foobar_alpha'		=> array(), +				'foobar_symbol'		=> array(), +			)), +			array('PASS_TYPE_ALPHA', array( +				'empty'			=> array(), +				'foobar_any'		=> array('INVALID_CHARS'), +				'foobar_mixed'		=> array('INVALID_CHARS'), +				'foobar_alpha'		=> array(), +				'foobar_symbol'		=> array(), +			)), +			array('PASS_TYPE_SYMBOL', array( +				'empty'			=> array(), +				'foobar_any'		=> array('INVALID_CHARS'), +				'foobar_mixed'		=> array('INVALID_CHARS'), +				'foobar_alpha'		=> array('INVALID_CHARS'), +				'foobar_symbol'		=> array(), +			)), +		); +	} + +	/** +	* @dataProvider validate_password_data +	*/ +	public function test_validate_password($pass_complexity, $expected) +	{ +		global $config; + +		// Set complexity to mixed case letters, numbers and symbols +		$config['pass_complex'] = $pass_complexity; + +		$this->helper->assert_valid_data(array( +			'empty'			=> array( +				$expected['empty'], +				'', +				array('password'), +			), +			'foobar_any'		=> array( +				$expected['foobar_any'], +				'foobar', +				array('password'), +			), +			'foobar_mixed'		=> array( +				$expected['foobar_mixed'], +				'FooBar', +				array('password'), +			), +			'foobar_alpha'		=> array( +				$expected['foobar_alpha'], +				'F00bar', +				array('password'), +			), +			'foobar_symbol'		=> array( +				$expected['foobar_symbol'], +				'fooBar123*', +				array('password'), +			), +		)); +	} +} | 
