public function testCustomLabels() { $messages = array('name' => array('Name is required'), 'email' => array('Email should be a valid email address')); $v = new Validator(array('name' => '', 'email' => '$')); $v->rule('required', 'name')->message('{field} is required'); $v->rule('email', 'email')->message('{field} should be a valid email address'); $v->labels(array('name' => 'Name', 'email' => 'Email')); $v->validate(); $errors = $v->errors(); $this->assertEquals($messages, $errors); }
/** * Fix bug where rules messages added with Validator::addRule were replaced after creating validator instance */ public function testRuleMessagesReplacedAfterConstructor() { $customMessage = 'custom message'; $ruleName = 'customRule'; $fieldName = 'fieldName'; Validator::addRule($ruleName, function () { }, $customMessage); $v = new Validator(array($fieldName => $fieldName)); $v->rule($ruleName, $fieldName); $v->validate(); $messages = $v->errors(); $this->assertArrayHasKey($fieldName, $messages); $this->assertEquals(ucfirst("{$fieldName} {$customMessage}"), $messages[$fieldName][0]); }
/** * 検出したエラーのメッセージを取得します。 * @param string $fieldName (optional) フィールド名 * @return string|bool */ public function getErrors($fieldName = null) { return $this->validator->errors($fieldName); }
public function testInstanceOfErrorMessageShowsInstanceName() { $v = new Validator(array('attributeName' => new Validator(array()))); $v->rule('instanceOf', 'attributeName', new stdClass()); $v->validate(); $expected_error = array("attributeName" => array("AttributeName must be an instance of 'stdClass'")); $this->assertEquals($expected_error, $v->errors()); }