/** * Method to test for a valid color in hexadecimal. * * @param SimpleXMLElement &$element The SimpleXMLElement object representing the <field /> tag for the form field object. * @param mixed $value The form field value to validate. * @param string $group The field name group control value. This acts as as an array container for the field. * For example if the field has name="foo" and the group value is set to "bar" then the * full field name would end up being "bar[foo]". * @param object &$input An optional JRegistry object with the entire data set to validate against the entire form. * @param object &$form The form object for which the field is being tested. * * @return boolean True if the value is valid, false otherwise. */ public function test(&$element, $value, $group = null, &$input = null, &$form = null) { if (!parent::test($element, $value, $group, $input, $form)) { return false; } $params = JComponentHelper::getParams('com_contact'); $banned = $params->get('banned_email'); foreach (explode(';', $banned) as $item) { if (JString::stristr($item, $value) !== false) { return false; } } return true; }
/** * Method to test for banned email addresses * * @param SimpleXMLElement $element The SimpleXMLElement object representing the <field /> tag for the form field object. * @param mixed $value The form field value to validate. * @param string $group The field name group control value. This acts as as an array container for the field. * For example if the field has name="foo" and the group value is set to "bar" then the * full field name would end up being "bar[foo]". * @param Registry $input An optional Registry object with the entire data set to validate against the entire form. * @param JForm $form The form object for which the field is being tested. * * @return boolean True if the value is valid, false otherwise. */ public function test(SimpleXMLElement $element, $value, $group = null, Registry $input = null, JForm $form = null) { if (!parent::test($element, $value, $group, $input, $form)) { return false; } $params = JComponentHelper::getParams('com_contact'); $banned = $params->get('banned_email'); if ($banned) { foreach (explode(';', $banned) as $item) { if ($item != '' && StringHelper::stristr($value, $item) !== false) { return false; } } } return true; }
/** * Test the email rule with the tld attribute * * @param string $emailAddress Email to be tested * @param boolean $expectedResult Result of test * * @dataProvider emailData3 * * @return void * * @since 12.3 */ public function testEmailData3($emailAddress, $expectedResult) { $rule = new JFormRuleEmail(); $xml = simplexml_load_string('<form><field name="email1" tld="tld" /></form>'); $this->assertThat($rule->test($xml->field[0], $emailAddress), $this->equalTo($expectedResult), $emailAddress . ' should have returned ' . ($expectedResult ? 'true' : 'false') . ' but did not'); }