diff options
author | Andreas Fischer <bantu@phpbb.com> | 2013-06-11 18:46:30 +0200 |
---|---|---|
committer | Andreas Fischer <bantu@phpbb.com> | 2013-06-11 18:46:30 +0200 |
commit | b4183eda0caae2dfbe1425db27f3618c98db8504 (patch) | |
tree | 06e737e8494ca08e286f842c42780cde52466cc1 /tests/functions/validate_email_test.php | |
parent | 97c29c38760ccb3b121ca486bcd85ef683352f37 (diff) | |
parent | 30801e1f0a9aab6a3b4e589be1e43309543e8293 (diff) | |
download | forums-b4183eda0caae2dfbe1425db27f3618c98db8504.tar forums-b4183eda0caae2dfbe1425db27f3618c98db8504.tar.gz forums-b4183eda0caae2dfbe1425db27f3618c98db8504.tar.bz2 forums-b4183eda0caae2dfbe1425db27f3618c98db8504.tar.xz forums-b4183eda0caae2dfbe1425db27f3618c98db8504.zip |
Merge branch 'develop-olympus' into develop
* develop-olympus:
[ticket/11579] Add method for validating emails for valid MX and mark as slow
[ticket/11579] Do not extend validate_data_helper
[ticket/11579] Add missing commas to validate_username_test
[ticket/11579] Rework calls to validate_data_helper
[ticket/11579] Move simple tests into seperate files
[ticket/11579] Use test case helper class and use assert prefix for method
[ticket/11579] Move tests into seperate files depending on needed fixture
[ticket/11579] Remove unnecessary globals from validate_password()
[ticket/11579] Add remaining unit tests for validate_data functions
[ticket/11579] Add basic set of unit tests for validate_data()
Conflicts:
tests/mock/cache.php
Diffstat (limited to 'tests/functions/validate_email_test.php')
-rw-r--r-- | tests/functions/validate_email_test.php | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/tests/functions/validate_email_test.php b/tests/functions/validate_email_test.php new file mode 100644 index 0000000000..9a6ce39251 --- /dev/null +++ b/tests/functions/validate_email_test.php @@ -0,0 +1,108 @@ +<?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.php'; +require_once dirname(__FILE__) . '/../../phpBB/includes/functions_user.php'; +require_once dirname(__FILE__) . '/../mock/user.php'; +require_once dirname(__FILE__) . '/validate_data_helper.php'; + +class phpbb_functions_validate_email_test extends phpbb_database_test_case +{ + protected $db; + protected $user; + protected $helper; + + public function getDataSet() + { + return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/validate_email.xml'); + } + + protected function setUp() + { + parent::setUp(); + + $this->db = $this->new_dbal(); + $this->user = new phpbb_mock_user; + $this->helper = new phpbb_functions_validate_data_helper($this); + } + + /** + * Get validation prerequesites + * + * @param bool $check_mx Whether mx records should be checked + */ + protected function set_validation_prerequisites($check_mx) + { + global $config, $db, $user; + + $config['email_check_mx'] = $check_mx; + $db = $this->db; + $user = $this->user; + $user->optionset('banned_users', array('banned@example.com')); + } + + public function test_validate_email() + { + $this->set_validation_prerequisites(false); + + $this->helper->assert_valid_data(array( + 'empty' => array( + array(), + '', + array('email'), + ), + 'allowed' => array( + array(), + 'foobar@example.com', + array('email', 'foobar@example.com'), + ), + 'invalid' => array( + array('EMAIL_INVALID'), + 'fööbar@example.com', + array('email'), + ), + 'valid_complex' => array( + array(), + "'%$~test@example.com", + array('email'), + ), + 'taken' => array( + array('EMAIL_TAKEN'), + 'admin@example.com', + array('email'), + ), + 'banned' => array( + array('EMAIL_BANNED'), + 'banned@example.com', + array('email'), + ), + )); + } + + /** + * @group slow + */ + public function test_validate_email_mx() + { + $this->set_validation_prerequisites(true); + + $this->helper->assert_valid_data(array( + 'valid' => array( + array(), + 'foobar@phpbb.com', + array('email'), + ), + 'no_mx' => array( + array('DOMAIN_NO_MX_RECORD'), + 'test@does-not-exist.phpbb.com', + array('email'), + ), + )); + } +} |