1..20 # __construct() ok 1 - __construct() options override the embedded validator options ok 2 - ->clean() throws a sfValidatorError if the value is required ok 3 - __construct() messages override the embedded validator messages # ->getErrorCodes() ok 4 - ->getErrorCodes() is a proxy to the embedded validator method # ->asString() ok 5 - ->asString() is a proxy to the embedded validator method # ->getDefaultMessages() ok 6 - ->getDefaultMessages() is a proxy to the embedded validator method # ->getDefaultOptions() ok 7 - ->getDefaultOptions() is a proxy to the embedded validator method # ->getMessage() ->getMessages() ->setMessage() ->setMessages() ok 8 - ->getMessage() returns a message from the embedded validator ok 9 - ->getMessages() returns messages from the embedded validator ok 10 - ->setMessages() sets all messages for the embedded validator ok 11 - ->getOption() returns an option from the embedded validator ok 12 - ->getOptions() returns an array of options from the embedded validator ok 13 - ->hasOption() returns true if the embedded validator has a given option ok 14 - ->setOptions() sets all options for the embedded validator # ->clean() ok 15 - ->clean() throws a sfValidatorError if the value is required ok 16 - ->clean() throws a sfValidatorError ok 17 - ->clean() throws a sfValidatorError if the wrapped validator failed ok 18 - ->clean() throws a sfValidatorError ok 19 - ->clean() cleans the value by executing the clean() method from the wrapped validator ok 20 - ->clean() throws a RuntimeException if getValidator() does not return a sfValidator instance # Looks like everything went fine.