diff options
| -rw-r--r-- | phpBB/includes/functions_user.php | 5 | ||||
| -rw-r--r-- | tests/functions/fixtures/validate_email.xml | 24 | ||||
| -rw-r--r-- | tests/functions/validate_user_email_test.php | 12 | 
3 files changed, 36 insertions, 5 deletions
diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php index 3bf4aa16b7..e0b6a9d0c6 100644 --- a/phpBB/includes/functions_user.php +++ b/phpBB/includes/functions_user.php @@ -1945,9 +1945,10 @@ function validate_user_email($email, $allowed_email = false)  		return $validate_email;  	} -	if (($ban = $user->check_ban(false, false, $email, true)) !== false) +	$ban = $user->check_ban(false, false, $email, true); +	if (!empty($ban))  	{ -		return ($ban === true) ? 'EMAIL_BANNED' : (!empty($ban['ban_give_reason']) ? $ban['ban_give_reason'] : $ban); +		return !empty($ban['ban_give_reason']) ? $ban['ban_give_reason'] : 'EMAIL_BANNED';  	}  	if (!$config['allow_emailreuse']) diff --git a/tests/functions/fixtures/validate_email.xml b/tests/functions/fixtures/validate_email.xml index eb4fd90217..fa139f6f18 100644 --- a/tests/functions/fixtures/validate_email.xml +++ b/tests/functions/fixtures/validate_email.xml @@ -1,5 +1,29 @@  <?xml version="1.0" encoding="UTF-8" ?>  <dataset> +	<table name="phpbb_banlist"> +		<column>ban_id</column> +		<column>ban_userid</column> +		<column>ban_exclude</column> +		<column>ban_end</column> +		<column>ban_email</column> +		<column>ban_give_reason</column> +		<row> +			<value>1</value> +			<value>0</value> +			<value>0</value> +			<value>0</value> +			<value>banned@example.com</value> +			<value></value> +		</row> +		<row> +			<value>2</value> +			<value>0</value> +			<value>0</value> +			<value>0</value> +			<value>banned2@example.com</value> +			<value>just because</value> +		</row> +	</table>  	<table name="phpbb_users">  		<column>user_id</column>  		<column>username</column> diff --git a/tests/functions/validate_user_email_test.php b/tests/functions/validate_user_email_test.php index 8dcec88103..d23ffc0503 100644 --- a/tests/functions/validate_user_email_test.php +++ b/tests/functions/validate_user_email_test.php @@ -28,10 +28,16 @@ class phpbb_functions_validate_user_email_test extends phpbb_database_test_case  	protected function setUp()  	{ +		global $cache, $phpbb_dispatcher, $phpbb_root_path, $phpEx; +  		parent::setUp(); +		$cache = new \phpbb\cache\driver\file(); +		$cache->purge();  		$this->db = $this->new_dbal(); -		$this->user = new phpbb_mock_user; +		$phpbb_dispatcher = new phpbb_mock_event_dispatcher(); +		$language = new phpbb\language\language(new phpbb\language\language_file_loader($phpbb_root_path, $phpEx)); +		$this->user = new phpbb\user($language, '\phpbb\datetime');  		$this->helper = new phpbb_functions_validate_data_helper($this);  	} @@ -47,7 +53,6 @@ class phpbb_functions_validate_user_email_test extends phpbb_database_test_case  		$config['email_check_mx'] = $check_mx;  		$db = $this->db;  		$user = $this->user; -		$user->optionset('banned_users', array('banned@example.com'));  	}  	public static function validate_user_email_data() @@ -58,7 +63,8 @@ class phpbb_functions_validate_user_email_test extends phpbb_database_test_case  			array('valid_complex', array(), "'%$~test@example.com"),  			array('invalid', array('EMAIL_INVALID'), 'fööbar@example.com'),  			array('taken', array('EMAIL_TAKEN'), 'admin@example.com'), -			array('banned', array('EMAIL_BANNED'), 'banned@example.com'), +			array('banned', ['just because'], 'banned2@example.com'), +			array('banned', ['EMAIL_BANNED'], 'banned@example.com')  		);  	}  | 
