This only applies when DNS hostnames are validated
public setValidateTld ( boolean $allowed ) | ||
$allowed | boolean | Set allowed to true to validate TLDs, and false to not validate them |
/** * Ensure the TLD check works as expected * */ public function testTLD() { $validator = new Zend_Validate_Hostname(); // Check TLD matching $valuesExpected = array(array(true, array('domain.co.uk', 'domain.uk.com', 'domain.tl', 'domain.zw')), array(false, array('domain.xx', 'domain.zz', 'domain.madeup'))); foreach ($valuesExpected as $element) { foreach ($element[1] as $input) { $this->assertEquals($element[0], $validator->isValid($input), implode("\n", $validator->getMessages()) . $input); } } // Check no TLD matching $validator->setValidateTld(false); $valuesExpected = array(array(true, array('domain.xx', 'domain.zz', 'domain.madeup'))); foreach ($valuesExpected as $element) { foreach ($element[1] as $input) { $this->assertEquals($element[0], $validator->isValid($input), implode("\n", $validator->getMessages()) . $input); } } // Check setting no TLD matching via constructor unset($validator); $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNS, true, false); $valuesExpected = array(array(true, array('domain.xx', 'domain.zz', 'domain.madeup'))); foreach ($valuesExpected as $element) { foreach ($element[1] as $input) { $this->assertEquals($element[0], $validator->isValid($input), implode("\n", $validator->getMessages()) . $input); } } }