public function testGetDefaultValidationMessageShouldReturnEmptyStringIfNoneIsSet() { $this->specify("getDefaultMessage() should return empty string if none is set", function () { $validation = new Validation(); expect($validation->getDefaultMessage('_notexistentvalidationmessage_'))->isEmpty(); }); }
/** * Executes the validation * * @package base-app * @version 2.0 * * @param object $validation Phalcon\Validation * @param string $field field name * * @return boolean * * @throws \Phalcon\Validation\Exception */ public function validate(\Phalcon\Validation $validation, $field) { $value = $validation->getValue($field); $model = $this->getOption("model"); $attribute = $this->getOption("attribute"); if (empty($model)) { throw new \Phalcon\Validation\Exception("Model must be set"); } if (empty($attribute)) { $attribute = $field; } if ($except = $this->getOption('except')) { $number = $model::count(array($attribute . "=:value: AND " . $attribute . "!= :except:", "bind" => array("value" => $value, 'except' => $except))); } else { $number = $model::count(array($attribute . "=:value:", "bind" => array("value" => $value))); } if ($number) { $label = $this->getOption("label"); if (empty($label)) { $label = $validation->getLabel($field); if (empty($label)) { $label = $field; } } $message = $this->getOption("message"); $replacePairs = array(":field" => $label); if (empty($message)) { $message = $validation->getDefaultMessage("Uniqueness"); } $validation->appendMessage(new \Phalcon\Validation\Message(strtr($message, $replacePairs), $field, "Uniqueness")); return false; } return true; }
/** * {@inheritdoc} * * @param Validation $validation * @param string $attribute * * @return bool */ public function validate(Validation $validation, $attribute) { $secret = $this->getOption('secret'); $value = $validation->getValue($attribute); $request = $validation->getDI()->get('request'); $remoteIp = $request->getClientAddress(false); if (!empty($value)) { $curl = curl_init(self::RECAPTCHA_URL); curl_setopt_array($curl, [CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => ['secret' => $secret, 'response' => $value, 'remoteip' => $remoteIp]]); $response = json_decode(curl_exec($curl), true); curl_close($curl); } if (empty($response['success'])) { $label = $this->getOption('label'); if (empty($label)) { $label = $validation->getLabel($attribute); } $message = $this->getOption('message'); $replacePairs = [':field', $label]; if (empty($message) && !empty($response['error-codes'])) { $message = $this->messages[$response['error-codes']]; } if (empty($message)) { $message = $validation->getDefaultMessage('ReCaptcha'); } $validation->appendMessage(new Message(strtr($message, $replacePairs), $attribute, 'ReCaptcha')); return false; } return true; }