1..18 # __construct() ok 1 - ->__construct() can take no argument ok 2 - ->__construct() can take a validator as its first argument ok 3 - ->__construct() can take an array of validators as its first argument ok 4 - _construct() throws an exception when passing a non supported first argument # ->addValidator() ok 5 - ->addValidator() adds a validator # ->clean() ok 6 - ->clean() returns the string unmodified ok 7 - ->clean() throws an sfValidatorError exception if the input value is required ok 8 - ->clean() throws a sfValidatorError ok 9 - ->clean() throws an sfValidatorError exception if all the validators fails ok 10 - ->clean() throws an exception with all error messages ok 11 - ->clean() throws a sfValidatorSchemaError ok 12 - ->clean() throws a sfValidatorSchemaError ok 13 - ->clean() throws an sfValidatorError exception if one of the validators fails ok 14 - ->clean() throws a sfValidatorError if invalid message is not empty ok 15 - ->clean() throws a sfValidatorError if invalid message is not empty ok 16 - ->clean() returns the string unmodified # ->asString() ok 17 - ->asString() returns a string representation of the validator ok 18 - ->asString() returns a string representation of the validator # Looks like everything went fine.