예제 #1
0
$t->diag('->getErrorCodes()');
$t->is($v->getErrorCodes(), array('required', 'invalid', 'foo'), '->getErrorCodes() returns an array of error codes the validator can use');
// ::getCharset() ::setCharset()
$t->diag('::getCharset() ::setCharset()');
$t->is(sfValidatorBase::getCharset(), 'UTF-8', '::getCharset() returns the charset to use for validators');
sfValidatorBase::setCharset('ISO-8859-1');
$t->is(sfValidatorBase::getCharset(), 'ISO-8859-1', '::setCharset() changes the charset to use for validators');
// ->asString()
$t->diag('->asString()');
$v = new ValidatorIdentity();
$t->is($v->asString(), 'ValidatorIdentity()', '->asString() returns a string representation of the validator');
$v->setOption('required', false);
$v->setOption('foo', 'foo');
$t->is($v->asString(), 'ValidatorIdentity({ required: false, foo: foo })', '->asString() returns a string representation of the validator');
$v->setMessage('required', 'This is required.');
$t->is($v->asString(), 'ValidatorIdentity({ required: false, foo: foo }, { required: \'This is required.\' })', '->asString() returns a string representation of the validator');
$v = new ValidatorIdentity();
$v->setMessage('required', 'This is required.');
$t->is($v->asString(), 'ValidatorIdentity({}, { required: \'This is required.\' })', '->asString() returns a string representation of the validator');
// ::setDefaultMessage()
$t->diag('::setDefaultMessage()');
ValidatorIdentity::setDefaultMessage('required', 'This field is required.');
ValidatorIdentity::setDefaultMessage('invalid', 'This field is invalid.');
ValidatorIdentity::setDefaultMessage('foo', 'Foo bar.');
$v = new ValidatorIdentity();
$t->is($v->getMessage('required'), 'This field is required.', '::setDefaultMessage() sets the default message for an error');
$t->is($v->getMessage('invalid'), 'This field is invalid.', '::setDefaultMessage() sets the default message for an error');
$t->is($v->getMessage('foo'), 'Foo bar.', '::setDefaultMessage() sets the default message for an error');
$v = new ValidatorIdentity(array(), array('required' => 'Yep, this is required!', 'foo' => 'Yep, this is a foo error!'));
$t->is($v->getMessage('required'), 'Yep, this is required!', '::setDefaultMessage() is ignored if the validator explicitly overrides the message');
$t->is($v->getMessage('foo'), 'Yep, this is a foo error!', '::setDefaultMessage() is ignored if the validator explicitly overrides the message');
예제 #2
0
$t->is($v->getOption('nonexistant'), null, '->getOption() returns null if the option does not exist');
// ->addOption()
$t->diag('->addOption()');
$v->addOption('foobar');
$v->setOption('foobar', 'foo');
$t->is($v->getOption('foobar'), 'foo', '->addOption() adds a new option to a validator');
// ->getOptions() ->setOptions()
$t->diag('->getOptions() ->setOptions()');
$v->setOptions(array('required' => true, 'trim' => false));
$t->is($v->getOptions(), array('required' => true, 'trim' => false), '->setOptions() changes all options');
// ->getMessages()
$t->diag('->getMessages()');
$t->is($v->getMessages(), array('required' => 'Required.', 'invalid' => 'Invalid.', 'foo' => 'bar'), '->getMessages() returns an array of all error messages');
// ->getMessage()
$t->diag('->getMessage()');
$t->is($v->getMessage('required'), 'Required.', '->getMessage() returns an error message string');
$t->is($v->getMessage('nonexistant'), '', '->getMessage() returns an empty string if the message does not exist');
// ->setMessage()
$t->diag('->setMessage()');
$v->setMessage('required', 'The field is required.');
try {
    $v->clean('');
    $t->isnt($e->getMessage(), 'The field is required.', '->setMessage() changes the default error message string');
} catch (sfValidatorError $e) {
    $t->is($e->getMessage(), 'The field is required.', '->setMessage() changes the default error message string');
}
try {
    $v->setMessage('foobar', 'foo');
    $t->fail('->setMessage() throws an InvalidArgumentException if the message is not registered');
} catch (InvalidArgumentException $e) {
    $t->pass('->setMessage() throws an InvalidArgumentException if the message is not registered');