aboutsummaryrefslogtreecommitdiffstats
path: root/tests/functions/validate_email_test.php
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@phpbb.com>2013-06-11 18:46:30 +0200
committerAndreas Fischer <bantu@phpbb.com>2013-06-11 18:46:30 +0200
commitb4183eda0caae2dfbe1425db27f3618c98db8504 (patch)
tree06e737e8494ca08e286f842c42780cde52466cc1 /tests/functions/validate_email_test.php
parent97c29c38760ccb3b121ca486bcd85ef683352f37 (diff)
parent30801e1f0a9aab6a3b4e589be1e43309543e8293 (diff)
downloadforums-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.php108
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'),
+ ),
+ ));
+ }
+}