/** * Tests setting and getting constraints. * * @covers \eZ\Publish\Core\FieldType\Validator::initializeWithConstraints * @covers \eZ\Publish\Core\FieldType\Validator::__get */ public function testConstraintsInitializeGet() { $constraints = array('Extent' => 'regex'); $validator = new EmailAddressValidator(); $validator->initializeWithConstraints($constraints); $this->assertSame($constraints['Extent'], $validator->Extent); }
/** * Validates a field based on the validators in the field definition. * * @throws \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException * * @param \eZ\Publish\API\Repository\Values\ContentType\FieldDefinition $fieldDefinition The field definition of the field * @param \eZ\Publish\Core\FieldType\EmailAddress\Value $fieldValue The field value for which an action is performed * * @return \eZ\Publish\SPI\FieldType\ValidationError[] */ public function validate(FieldDefinition $fieldDefinition, SPIValue $fieldValue) { $errors = array(); if ($this->isEmptyValue($fieldValue)) { return $errors; } $validatorConfiguration = $fieldDefinition->getValidatorConfiguration(); $constraints = isset($validatorConfiguration['EmailAddressValidator']) ? $validatorConfiguration['EmailAddressValidator'] : array(); $validator = new EmailAddressValidator(); $validator->initializeWithConstraints($constraints); if (!$validator->validate($fieldValue)) { return $validator->getMessage(); } return array(); }